首页
学习
活动
专区
圈层
工具
发布
MCP广场 >详情页
Jupyter MCP 服务2026-04-07306分享添加福利群:解决AI开发者的「MCP实战痛点」
通过模型上下文协议启用与 Jupyter 笔记本的交互,支持在 JupyterLab 环境中执行代码和插入 markdown。
By datalayer
2026-04-07306
github
详情内容

Datalayer

成为赞助商

🪐🔧 Jupyter MCP 服务器

专为AI开发的MCP服务器,用于实时连接和管理Jupyter Notebook

Datalayer开发

PyPI - 版本 PyPI总下载量 Docker拉取次数 许可证

Jupyter MCP服务器演示

[!注意] 我们需要您的反馈!

我们正在积极开发对JupyterHubGoogle Colab部署的支持。如果您正在使用或计划在这些平台上使用Jupyter MCP服务器,我们非常希望听到您的声音!

  • 🏢 JupyterHub用户:分享您的部署设置和需求
  • 🌐 Google Colab用户:帮助我们了解您的用例和工作流程

加入我们的社区页面讨论 - 您的反馈将帮助我们优先考虑功能,并确保这些集成能满足您的需求。

📖 目录

🚀 关键特性

  • 实时控制:即时查看笔记本变更。
  • 🔁 智能执行:当单元格运行失败时,通过单元格输出反馈自动调整。
  • 🧠 上下文感知:理解整个笔记本上下文,实现更相关的交互。
  • 📊 多模态支持:支持不同类型的输出,包括图像、图表和文本。
  • 📚 多笔记本支持:无缝切换多个笔记本。
  • 🎨 JupyterLab集成:增强的UI集成,如自动打开笔记本。
  • 🤝 MCP兼容:可与任何MCP客户端配合使用,如Claude Desktop、Cursor、Windsurf等。

兼容任何Jupyter部署(本地、JupyterHub等)以及Datalayer托管的Notebook。

🔧 MCP概述

🔧 工具概述

服务器提供了一套丰富的工具用于与Jupyter笔记本交互,分类如下。有关每个工具的详细信息、参数和返回值,请参阅官方工具文档。

服务器管理工具

名称 描述
list_files 列出Jupyter服务器文件系统中的文件和目录。
list_kernels 列出Jupyter服务器上所有可用和运行中的内核会话。

多笔记本管理工具

名称 描述
use_notebook 连接到笔记本文件,创建新文件或切换笔记本。
list_notebooks 列出Jupyter服务器上所有可用的笔记本及其状态
restart_notebook 重启指定托管笔记本的内核。
unuse_notebook 断开与指定笔记本的连接并释放其资源。
read_notebook 以简洁或详细格式读取笔记本单元格的源代码内容。

单元格操作和执行工具

名称 描述
read_cell 读取单个单元格的完整内容(元数据、源代码和输出)。
insert_cell 在指定位置插入新的代码或Markdown单元格。
delete_cell 删除指定索引的单元格。
overwrite_cell_source 覆盖现有单元格的源代码。
execute_cell 执行带超时的单元格,支持包括图像在内的多模态输出。
insert_execute_code_cell 一步插入并执行新的代码单元格。
execute_code 直接在内核中执行代码,支持魔术命令和shell命令。

JupyterLab集成

仅在启用JupyterLab模式时可用。默认启用。

在JupyterLab模式下运行时,Jupyter MCP服务器与jupyter-mcp-tools集成,将额外的JupyterLab命令作为MCP工具公开。默认启用以下工具:

名称 描述
notebook_run-all-cells 顺序执行当前笔记本中的所有单元格
notebook_get-selected-cell 获取当前选中单元格的信息
📚 了解如何自定义额外工具

您现在可以使用allowed_jupyter_mcp_tools配置参数来自定义jupyter-mcp-tools中哪些工具可用。这允许您启用额外的笔记本操作、控制台命令、文件管理工具等。

# 示例:通过命令行启用额外工具
jupyter lab --port 4040 --IdentityProvider.token MY_TOKEN --JupyterMCPServerExtensionApp.allowed_jupyter_mcp_tools="notebook_run-all-cells,notebook_get-selected-cell,notebook_append-execute,console_create"

有关可用工具的完整列表和详细配置说明,请参阅额外工具文档

📝 提示概述

服务器还支持MCP的提示功能,为用户提供与Jupyter笔记本交互的简便方式。

