JupyterHub · Capability

JupyterHub REST API

REST API for JupyterHub, the multi-user server for Jupyter notebooks. Provides endpoints for managing users, groups, services, shared servers, OAuth2 authorization, the proxy, and the hub itself. JupyterHub spawns, manages, and proxies multiple instances of the single-user Jupyter notebook server.

Run with Naftiko JupyterhubAPI

What You Can Do

GET
Gethubversion — JupyterHub Get version
/
GET
Gethubinfo — JupyterHub Get detailed info
/info
GET
Listusers — JupyterHub List users
/users
POST
Createusers — JupyterHub Create users
/users
GET
Getuser — JupyterHub Get user
/users/{name}
POST
Createuser — JupyterHub Create user
/users/{name}
PATCH
Updateuser — JupyterHub Update user
/users/{name}
DELETE
Deleteuser — JupyterHub Delete user
/users/{name}
POST
Notifyuseractivity — JupyterHub Notify user activity
/users/{name}/activity
POST
Startuserserver — JupyterHub Start user server
/users/{name}/server
DELETE
Stopuserserver — JupyterHub Stop user server
/users/{name}/server
POST
Startnamedserver — JupyterHub Start named server
/users/{name}/servers/{server_name}
DELETE
Stopnamedserver — JupyterHub Stop named server
/users/{name}/servers/{server_name}
GET
Listusertokens — JupyterHub List user tokens
/users/{name}/tokens
POST
Createusertoken — JupyterHub Create user token
/users/{name}/tokens
GET
Getusertoken — JupyterHub Get user token
/users/{name}/tokens/{token_id}
DELETE
Revokeusertoken — JupyterHub Revoke user token
/users/{name}/tokens/{token_id}
GET
Listgroups — JupyterHub List groups
/groups
POST
Creategroups — JupyterHub Create groups
/groups
GET
Getgroup — JupyterHub Get group
/groups/{name}
POST
Creategroup — JupyterHub Create group
/groups/{name}
DELETE
Deletegroup — JupyterHub Delete group
/groups/{name}
POST
Addgroupusers — JupyterHub Add users to group
/groups/{name}/users
DELETE
Removegroupusers — JupyterHub Remove users from group
/groups/{name}/users
GET
Listservices — JupyterHub List services
/services
GET
Getservice — JupyterHub Get service
/services/{name}
GET
Getproxyroutes — JupyterHub Get proxy routes
/proxy
POST
Syncproxy — JupyterHub Sync proxy
/proxy
PATCH
Updateproxy — JupyterHub Update proxy
/proxy
POST
Requesttoken — JupyterHub Request token
/authorizations/token
GET
Identifytoken — JupyterHub Identify token
/authorizations/token/{token}
GET
Identifycookie — JupyterHub Identify cookie
/authorizations/cookie/{cookie_name}/{cookie_value}
GET
Oauth2authorize — JupyterHub OAuth2 authorize
/oauth2/authorize
POST
Oauth2token — JupyterHub OAuth2 token
/oauth2/token
POST
Shutdownhub — JupyterHub Shutdown
/shutdown

MCP Tools

gethubversion

JupyterHub Get version

read-only idempotent
gethubinfo

JupyterHub Get detailed info

read-only idempotent
listusers

JupyterHub List users

read-only idempotent
createusers

JupyterHub Create users

getuser

JupyterHub Get user

read-only idempotent
createuser

JupyterHub Create user

updateuser

JupyterHub Update user

deleteuser

JupyterHub Delete user

idempotent
notifyuseractivity

JupyterHub Notify user activity

startuserserver

JupyterHub Start user server

stopuserserver

JupyterHub Stop user server

idempotent
startnamedserver

JupyterHub Start named server

stopnamedserver

JupyterHub Stop named server

idempotent
listusertokens

JupyterHub List user tokens

read-only idempotent
createusertoken

JupyterHub Create user token

getusertoken

JupyterHub Get user token

read-only idempotent
revokeusertoken

JupyterHub Revoke user token

idempotent
listgroups

JupyterHub List groups

read-only idempotent
creategroups

JupyterHub Create groups

getgroup

JupyterHub Get group

read-only idempotent
creategroup

JupyterHub Create group

