

🪐🔧 Jupyter MCP服务器
一 主控程序 为人工智能连接和管理而开发的服务器 朱庇特 实时笔记本
*由...开发 数据层*
](https://pypi.org/project/jupyter-mcp-server) ](https://pepy.tech/project/jupyter-mcp-server) ](https://hub.docker.com/r/datalayer/jupyter-mcp-server) 
\[!重要\] v1.0.0中的重大更改: 您必须配置MCP_TOKEN在您的MCP客户端设置中。 有关设置的详细信息,请参阅:https://jupyter-mcp-server.datalayer.tech/providers/jupyter-streamable-http-standalone/#3-配置您的mcp客户端 v1.0.2中的更新:pycrdt现在支持,因此安装datalayer_pycrdt不再需要。
\[!注意\] 我们需要您的反馈! 我们正在积极发展对 JupyterHub 和 谷歌 Colab 部署。如果您正在使用或计划在这些平台上使用Jupyter MCP Server,我们很乐意收到您的来信! - 🏢 JupyterHub用户:分享您的部署设置和要求 - 🌐 谷歌Colab用户:帮助我们了解您的用例和工作流程 加入我们的对话 社区页面 -您的反馈将帮助我们确定功能的优先级,并确保这些集成无缝地满足您的需求。
📖 目录
🚀 主要特点
- ⚡ 实时控制: 即时查看发生的笔记本更改。
- 🔁 智能执行: 由于电池输出反馈,电池运行失败时会自动调整。
- 🧠 上下文感知: 了解整个笔记本上下文,以进行更相关的交互。
- 📊 多模式支持: 支持不同的输出类型,包括图像、绘图和文本。
- 📚 多笔记本电脑支持: 在多个笔记本电脑之间无缝切换。
- 🎨 JupyterLab集成: 增强的UI集成,如自动打开笔记本。
- 🤝 MCP兼容: 适用于任何MCP客户端,如Claude Desktop、Cursor、Windsurf等。
- 🔍 可观察性: 内置挂钩系统,与OpenTetry集成,用于跟踪工具调用和内核执行。
与任何Jupyter部署(本地、JupyterHub等)兼容,并与 数据层 托管笔记本。
🔧 MCP概述
🔧 工具概述
服务器提供了一套丰富的工具用于与Jupyter笔记本交互,分类如下。 有关每个工具、其参数和返回值的更多详细信息,请参阅 官方工具文档.
服务器管理工具
| 名称 | 描述 |
|---|---|
list_files | 列出Jupyter服务器文件系统中的文件和目录。 |
list_kernels | 列出Jupyter服务器上所有可用和正在运行的内核会话。 |
connect_to_jupyter | 动态连接到Jupyter服务器,而无需重新启动MCP服务器。 *作为Jupyter扩展运行时不可用。可用于动态切换服务器或避免硬编码配置。* 阅读更多 |
多笔记本管理工具
| 名称 | 描述 |
|---|---|
use_notebook | 连接到笔记本文件、创建新文件或在笔记本之间切换。 |
list_notebooks | 列出Jupyter服务器上可用的所有笔记本及其状态 |
restart_notebook | 重新启动特定托管笔记本的内核。 |
unuse_notebook | 断开与特定笔记本的连接并释放其资源。 |
read_notebook | 使用简短或详细的格式选项阅读笔记本单元格源内容。 |
单元操作和执行工具
| 名称 | 描述 |
|---|---|
read_cell | 读取单个单元格的完整内容(元数据、源和输出)。 |
insert_cell | 在指定位置插入新代码或标记单元格。 |
delete_cell | 删除指定索引处的单元格。 |
move_cell | 在笔记本中将单元格从一个位置移动到另一个位置。 |
overwrite_cell_source | 覆盖现有单元格的源代码。 |
edit_cell_source | 在不完全重写的情况下,对单元格的源代码进行外科查找和替换编辑。 |
execute_cell | 执行带有超时的单元格,支持包括图像在内的多模式输出。 |
insert_execute_code_cell | 插入一个新的代码单元格,并在一个步骤中执行它。 |
execute_code | 直接在内核中执行代码,支持magic命令和shell命令。 |
JupyterLab集成
*仅在启用JupyterLab模式时可用。默认情况下,它处于启用状态。*
在JupyterLab模式下运行时,Jupyter MCP Server与 jupyter mcp工具 将其他JupyterLab命令作为MCP工具公开。默认情况下,启用以下工具:
| 名称 | 描述 |
|---|---|
notebook_run-all-cells | 按顺序执行当前笔记本中的所有单元格 |
notebook_get-selected-cell | 获取当前所选单元格的信息 |
📚 Learn how to customize additional tools
现在,您可以自定义来自的工具 jupyter-mcp-tools 可使用 allowed_jupyter_mcp_tools 配置参数。这允许您启用其他笔记本操作、控制台命令、文件管理工具等。
# Example: Enable additional tools via command-line
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中) |
有关每个提示、其输入参数和返回内容的更多详细信息,请参阅 官方即时文件.
🏁 入门指南
有关全面的设置说明,包括 Streamable HTTP 传输,作为Jupyter Server扩展和高级配置运行——查看 我们的文档。或者,快速开始 JupyterLab 和 STDIO 运输在下面。
1.设置您的环境
pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 jupyter-mcp-tools>=0.1.4 ipykernel pycrdt\[!提示\] 要确认您的环境配置正确: 1. 在JupyterLab中打开笔记本 1. 在任何单元格中键入一些内容(代码或标记) 1. 观察选项卡指示器:您应该看到笔记本名称旁边出现一个“×”,表示未保存的更改 1. 等待几秒钟——“×”应自动变为“●”,无需手动保存 这种自动保存行为证实了实时协作功能正常工作,这对MCP服务器集成至关重要。
2.启动JupyterLab
# Start JupyterLab on port 8888, allowing access from any IP and setting a token
jupyter lab --port 8888 --IdentityProvider.token MY_TOKEN --ip 0.0.0.0\[!注意\] 如果您通过JupyterHub而不是如上所述的JupyterLab运行笔记本电脑,请参阅我们的 JupyterHub安装指南.
3.配置您的首选MCP客户端
接下来,配置MCP客户端以连接到服务器。我们提供两种主要方法——选择最适合您需求的方法:
- 📦 使用
uvx(建议用于快速入门): 一种轻量级且快速的方法,使用uv非常适合本地开发和首次用户。 - 🐳 使用
Docker(推荐用于生产): 一种容器化的方法,可确保一致和隔离的环境,非常适合生产或复杂的设置。
📦 Using uvx (Quick Start)
首先,安装 uv:
pip install uv
uv --version
# should be 0.6.14 or higher查看更多详细信息 紫外线装置.
然后,配置您的客户端:
{
"mcpServers": {
"jupyter": {
"command": "uvx",
"args": ["jupyter-mcp-server@latest"],
"env": {
"JUPYTER_URL": "http://localhost:8888",
"JUPYTER_TOKEN": "MY_TOKEN",
"ALLOW_IMG_OUTPUT": "true"
}
}
}
}🐳 Using Docker (Production)
在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"
}
}
}
}\[!提示\] 1. 端口配置:确保portJupyter URL中的URL与jupyter lab命令。为了简化配置,请在JUPYTER_URL. 1. 服务器分离:使用JUPYTER_URL当两个服务都在同一台服务器上时,或者为高级部署设置单独的变量。存在不同的URL变量,因为某些部署将笔记本存储分开(DOCUMENT_URL)从内核执行开始(RUNTIME_URL). 1. 认证:在大多数情况下,文档和运行时服务使用相同的身份验证令牌。使用JUPYTER_TOKEN用于简化配置或设置DOCUMENT_TOKEN和RUNTIME_TOKEN分别用于不同的凭据。 1. 笔记本路径:TheDOCUMENT_ID参数指定MCP客户端默认连接的笔记本的路径。它应该与启动JupyterLab的目录相关。如果你忽略了DOCUMENT_ID,MCP客户端可以自动列出Jupyter服务器上所有可用的笔记本,允许您通过提示交互式地选择一个。 1. 图像输出:设置ALLOW_IMG_OUTPUT到false如果你的法学硕士不支持多模型理解。
有关配置各种MCP客户端的详细说明,包括 克劳德桌面, VS Code, 光标, 克莱恩,以及 帆板运动 --看看 客户文件.
✅ 最佳实践
- 与支持多模式输入的LLM(如Gemini 2.5 Pro)交互,以充分利用先进的多模式理解能力。
- 使用支持返回图像数据并可以解析它的MCP客户端(如Cursor、Gemini CLI等),因为有些客户端可能不支持此功能。
- 将复杂的任务(如整个数据科学工作流程)分解为多个子任务(如数据清理、特征工程、模型训练、模型评估等),并逐步执行。
- 提供结构清晰的提示和规则(👉 访问我们的 提示模板 开始)
- 提供尽可能多的上下文(如已安装的包、现有数据集的字段解释、当前工作目录、详细的任务要求等)。
🤝 贡献
我们欢迎各种各样的贡献!以下是一些示例:
- 🐛 错误修复
- 📝 对现有功能的改进
- 🔧 新功能开发
- 📚 文档改进和提示模板
有关如何开始开发和提交您的贡献的详细说明,请参阅我们的 贡献指南.
我们的贡献者

📚 资源
您在寻找关于Jupyter MCP Server的博客文章、视频或其他资料吗?
👉 访问 资源科 在我们的文档中了解更多!

______________________________________________________________________
如果这个项目对你有帮助,请给我们一个⭐️
由...制作❤️ 通过 数据层
托管部署
托管部署可在 Frontier AI.
