Skip to main content
Glama

Jupyter MCP Server

by datalayer

🪐 ✨ Jupyter MCP Server

Jupyter MCP Server is a Model Context Protocol (MCP) server implementation that provides interaction with 📓 Jupyter notebooks running in any JupyterLab (works also with your 💻 local JupyterLab).

Jupyter MCP Server

Start JupyterLab

Make sure you have the following installed. The collaboration package is needed as the modifications made on the notebook can be seen thanks to Jupyter Real Time Collaboration.

pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 ipykernel pip uninstall -y pycrdt datalayer_pycrdt pip install datalayer_pycrdt==0.12.17

Then, start JupyterLab with the following command.

jupyter lab --port 8888 --IdentityProvider.token MY_TOKEN --ip 0.0.0.0

You can also run make jupyterlab.

Note

The --ip is set to 0.0.0.0 to allow the MCP server running in a Docker container to access your local JupyterLab.

Use with Claude Desktop

Claude Desktop can be downloaded from this page for macOS and Windows.

For Linux, we had success using this UNOFFICIAL build script based on nix

# ⚠️ UNOFFICIAL # You can also run `make claude-linux` NIXPKGS_ALLOW_UNFREE=1 nix run github:k3d3/claude-desktop-linux-flake \ --impure \ --extra-experimental-features flakes \ --extra-experimental-features nix-command

To use this with Claude Desktop, add the following to your claude_desktop_config.json (read more on the MCP documentation website).

Important

Ensure the port of the SERVER_URLand TOKEN match those used in the jupyter lab command.

The NOTEBOOK_PATH should be relative to the directory where JupyterLab was started.

Claude Configuration on macOS and Windows

{ "mcpServers": { "jupyter": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "SERVER_URL", "-e", "TOKEN", "-e", "NOTEBOOK_PATH", "datalayer/jupyter-mcp-server:latest" ], "env": { "SERVER_URL": "http://host.docker.internal:8888", "TOKEN": "MY_TOKEN", "NOTEBOOK_PATH": "notebook.ipynb" } } } }

Claude Configuration on Linux

CLAUDE_CONFIG=${HOME}/.config/Claude/claude_desktop_config.json cat <<EOF > $CLAUDE_CONFIG { "mcpServers": { "jupyter": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "SERVER_URL", "-e", "TOKEN", "-e", "NOTEBOOK_PATH", "--network=host", "datalayer/jupyter-mcp-server:latest" ], "env": { "SERVER_URL": "http://localhost:8888", "TOKEN": "MY_TOKEN", "NOTEBOOK_PATH": "notebook.ipynb" } } } } EOF cat $CLAUDE_CONFIG

Components

Tools

The server currently offers 2 tools:

  1. add_execute_code_cell
  • Add and execute a code cell in a Jupyter notebook.
  • Input:
    • cell_content(string): Code to be executed.
  • Returns: Cell output.
  1. add_markdown_cell
  • Add a markdown cell in a Jupyter notebook.
  • Input:
    • cell_content(string): Markdown content.
  • Returns: Success message.

Building

You can build the Docker image it from source.

make build-docker

Installing via Smithery

To install Jupyter MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @datalayer/jupyter-mcp-server --client claude
-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Enables interaction with Jupyter notebooks through the Model Context Protocol, supporting code execution and markdown insertion within JupyterLab environments.

  1. Start JupyterLab
    1. Use with Claude Desktop
      1. Claude Configuration on macOS and Windows
      2. Claude Configuration on Linux
    2. Components
      1. Tools
    3. Building
      1. Installing via Smithery

        Related MCP Servers

        • -
          security
          A
          license
          -
          quality
          A comprehensive toolkit that enhances LLM capabilities through the Model Context Protocol, allowing LLMs to interact with external services including command-line operations, file management, Figma integration, and audio processing.
          Last updated -
          17
          Python
          Apache 2.0
          • Linux
          • Apple
        • -
          security
          F
          license
          -
          quality
          Allows LLM tools like Claude Desktop and Cursor AI to access and summarize code files through a Model Context Protocol server, providing structured access to codebase content without manual copying.
          Last updated -
          TypeScript
          • Linux
          • Apple
        • -
          security
          -
          license
          -
          quality
          A Python implementation of the Model Context Protocol that allows applications to provide standardized context for LLMs, enabling creation of servers that expose data and functionality to LLM applications through resources, tools, and prompts.
          Last updated -
          Python
          MIT License
        • -
          security
          A
          license
          -
          quality
          A Model Context Protocol server implementation that provides geospatial analysis tools in Jupyter notebooks, particularly for downloading NASA Earth data granules.
          Last updated -
          2
          Python
          BSD 3-Clause
          • Apple
          • Linux

        View all related MCP servers

        MCP directory API

        We provide all the information about MCP servers via our MCP API.

        curl -X GET 'https://glama.ai/api/mcp/v1/servers/datalayer/jupyter-mcp-server'

        If you have feedback or need assistance with the MCP directory API, please join our Discord server