naftiko: 1.0.0-alpha2 info: label: Jupyter Notebook JupyterHub REST API — Users description: 'Jupyter Notebook JupyterHub REST API — Users. 15 operations. Lead operation: Jupyter Notebook List users. Self-contained Naftiko capability covering one Jupyter Notebook business surface.' tags: - Jupyter Notebook - Users created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: JUPYTER_NOTEBOOK_API_KEY: JUPYTER_NOTEBOOK_API_KEY capability: consumes: - type: http namespace: jupyterhub-rest-users baseUri: http://localhost:8000/hub/api description: Jupyter Notebook JupyterHub REST API — Users business capability. Self-contained, no shared references. resources: - name: users path: /users operations: - name: listusers method: GET description: Jupyter Notebook List users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: state in: query type: string description: Filter users by server state. Can be 'active', 'inactive', or 'ready'. - name: offset in: query type: integer description: Offset for pagination. - name: limit in: query type: integer description: Maximum number of users to return. - name: include_stopped_servers in: query type: boolean description: Include stopped server information in results. - name: createusers method: POST description: Jupyter Notebook Create multiple users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: users-name path: /users/{name} operations: - name: getuser method: GET description: Jupyter Notebook Get user details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Username. required: true - name: include_stopped_servers in: query type: boolean description: Include stopped server information. - name: createuser method: POST description: Jupyter Notebook Create a single user outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Username for the new user. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: updateuser method: PATCH description: Jupyter Notebook Update user properties outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Current username. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deleteuser method: DELETE description: Jupyter Notebook Delete a user outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Username to delete. required: true - name: users-name-activity path: /users/{name}/activity operations: - name: notifyuseractivity method: POST description: Jupyter Notebook Notify user activity outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Username. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: users-name-server path: /users/{name}/server operations: - name: startuserserver method: POST description: Jupyter Notebook Start user's default server outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Username. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: stopuserserver method: DELETE description: Jupyter Notebook Stop user's default server outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Username. required: true - name: remove in: query type: boolean description: Whether to fully remove the server record. - name: users-name-servers-server_name path: /users/{name}/servers/{server_name} operations: - name: startnamedserver method: POST description: Jupyter Notebook Start a named server outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Username. required: true - name: server_name in: path type: string description: Name for the server. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: stopnamedserver method: DELETE description: Jupyter Notebook Stop a named server outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Username. required: true - name: server_name in: path type: string description: Name of the server. required: true - name: remove in: query type: boolean description: Whether to fully remove the server record. - name: users-name-tokens path: /users/{name}/tokens operations: - name: listusertokens method: GET description: Jupyter Notebook List user's API tokens outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Username. required: true - name: createusertoken method: POST description: Jupyter Notebook Create an API token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Username. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: users-name-tokens-token_id path: /users/{name}/tokens/{token_id} operations: - name: getusertoken method: GET description: Jupyter Notebook Get token details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Username. required: true - name: token_id in: path type: string description: Token identifier. required: true - name: deleteusertoken method: DELETE description: Jupyter Notebook Revoke an API token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Username. required: true - name: token_id in: path type: string description: Token identifier. required: true authentication: type: bearer token: '{{env.JUPYTER_NOTEBOOK_API_KEY}}' exposes: - type: rest namespace: jupyterhub-rest-users-rest port: 8080 description: REST adapter for Jupyter Notebook JupyterHub REST API — Users. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/users name: users description: REST surface for users. operations: - method: GET name: listusers description: Jupyter Notebook List users call: jupyterhub-rest-users.listusers with: state: rest.state offset: rest.offset limit: rest.limit include_stopped_servers: rest.include_stopped_servers outputParameters: - type: object mapping: $. - method: POST name: createusers description: Jupyter Notebook Create multiple users call: jupyterhub-rest-users.createusers with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/{name} name: users-name description: REST surface for users-name. operations: - method: GET name: getuser description: Jupyter Notebook Get user details call: jupyterhub-rest-users.getuser with: name: rest.name include_stopped_servers: rest.include_stopped_servers outputParameters: - type: object mapping: $. - method: POST name: createuser description: Jupyter Notebook Create a single user call: jupyterhub-rest-users.createuser with: name: rest.name body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: updateuser description: Jupyter Notebook Update user properties call: jupyterhub-rest-users.updateuser with: name: rest.name body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteuser description: Jupyter Notebook Delete a user call: jupyterhub-rest-users.deleteuser with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/users/{name}/activity name: users-name-activity description: REST surface for users-name-activity. operations: - method: POST name: notifyuseractivity description: Jupyter Notebook Notify user activity call: jupyterhub-rest-users.notifyuseractivity with: name: rest.name body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/{name}/server name: users-name-server description: REST surface for users-name-server. operations: - method: POST name: startuserserver description: Jupyter Notebook Start user's default server call: jupyterhub-rest-users.startuserserver with: name: rest.name body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: stopuserserver description: Jupyter Notebook Stop user's default server call: jupyterhub-rest-users.stopuserserver with: name: rest.name remove: rest.remove outputParameters: - type: object mapping: $. - path: /v1/users/{name}/servers/{server-name} name: users-name-servers-server-name description: REST surface for users-name-servers-server_name. operations: - method: POST name: startnamedserver description: Jupyter Notebook Start a named server call: jupyterhub-rest-users.startnamedserver with: name: rest.name server_name: rest.server_name body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: stopnamedserver description: Jupyter Notebook Stop a named server call: jupyterhub-rest-users.stopnamedserver with: name: rest.name server_name: rest.server_name remove: rest.remove outputParameters: - type: object mapping: $. - path: /v1/users/{name}/tokens name: users-name-tokens description: REST surface for users-name-tokens. operations: - method: GET name: listusertokens description: Jupyter Notebook List user's API tokens call: jupyterhub-rest-users.listusertokens with: name: rest.name outputParameters: - type: object mapping: $. - method: POST name: createusertoken description: Jupyter Notebook Create an API token call: jupyterhub-rest-users.createusertoken with: name: rest.name body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/{name}/tokens/{token-id} name: users-name-tokens-token-id description: REST surface for users-name-tokens-token_id. operations: - method: GET name: getusertoken description: Jupyter Notebook Get token details call: jupyterhub-rest-users.getusertoken with: name: rest.name token_id: rest.token_id outputParameters: - type: object mapping: $. - method: DELETE name: deleteusertoken description: Jupyter Notebook Revoke an API token call: jupyterhub-rest-users.deleteusertoken with: name: rest.name token_id: rest.token_id outputParameters: - type: object mapping: $. - type: mcp namespace: jupyterhub-rest-users-mcp port: 9090 transport: http description: MCP adapter for Jupyter Notebook JupyterHub REST API — Users. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: jupyter-notebook-list-users description: Jupyter Notebook List users hints: readOnly: true destructive: false idempotent: true call: jupyterhub-rest-users.listusers with: state: tools.state offset: tools.offset limit: tools.limit include_stopped_servers: tools.include_stopped_servers outputParameters: - type: object mapping: $. - name: jupyter-notebook-create-multiple-users description: Jupyter Notebook Create multiple users hints: readOnly: false destructive: false idempotent: false call: jupyterhub-rest-users.createusers with: body: tools.body outputParameters: - type: object mapping: $. - name: jupyter-notebook-get-user-details description: Jupyter Notebook Get user details hints: readOnly: true destructive: false idempotent: true call: jupyterhub-rest-users.getuser with: name: tools.name include_stopped_servers: tools.include_stopped_servers outputParameters: - type: object mapping: $. - name: jupyter-notebook-create-single-user description: Jupyter Notebook Create a single user hints: readOnly: false destructive: false idempotent: false call: jupyterhub-rest-users.createuser with: name: tools.name body: tools.body outputParameters: - type: object mapping: $. - name: jupyter-notebook-update-user-properties description: Jupyter Notebook Update user properties hints: readOnly: false destructive: false idempotent: true call: jupyterhub-rest-users.updateuser with: name: tools.name body: tools.body outputParameters: - type: object mapping: $. - name: jupyter-notebook-delete-user description: Jupyter Notebook Delete a user hints: readOnly: false destructive: true idempotent: true call: jupyterhub-rest-users.deleteuser with: name: tools.name outputParameters: - type: object mapping: $. - name: jupyter-notebook-notify-user-activity description: Jupyter Notebook Notify user activity hints: readOnly: false destructive: false idempotent: false call: jupyterhub-rest-users.notifyuseractivity with: name: tools.name body: tools.body outputParameters: - type: object mapping: $. - name: jupyter-notebook-start-user-s-default description: Jupyter Notebook Start user's default server hints: readOnly: false destructive: false idempotent: false call: jupyterhub-rest-users.startuserserver with: name: tools.name body: tools.body outputParameters: - type: object mapping: $. - name: jupyter-notebook-stop-user-s-default description: Jupyter Notebook Stop user's default server hints: readOnly: false destructive: true idempotent: true call: jupyterhub-rest-users.stopuserserver with: name: tools.name remove: tools.remove outputParameters: - type: object mapping: $. - name: jupyter-notebook-start-named-server description: Jupyter Notebook Start a named server hints: readOnly: false destructive: false idempotent: false call: jupyterhub-rest-users.startnamedserver with: name: tools.name server_name: tools.server_name body: tools.body outputParameters: - type: object mapping: $. - name: jupyter-notebook-stop-named-server description: Jupyter Notebook Stop a named server hints: readOnly: false destructive: true idempotent: true call: jupyterhub-rest-users.stopnamedserver with: name: tools.name server_name: tools.server_name remove: tools.remove outputParameters: - type: object mapping: $. - name: jupyter-notebook-list-user-s-api description: Jupyter Notebook List user's API tokens hints: readOnly: true destructive: false idempotent: true call: jupyterhub-rest-users.listusertokens with: name: tools.name outputParameters: - type: object mapping: $. - name: jupyter-notebook-create-api-token description: Jupyter Notebook Create an API token hints: readOnly: false destructive: false idempotent: false call: jupyterhub-rest-users.createusertoken with: name: tools.name body: tools.body outputParameters: - type: object mapping: $. - name: jupyter-notebook-get-token-details description: Jupyter Notebook Get token details hints: readOnly: true destructive: false idempotent: true call: jupyterhub-rest-users.getusertoken with: name: tools.name token_id: tools.token_id outputParameters: - type: object mapping: $. - name: jupyter-notebook-revoke-api-token description: Jupyter Notebook Revoke an API token hints: readOnly: false destructive: true idempotent: true call: jupyterhub-rest-users.deleteusertoken with: name: tools.name token_id: tools.token_id outputParameters: - type: object mapping: $.