名称 描述
jupyter-cite 引用指定笔记本中的特定单元格(类似编码IDE或CLI中的@

有关每个提示的更多详情、输入参数和返回内容,请参阅官方提示文档

🏁 快速开始

有关全面设置说明——包括可流式HTTP传输、作为Jupyter服务器扩展运行和高级配置——请查看我们的文档。或者,使用以下JupyterLabSTDIO传输快速开始。

1. 设置环境

pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 jupyter-mcp-tools>=0.1.4 ipykernel
pip uninstall -y pycrdt datalayer_pycrdt
pip install datalayer_pycrdt==0.12.17

[!提示] 确认您的环境配置正确:

  1. 在JupyterLab中打开一个笔记本
  2. 在任何单元格(代码或Markdown)中输入一些内容
  3. 观察标签指示器:您应该会在笔记本名称旁边看到一个"×",表示未保存的更改
  4. 等待几秒钟 - "×"应自动变为"●",无需手动保存

这种自动保存行为确认了实时协作功能正常工作,这对MCP服务器集成至关重要。

2. 启动JupyterLab

# 在8888端口启动JupyterLab,允许任何IP访问并设置令牌
jupyter lab --port 8888 --IdentityProvider.token MY_TOKEN --ip 0.0.0.0

[!注意] 如果您通过JupyterHub而非上述JupyterLab运行笔记本,请参考我们的JupyterHub设置指南。

3. 配置您偏好的MCP客户端

接下来,配置您的MCP客户端以连接到服务器。我们提供两种主要方法——选择最适合您需求的一种:

  • 📦 使用uvx(快速开始推荐):使用uv的轻量级快速方法。适合本地开发和首次用户。
  • 🐳 使用Docker(生产推荐):确保一致和隔离环境的容器化方法,非常适合生产或复杂设置。
📦 使用uvx(快速开始)

首先安装uv

pip install uv
uv --version
# 版本需为0.6.14或更高

更多安装细节请参阅uv安装指南

然后配置客户端:

{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": ["jupyter-mcp-server@latest"],
      "env": {
        "JUPYTER_URL": "http://localhost:8888",
        "JUPYTER_TOKEN": "MY_TOKEN",
        "ALLOW_IMG_OUTPUT": "true"
      }
    }
  }
}
🐳 使用Docker(生产环境)

macOS和Windows系统:

{
  "mcpServers": {
    "jupyter": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "JUPYTER_URL",
        "-e", "JUPYTER_TOKEN",
        "-e", "ALLOW_IMG_OUTPUT",
        "datalayer/jupyter-mcp-server:latest"
      ],
      "env": {
        "JUPYTER_URL": "http://host.docker.internal:8888",
        "JUPYTER_TOKEN": "MY_TOKEN",
        "ALLOW_IMG_OUTPUT": "true"
      }
    }
  }
}

Linux系统:

{
  "mcpServers": {
    "jupyter": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "JUPYTER_URL",
        "-e", "JUPYTER_TOKEN",
        "-e", "ALLOW_IMG_OUTPUT",
        "--network=host",
        "datalayer/jupyter-mcp-server:latest"
      ],
      "env": {
        "JUPYTER_URL": "http://localhost:8888",
        "JUPYTER_TOKEN": "MY_TOKEN",
        "ALLOW_IMG_OUTPUT": "true"
      }
    }
  }
}

[!TIP]

  1. 端口配置:确保Jupyter URL中的portjupyter lab命令使用的端口一致。为简化配置,可在JUPYTER_URL中设置。
  2. 服务分离:当两个服务位于同一服务器时使用JUPYTER_URL,高级部署可设置独立变量。不同URL变量的存在是因为某些部署会将笔记本存储(DOCUMENT_URL)与内核执行(RUNTIME_URL)分离。
  3. 认证:多数情况下文档和运行时服务使用相同认证令牌。简化配置使用JUPYTER_TOKEN,不同凭证可分别设置DOCUMENT_TOKENRUNTIME_TOKEN
  4. 笔记本路径DOCUMENT_ID参数指定MCP客户端默认连接的笔记本路径,应相对于JupyterLab启动目录。若省略DOCUMENT_ID,MCP客户端会自动列出Jupyter服务器上所有可用笔记本,您可通过提示交互选择。
  5. 图像输出:若您的LLM不支持多模态理解,请将ALLOW_IMG_OUTPUT设为false

关于配置各种MCP客户端的详细说明——包括Claude桌面版VS CodeCursorClineWindsurf——请参阅客户端文档

✅ 最佳实践

  • 与支持多模态输入的LLM(如Gemini 2.5 Pro)交互,充分发挥高级多模态理解能力
  • 使用支持返回图像数据并能解析的MCP客户端(如Cursor、Gemini CLI等),部分客户端可能不支持此功能
  • 将复杂任务(如完整的数据科学工作流)拆分为多个子任务(如数据清洗、特征工程、模型训练、模型评估等)逐步执行
  • 提供结构清晰的提示和规则(👉 查看我们的提示模板开始使用)
  • 尽可能提供完整上下文(如已安装的软件包、现有数据集的字段说明、当前工作目录、详细的任务需求等)

🤝 贡献指南

我们欢迎各类贡献!包括但不限于:

  • 🐛 错误修复
  • 📝 现有功能改进
  • 🔧 新功能开发
  • 📚 文档改进和提示模板

关于如何开始开发和提交贡献的详细说明,请参阅我们的贡献指南

贡献者名单

贡献者

📚 资源

寻找关于Jupyter MCP Server的博客文章、视频或其他资料?

👉 访问文档中的资源专区获取更多内容!

Star历史图表


如果本项目对您有帮助,请给我们一颗⭐️

Datalayer用❤️打造

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档