deletegroup

JupyterHub Delete group

idempotent
addgroupusers

JupyterHub Add users to group

removegroupusers

JupyterHub Remove users from group

idempotent
listservices

JupyterHub List services

read-only idempotent
getservice

JupyterHub Get service

read-only idempotent
getproxyroutes

JupyterHub Get proxy routes

read-only idempotent
syncproxy

JupyterHub Sync proxy

updateproxy

JupyterHub Update proxy

requesttoken

JupyterHub Request token

identifytoken

JupyterHub Identify token

read-only idempotent
identifycookie

JupyterHub Identify cookie

read-only idempotent
oauth2authorize

JupyterHub OAuth2 authorize

read-only idempotent
oauth2token

JupyterHub OAuth2 token

shutdownhub

JupyterHub Shutdown

Capability Spec

jupyterhub-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: JupyterHub REST API
  description: REST API for JupyterHub, the multi-user server for Jupyter notebooks. Provides endpoints for managing users,
    groups, services, shared servers, OAuth2 authorization, the proxy, and the hub itself. JupyterHub spawns, manages, and
    proxies multiple instances of the single-user Jupyter notebook server.
  tags:
  - Jupyterhub
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: jupyterhub
    baseUri: http://localhost:8000/hub/api
    description: JupyterHub REST API HTTP API.
    authentication:
      type: apikey
      in: header
      name: Authorization
      value: '{{JUPYTERHUB_TOKEN}}'
    resources:
    - name: resource
      path: /
      operations:
      - name: gethubversion
        method: GET
        description: JupyterHub Get version
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: info
      path: /info
      operations:
      - name: gethubinfo
        method: GET
        description: JupyterHub Get detailed info
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users
      path: /users
      operations:
      - name: listusers
        method: GET
        description: JupyterHub List users
        inputParameters:
        - name: state
          in: query
          type: string
        - name: offset
          in: query
          type: integer
        - name: limit
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createusers
        method: POST
        description: JupyterHub Create users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-name
      path: /users/{name}
      operations:
      - name: getuser
        method: GET
        description: JupyterHub Get user
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createuser
        method: POST
        description: JupyterHub Create user
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateuser
        method: PATCH
        description: JupyterHub Update user
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteuser
        method: DELETE
        description: JupyterHub Delete user
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-name-activity
      path: /users/{name}/activity
      operations:
      - name: notifyuseractivity
        method: POST
        description: JupyterHub Notify user activity
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-name-server
      path: /users/{name}/server
      operations:
      - name: startuserserver
        method: POST
        description: JupyterHub Start user server
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: stopuserserver
        method: DELETE
        description: JupyterHub Stop user server
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-name-servers-server-name
      path: /users/{name}/servers/{server_name}
      operations:
      - name: startnamedserver
        method: POST
        description: JupyterHub Start named server
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        - name: server_name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: stopnamedserver
        method: DELETE
        description: JupyterHub Stop named server
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        - name: server_name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-name-tokens
      path: /users/{name}/tokens
      operations:
      - name: listusertokens
        method: GET
        description: JupyterHub List user tokens
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createusertoken
        method: POST
        description: JupyterHub Create user token
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-name-tokens-token-id
      path: /users/{name}/tokens/{token_id}
      operations:
      - name: getusertoken
        method: GET
        description: JupyterHub Get user token
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        - name: token_id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: revokeusertoken
        method: DELETE
        description: JupyterHub Revoke user token
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        - name: token_id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: groups
      path: /groups
      operations:
      - name: listgroups
        method: GET
        description: JupyterHub List groups
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: creategroups
        method: POST
        description: JupyterHub Create groups
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: groups-name
      path: /groups/{name}
      operations:
      - name: getgroup
        method: GET
        description: JupyterHub Get group
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: creategroup
        method: POST
        description: JupyterHub Create group
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletegroup
        method: DELETE
        description: JupyterHub Delete group
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: groups-name-users
      path: /groups/{name}/users
      operations:
      - name: addgroupusers
        method: POST
        description: JupyterHub Add users to group
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: removegroupusers
        method: DELETE
        description: JupyterHub Remove users from group
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: services
      path: /services
      operations:
      - name: listservices
        method: GET
        description: JupyterHub List services
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: services-name
      path: /services/{name}
      operations:
      - name: getservice
        method: GET
        description: JupyterHub Get service
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: proxy
      path: /proxy
      operations:
      - name: getproxyroutes
        method: GET
        description: JupyterHub Get proxy routes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: syncproxy
        method: POST
        description: JupyterHub Sync proxy
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateproxy
        method: PATCH
        description: JupyterHub Update proxy
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: authorizations-token
      path: /authorizations/token
      operations:
      - name: requesttoken
        method: POST
        description: JupyterHub Request token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: authorizations-token-token
      path: /authorizations/token/{token}
      operations:
      - name: identifytoken
        method: GET
        description: JupyterHub Identify token
        inputParameters:
        - name: token
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: authorizations-cookie-cookie-name-cookie-value
      path: /authorizations/cookie/{cookie_name}/{cookie_value}
      operations:
      - name: identifycookie
        method: GET
        description: JupyterHub Identify cookie
        inputParameters:
        - name: cookie_name
          in: path
          type: string
          required: true
        - name: cookie_value
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: oauth2-authorize
      path: /oauth2/authorize
      operations:
      - name: oauth2authorize
        method: GET
        description: JupyterHub OAuth2 authorize
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: oauth2-token
      path: /oauth2/token
      operations:
      - name: oauth2token
        method: POST
        description: JupyterHub OAuth2 token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: shutdown
      path: /shutdown
      operations:
      - name: shutdownhub
        method: POST
        description: JupyterHub Shutdown
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: jupyterhub-rest
    description: REST adapter for JupyterHub REST API.
    resources:
    - path: /
      name: gethubversion
      operations:
      - method: GET
        name: gethubversion
        description: JupyterHub Get version
        call: jupyterhub.gethubversion
        outputParameters:
        - type: object
          mapping: $.
    - path: /info
      name: gethubinfo
      operations:
      - method: GET
        name: gethubinfo
        description: JupyterHub Get detailed info
        call: jupyterhub.gethubinfo
        outputParameters:
        - type: object
          mapping: $.
    - path: /users
      name: listusers
      operations:
      - method: GET
        name: listusers
        description: JupyterHub List users
        call: jupyterhub.listusers
        outputParameters:
        - type: object
          mapping: $.
    - path: /users
      name: createusers
      operations:
      - method: POST
        name: createusers
        description: JupyterHub Create users
        call: jupyterhub.createusers
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{name}
      name: getuser
      operations:
      - method: GET
        name: getuser
        description: JupyterHub Get user
        call: jupyterhub.getuser
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{name}
      name: createuser
      operations:
      - method: POST
        name: createuser
        description: JupyterHub Create user
        call: jupyterhub.createuser
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{name}
      name: updateuser
      operations:
      - method: PATCH
        name: updateuser
        description: JupyterHub Update user
        call: jupyterhub.updateuser
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{name}
      name: deleteuser
      operations:
      - method: DELETE
        name: deleteuser
        description: JupyterHub Delete user
        call: jupyterhub.deleteuser
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{name}/activity
      name: notifyuseractivity
      operations:
      - method: POST
        name: notifyuseractivity
        description: JupyterHub Notify user activity
        call: jupyterhub.notifyuseractivity
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{name}/server
      name: startuserserver
      operations:
      - method: POST
        name: startuserserver
        description: JupyterHub Start user server
        call: jupyterhub.startuserserver
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{name}/server
      name: stopuserserver
      operations:
      - method: DELETE
        name: stopuserserver
        description: JupyterHub Stop user server
        call: jupyterhub.stopuserserver
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{name}/servers/{server_name}
      name: startnamedserver
      operations:
      - method: POST
        name: startnamedserver
        description: JupyterHub Start named server
        call: jupyterhub.startnamedserver
        with:
          name: rest.name
          server_name: rest.server_name
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{name}/servers/{server_name}
      name: stopnamedserver
      operations:
      - method: DELETE
        name: stopnamedserver
        description: JupyterHub Stop named server
        call: jupyterhub.stopnamedserver
        with:
          name: rest.name
          server_name: rest.server_name
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{name}/tokens
      name: listusertokens
      operations:
      - method: GET
        name: listusertokens
        description: JupyterHub List user tokens
        call: jupyterhub.listusertokens
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{name}/tokens
      name: createusertoken
      operations:
      - method: POST
        name: createusertoken
        description: JupyterHub Create user token
        call: jupyterhub.createusertoken
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{name}/tokens/{token_id}
      name: getusertoken
      operations:
      - method: GET
        name: getusertoken
        description: JupyterHub Get user token
        call: jupyterhub.getusertoken
        with:
          name: rest.name
          token_id: rest.token_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{name}/tokens/{token_id}
      name: revokeusertoken
      operations:
      - method: DELETE
        name: revokeusertoken
        description: JupyterHub Revoke user token
        call: jupyterhub.revokeusertoken
        with:
          name: rest.name
          token_id: rest.token_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /groups
      name: listgroups
      operations:
      - method: GET
        name: listgroups
        description: JupyterHub List groups
        call: jupyterhub.listgroups
        outputParameters:
        - type: object
          mapping: $.
    - path: /groups
      name: creategroups
      operations:
      - method: POST
        name: creategroups
        description: JupyterHub Create groups
        call: jupyterhub.creategroups
        outputParameters:
        - type: object
          mapping: $.
    - path: /groups/{name}
      name: getgroup
      operations:
      - method: GET
        name: getgroup
        description: JupyterHub Get group
        call: jupyterhub.getgroup
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /groups/{name}
      name: creategroup
      operations:
      - method: POST
        name: creategroup
        description: JupyterHub Create group
        call: jupyterhub.creategroup
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /groups/{name}
      name: deletegroup
      operations:
      - method: DELETE
        name: deletegroup
        description: JupyterHub Delete group
        call: jupyterhub.deletegroup
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /groups/{name}/users
      name: addgroupusers
      operations:
      - method: POST
        name: addgroupusers
        description: JupyterHub Add users to group
        call: jupyterhub.addgroupusers
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /groups/{name}/users
      name: removegroupusers
      operations:
      - method: DELETE
        name: removegroupusers
        description: JupyterHub Remove users from group
        call: jupyterhub.removegroupusers
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /services
      name: listservices
      operations:
      - method: GET
        name: listservices
        description: JupyterHub List services
        call: jupyterhub.listservices
        outputParameters:
        - type: object
          mapping: $.
    - path: /services/{name}
      name: getservice
      operations:
      - method: GET
        name: getservice
        description: JupyterHub Get service
        call: jupyterhub.getservice
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /proxy
      name: getproxyroutes
      operations:
      - method: GET
        name: getproxyroutes
        description: JupyterHub Get proxy routes
        call: jupyterhub.getproxyroutes
        outputParameters:
        - type: object
          mapping: $.
    - path: /proxy
      name: syncproxy
      operations:
      - method: POST
        name: syncproxy
        description: JupyterHub Sync proxy
        call: jupyterhub.syncproxy
        outputParameters:
        - type: object
          mapping: $.
    - path: /proxy
      name: updateproxy
      operations:
      - method: PATCH
        name: updateproxy
        description: JupyterHub Update proxy
        call: jupyterhub.updateproxy
        outputParameters:
        - type: object
          mapping: $.
    - path: /authorizations/token
      name: requesttoken
      operations:
      - method: POST
        name: requesttoken
        description: JupyterHub Request token
        call: jupyterhub.requesttoken
        outputParameters:
        - type: object
          mapping: $.
    - path: /authorizations/token/{token}
      name: identifytoken
      operations:
      - method: GET
        name: identifytoken
        description: JupyterHub Identify token
        call: jupyterhub.identifytoken
        with:
          token: rest.token
        outputParameters:
        - type: object
          mapping: $.
    - path: /authorizations/cookie/{cookie_name}/{cookie_value}
      name: identifycookie
      operations:
      - method: GET
        name: identifycookie
        description: JupyterHub Identify cookie
        call: jupyterhub.identifycookie
        with:
          cookie_name: rest.cookie_name
          cookie_value: rest.cookie_value
        outputParameters:
        - type: object
          mapping: $.
    - path: /oauth2/authorize
      name: oauth2authorize
      operations:
      - method: GET
        name: oauth2authorize
        description: JupyterHub OAuth2 authorize
        call: jupyterhub.oauth2authorize
        outputParameters:
        - type: object
          mapping: $.
    - path: /oauth2/token
      name: oauth2token
      operations:
      - method: POST
        name: oauth2token
        description: JupyterHub OAuth2 token
        call: jupyterhub.oauth2token
        outputParameters:
        - type: object
          mapping: $.
    - path: /shutdown
      name: shutdownhub
      operations:
      - method: POST
        name: shutdownhub
        description: JupyterHub Shutdown
        call: jupyterhub.shutdownhub
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: jupyterhub-mcp
    transport: http
    description: MCP adapter for JupyterHub REST API for AI agent use.
    tools:
    - name: gethubversion
      description: JupyterHub Get version
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterhub.gethubversion
      outputParameters:
      - type: object
        mapping: $.
    - name: gethubinfo
      description: JupyterHub Get detailed info
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterhub.gethubinfo
      outputParameters:
      - type: object
        mapping: $.
    - name: listusers
      description: JupyterHub List users
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterhub.listusers
      with:
        state: tools.state
        offset: tools.offset
        limit: tools.limit
      inputParameters:
      - name: state
        type: string
        description: state
      - name: offset
        type: integer
        description: offset
      - name: limit
        type: integer
        description: limit
      outputParameters:
      - type: object
        mapping: $.
    - name: createusers
      description: JupyterHub Create users
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: jupyterhub.createusers
      outputParameters:
      - type: object
        mapping: $.
    - name: getuser
      description: JupyterHub Get user
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterhub.getuser
      with:
        name: tools.name
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: createuser
      description: JupyterHub Create user
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: jupyterhub.createuser
      with:
        name: tools.name
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: updateuser
      description: JupyterHub Update user
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: jupyterhub.updateuser
      with:
        name: tools.name
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deleteuser
      description: JupyterHub Delete user
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: jupyterhub.deleteuser
      with:
        name: tools.name
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: notifyuseractivity
      description: JupyterHub Notify user activity
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: jupyterhub.notifyuseractivity
      with:
        name: tools.name
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: startuserserver
      description: JupyterHub Start user server
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: jupyterhub.startuserserver
      with:
        name: tools.name
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: stopuserserver
      description: JupyterHub Stop user server
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: jupyterhub.stopuserserver
      with:
        name: tools.name
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: startnamedserver
      description: JupyterHub Start named server
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: jupyterhub.startnamedserver
      with:
        name: tools.name
        server_name: tools.server_name
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      - name: server_name
        type: string
        description: server_name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: stopnamedserver
      description: JupyterHub Stop named server
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: jupyterhub.stopnamedserver
      with:
        name: tools.name
        server_name: tools.server_name
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      - name: server_name
        type: string
        description: server_name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listusertokens
      description: JupyterHub List user tokens
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterhub.listusertokens
      with:
        name: tools.name
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: createusertoken
      description: JupyterHub Create user token
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: jupyterhub.createusertoken
      with:
        name: tools.name
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getusertoken
      description: JupyterHub Get user token
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterhub.getusertoken
      with:
        name: tools.name
        token_id: tools.token_id
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      - name: token_id
        type: string
        description: token_id
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: revokeusertoken
      description: JupyterHub Revoke user token
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: jupyterhub.revokeusertoken
      with:
        name: tools.name
        token_id: tools.token_id
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      - name: token_id
        type: string
        description: token_id
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listgroups
      description: JupyterHub List groups
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterhub.listgroups
      outputParameters:
      - type: object
        mapping: $.
    - name: creategroups
      description: JupyterHub Create groups
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: jupyterhub.creategroups
      outputParameters:
      - type: object
        mapping: $.
    - name: getgroup
      description: JupyterHub Get group
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterhub.getgroup
      with:
        name: tools.name
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: creategroup
      description: JupyterHub Create group
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: jupyterhub.creategroup
      with:
        name: tools.name
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deletegroup
      description: JupyterHub Delete group
      hints:
        readOnly: false
        destructive: true
     

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/jupyterhub/refs/heads/main/capabilities/jupyterhub-capability.yaml