JupyterLab · Capability

JupyterLab Server REST API

REST API for JupyterLab Server, the set of REST API services that JupyterLab depends on. Provides endpoints for managing user-defined settings, workspaces, themes, translations, third-party license reports, and extension listings. JupyterLab Server runs as a Jupyter Server extension.

Run with Naftiko JupyterlabAPI

What You Can Do

GET
Listsettings — JupyterLab List all settings
/settings
GET
Getsetting — JupyterLab Get setting
/settings/{schema_name}
PUT
Updatesetting — JupyterLab Update setting
/settings/{schema_name}
GET
Listworkspaces — JupyterLab List workspaces
/workspaces
GET
Getworkspace — JupyterLab Get workspace
/workspaces/{space_name}
PUT
Updateworkspace — JupyterLab Update workspace
/workspaces/{space_name}
DELETE
Deleteworkspace — JupyterLab Delete workspace
/workspaces/{space_name}
GET
Getthemeasset — JupyterLab Get theme asset
/themes/{theme_file}
GET
Listtranslations — JupyterLab List translations
/translations
GET
Gettranslation — JupyterLab Get translation bundle
/translations/{locale}
GET
Getlicenses — JupyterLab Get licenses report
/licenses
GET
Getlistings — JupyterLab Get extension listings
/listings/@jupyterlab/extensionmanager-extension/listings.json

MCP Tools

listsettings

JupyterLab List all settings

read-only idempotent
getsetting

JupyterLab Get setting

read-only idempotent
updatesetting

JupyterLab Update setting

idempotent
listworkspaces

JupyterLab List workspaces

read-only idempotent
getworkspace

JupyterLab Get workspace

read-only idempotent
updateworkspace

JupyterLab Update workspace

idempotent
deleteworkspace

JupyterLab Delete workspace

idempotent
getthemeasset

JupyterLab Get theme asset

read-only idempotent
listtranslations

JupyterLab List translations

read-only idempotent
gettranslation

JupyterLab Get translation bundle

read-only idempotent
getlicenses

JupyterLab Get licenses report

read-only idempotent
getlistings

JupyterLab Get extension listings

read-only idempotent

Capability Spec

jupyterlab-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: JupyterLab Server REST API
  description: REST API for JupyterLab Server, the set of REST API services that JupyterLab depends on. Provides endpoints
    for managing user-defined settings, workspaces, themes, translations, third-party license reports, and extension listings.
    JupyterLab Server runs as a Jupyter Server extension.
  tags:
  - Jupyterlab
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: jupyterlab
    baseUri: http://localhost:8888/lab/api
    description: JupyterLab Server REST API HTTP API.
    authentication:
      type: apikey
      in: header
      name: Authorization
      value: '{{JUPYTERLAB_TOKEN}}'
    resources:
    - name: settings
      path: /settings
      operations:
      - name: listsettings
        method: GET
        description: JupyterLab List all settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: settings-schema-name
      path: /settings/{schema_name}
      operations:
      - name: getsetting
        method: GET
        description: JupyterLab Get setting
        inputParameters:
        - name: schema_name
          in: path
          type: string
          required: true
          description: Plugin schema identifier (for example @jupyterlab/apputils-extension:themes).
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatesetting
        method: PUT
        description: JupyterLab Update setting
        inputParameters:
        - name: schema_name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: workspaces
      path: /workspaces
      operations:
      - name: listworkspaces
        method: GET
        description: JupyterLab List workspaces
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: workspaces-space-name
      path: /workspaces/{space_name}
      operations:
      - name: getworkspace
        method: GET
        description: JupyterLab Get workspace
        inputParameters:
        - name: space_name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateworkspace
        method: PUT
        description: JupyterLab Update workspace
        inputParameters:
        - name: space_name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteworkspace
        method: DELETE
        description: JupyterLab Delete workspace
        inputParameters:
        - name: space_name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: themes-theme-file
      path: /themes/{theme_file}
      operations:
      - name: getthemeasset
        method: GET
        description: JupyterLab Get theme asset
        inputParameters:
        - name: theme_file
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: translations
      path: /translations
      operations:
      - name: listtranslations
        method: GET
        description: JupyterLab List translations
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: translations-locale
      path: /translations/{locale}
      operations:
      - name: gettranslation
        method: GET
        description: JupyterLab Get translation bundle
        inputParameters:
        - name: locale
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: licenses
      path: /licenses
      operations:
      - name: getlicenses
        method: GET
        description: JupyterLab Get licenses report
        inputParameters:
        - name: bundles
          in: query
          type: string
          description: Comma-separated list of bundles to include in the report.
        - name: full_text
          in: query
          type: boolean
          description: Whether to include the full text of each license.
        - name: format
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: listings-jupyterlab-extensionmanager-extension-l
      path: /listings/@jupyterlab/extensionmanager-extension/listings.json
      operations:
      - name: getlistings
        method: GET
        description: JupyterLab Get extension listings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: jupyterlab-rest
    description: REST adapter for JupyterLab Server REST API.
    resources:
    - path: /settings
      name: listsettings
      operations:
      - method: GET
        name: listsettings
        description: JupyterLab List all settings
        call: jupyterlab.listsettings
        outputParameters:
        - type: object
          mapping: $.
    - path: /settings/{schema_name}
      name: getsetting
      operations:
      - method: GET
        name: getsetting
        description: JupyterLab Get setting
        call: jupyterlab.getsetting
        with:
          schema_name: rest.schema_name
        outputParameters:
        - type: object
          mapping: $.
    - path: /settings/{schema_name}
      name: updatesetting
      operations:
      - method: PUT
        name: updatesetting
        description: JupyterLab Update setting
        call: jupyterlab.updatesetting
        with:
          schema_name: rest.schema_name
        outputParameters:
        - type: object
          mapping: $.
    - path: /workspaces
      name: listworkspaces
      operations:
      - method: GET
        name: listworkspaces
        description: JupyterLab List workspaces
        call: jupyterlab.listworkspaces
        outputParameters:
        - type: object
          mapping: $.
    - path: /workspaces/{space_name}
      name: getworkspace
      operations:
      - method: GET
        name: getworkspace
        description: JupyterLab Get workspace
        call: jupyterlab.getworkspace
        with:
          space_name: rest.space_name
        outputParameters:
        - type: object
          mapping: $.
    - path: /workspaces/{space_name}
      name: updateworkspace
      operations:
      - method: PUT
        name: updateworkspace
        description: JupyterLab Update workspace
        call: jupyterlab.updateworkspace
        with:
          space_name: rest.space_name
        outputParameters:
        - type: object
          mapping: $.
    - path: /workspaces/{space_name}
      name: deleteworkspace
      operations:
      - method: DELETE
        name: deleteworkspace
        description: JupyterLab Delete workspace
        call: jupyterlab.deleteworkspace
        with:
          space_name: rest.space_name
        outputParameters:
        - type: object
          mapping: $.
    - path: /themes/{theme_file}
      name: getthemeasset
      operations:
      - method: GET
        name: getthemeasset
        description: JupyterLab Get theme asset
        call: jupyterlab.getthemeasset
        with:
          theme_file: rest.theme_file
        outputParameters:
        - type: object
          mapping: $.
    - path: /translations
      name: listtranslations
      operations:
      - method: GET
        name: listtranslations
        description: JupyterLab List translations
        call: jupyterlab.listtranslations
        outputParameters:
        - type: object
          mapping: $.
    - path: /translations/{locale}
      name: gettranslation
      operations:
      - method: GET
        name: gettranslation
        description: JupyterLab Get translation bundle
        call: jupyterlab.gettranslation
        with:
          locale: rest.locale
        outputParameters:
        - type: object
          mapping: $.
    - path: /licenses
      name: getlicenses
      operations:
      - method: GET
        name: getlicenses
        description: JupyterLab Get licenses report
        call: jupyterlab.getlicenses
        outputParameters:
        - type: object
          mapping: $.
    - path: /listings/@jupyterlab/extensionmanager-extension/listings.json
      name: getlistings
      operations:
      - method: GET
        name: getlistings
        description: JupyterLab Get extension listings
        call: jupyterlab.getlistings
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: jupyterlab-mcp
    transport: http
    description: MCP adapter for JupyterLab Server REST API for AI agent use.
    tools:
    - name: listsettings
      description: JupyterLab List all settings
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterlab.listsettings
      outputParameters:
      - type: object
        mapping: $.
    - name: getsetting
      description: JupyterLab Get setting
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterlab.getsetting
      with:
        schema_name: tools.schema_name
      inputParameters:
      - name: schema_name
        type: string
        description: Plugin schema identifier (for example @jupyterlab/apputils-extension:themes).
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: updatesetting
      description: JupyterLab Update setting
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: jupyterlab.updatesetting
      with:
        schema_name: tools.schema_name
      inputParameters:
      - name: schema_name
        type: string
        description: schema_name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listworkspaces
      description: JupyterLab List workspaces
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterlab.listworkspaces
      outputParameters:
      - type: object
        mapping: $.
    - name: getworkspace
      description: JupyterLab Get workspace
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterlab.getworkspace
      with:
        space_name: tools.space_name
      inputParameters:
      - name: space_name
        type: string
        description: space_name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: updateworkspace
      description: JupyterLab Update workspace
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: jupyterlab.updateworkspace
      with:
        space_name: tools.space_name
      inputParameters:
      - name: space_name
        type: string
        description: space_name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deleteworkspace
      description: JupyterLab Delete workspace
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: jupyterlab.deleteworkspace
      with:
        space_name: tools.space_name
      inputParameters:
      - name: space_name
        type: string
        description: space_name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getthemeasset
      description: JupyterLab Get theme asset
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterlab.getthemeasset
      with:
        theme_file: tools.theme_file
      inputParameters:
      - name: theme_file
        type: string
        description: theme_file
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listtranslations
      description: JupyterLab List translations
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterlab.listtranslations
      outputParameters:
      - type: object
        mapping: $.
    - name: gettranslation
      description: JupyterLab Get translation bundle
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterlab.gettranslation
      with:
        locale: tools.locale
      inputParameters:
      - name: locale
        type: string
        description: locale
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getlicenses
      description: JupyterLab Get licenses report
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterlab.getlicenses
      with:
        bundles: tools.bundles
        full_text: tools.full_text
        format: tools.format
      inputParameters:
      - name: bundles
        type: string
        description: Comma-separated list of bundles to include in the report.
      - name: full_text
        type: boolean
        description: Whether to include the full text of each license.
      - name: format
        type: string
        description: format
      outputParameters:
      - type: object
        mapping: $.
    - name: getlistings
      description: JupyterLab Get extension listings
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jupyterlab.getlistings
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    JUPYTERLAB_TOKEN: JUPYTERLAB_TOKEN