🪐🔧 Jupyter MCP服务器
一 主控程序 为人工智能连接和管理而开发的服务器 朱庇特 实时笔记本
由…开发 数据层
[!重要] v1.0.0中的重大更改: 您必须配置
MCP_TOKEN在您的MCP客户端设置中。有关设置的详细信息,请参阅:https://jupyter-mcp-server.datalayer.tech/providers/jupyter-streamable-http-standalone/#3-配置您的mcp客户端
[!注意] 我们需要您的反馈!
我们正在积极发展对 JupyterHub 和 谷歌Colab 部署。如果您正在使用或计划在这些平台上使用Jupyter MCP Server,我们很乐意收到您的来信!
🏢 JupyterHub用户:分享您的部署设置和要求
🌐 谷歌Colab用户:帮助我们了解您的用例和工作流程
加入我们的对话 社区页面 -您的反馈将帮助我们确定功能的优先级,并确保这些集成无缝地满足您的需求。
📖 目录
- 主要特点
- MCP概述
- 入门指南
- 最佳实践
- 贡献
- 资源
🚀 主要特点
- ⚡ 实时控制: 即时查看发生的笔记本更改。
- 🔁 智能执行: 由于电池输出反馈,电池运行失败时会自动调整。
- 🧠 上下文感知: 了解整个笔记本上下文,以进行更相关的交互。
- 📊 多模式支持: 支持不同的输出类型,包括图像、绘图和文本。
- 📚 多笔记本电脑支持: 在多个笔记本电脑之间无缝切换。
- 🎨 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 | 删除指定索引处的单元格。 |
overwrite_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 配置参数。这允许您启用其他笔记本操作、控制台命令、文件管理工具等。
BASH``` 1 2# 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”
有关可用工具的完整列表和详细的配置说明,请参阅 [附加工具文档](https://jupyter-mcp-server.datalayer.tech/reference/tools-additional).
### 📝 提示概述
服务器还支持 [提示功能](https://modelcontextprotocol.io/specification/2025-06-18/server/prompts) MCP,为用户提供了一种与Jupyter笔记本交互的简单方法。
| 名称 | 描述 |
| --- | --- |
| `jupyter-cite` | 从指定笔记本中引用特定单元格(如 `@` 在编码IDE或CLI中) |
有关每个提示、其输入参数和返回内容的更多详细信息,请参阅 [官方即时文件](https://jupyter-mcp-server.datalayer.tech/reference/prompts).
## 🏁 入门指南
有关全面的设置说明,包括 `Streamable HTTP` 传输,作为Jupyter Server扩展和高级配置运行——查看 [我们的文档](https://jupyter-mcp-server.datalayer.tech/)。或者,快速开始 `JupyterLab` 和 `STDIO` 运输在下面。
### 1.设置您的环境
BASH```
1
2
3pip 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
[!提示] 要确认您的环境配置正确:
在JupyterLab中打开笔记本
在任何单元格中键入一些内容(代码或标记)
观察选项卡指示器:您应该看到笔记本名称旁边出现一个“×”,表示未保存的更改
等待几秒钟——“×”应自动变为“●”,无需手动保存
这种自动保存行为证实了实时协作功能正常工作,这对MCP服务器集成至关重要。
2.启动JupyterLab
BASH``` 1 2# 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安装指南](https://jupyter-mcp-server.datalayer.tech//providers/jupyterhub-streamable-http/).
### 3.配置您的首选MCP客户端
接下来,配置MCP客户端以连接到服务器。我们提供两种主要方法——选择最适合您需求的方法:
- **📦 使用 `uvx` (建议用于快速入门):** 一种轻量级且快速的方法,使用 `uv`非常适合本地开发和首次用户。
- **🐳 使用 `Docker` (推荐用于生产):** 一种容器化的方法,可确保一致和隔离的环境,非常适合生产或复杂的设置。
📦 Using uvx (Quick Start)
首先,安装 `uv`:
BASH```
1
2
3pip install uv
uv --version
# should be 0.6.14 or higher
查看更多详细信息 紫外线装置.
然后,配置您的客户端:
JSON``` 1 2 3 4 5 6 7 8 9 10 11 12 13{ “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上:**
JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19{
"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上:
JSON``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20{ “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. **端口配置**:确保 `port` Jupyter URL中的URL与 `jupyter lab` 命令。为了简化配置,请在 `JUPYTER_URL`.
> 2. **服务器分离**:使用 `JUPYTER_URL` 当两个服务都在同一台服务器上时,或者为高级部署设置单独的变量。存在不同的URL变量,因为某些部署将笔记本存储分开(`DOCUMENT_URL`)从内核执行开始(`RUNTIME_URL`).
> 3. **认证**:在大多数情况下,文档和运行时服务使用相同的身份验证令牌。使用 `JUPYTER_TOKEN` 用于简化配置或设置 `DOCUMENT_TOKEN` 和 `RUNTIME_TOKEN` 分别用于不同的凭据。
> 4. **笔记本路径**:The `DOCUMENT_ID` 参数指定MCP客户端默认连接的笔记本的路径。它应该与启动JupyterLab的目录相关。如果你忽略了 `DOCUMENT_ID`,MCP客户端可以自动列出Jupyter服务器上所有可用的笔记本,允许您通过提示交互式地选择一个。
> 5. **图像输出**:设置 `ALLOW_IMG_OUTPUT` 到 `false` 如果你的法学硕士不支持多模型理解。
有关配置各种MCP客户端的详细说明,包括 [克劳德桌面](https://jupyter-mcp-server.datalayer.tech/clients/claude_desktop), [VS Code](https://jupyter-mcp-server.datalayer.tech/clients/vscode), [光标](https://jupyter-mcp-server.datalayer.tech/clients/cursor), [克莱恩](https://jupyter-mcp-server.datalayer.tech/clients/cline),以及 [帆板运动](https://jupyter-mcp-server.datalayer.tech/clients/windsurf) --看看 [客户文件](https://jupyter-mcp-server.datalayer.tech/clients).
## ✅ 最佳实践
- 与支持多模式输入的LLM(如Gemini 2.5 Pro)交互,以充分利用先进的多模式理解能力。
- 使用支持返回图像数据并可以解析它的MCP客户端(如Cursor、Gemini CLI等),因为有些客户端可能不支持此功能。
- 将复杂的任务(如整个数据科学工作流程)分解为多个子任务(如数据清理、特征工程、模型训练、模型评估等),并逐步执行。
- 提供结构清晰的提示和规则(👉 访问我们的 提示模板 开始)
- 提供尽可能多的上下文(如已安装的包、现有数据集的字段解释、当前工作目录、详细的任务要求等)。
## 🤝 贡献
我们欢迎各种各样的贡献!以下是一些示例:
- 🐛 错误修复
- 📝 对现有功能的改进
- 🔧 新功能开发
- 📚 文档改进和提示模板
有关如何开始开发和提交您的贡献的详细说明,请参阅我们的 贡献指南.
### 我们的贡献者
[](https://github.com/datalayer/jupyter-mcp-server/graphs/contributors)
## 📚 资源
您在寻找关于Jupyter MCP Server的博客文章、视频或其他资料吗?
👉 访问 [**资源科**](https://jupyter-mcp-server.datalayer.tech/resources) 在我们的文档中了解更多!
[](https://star-history.com/#datalayer/jupyter-mcp-server&type=Date)
---
**如果这个项目对你有帮助,请给我们一个⭐️**
制作❤️ 通过 [数据层](https://github.com/datalayer)
## 托管部署
托管部署可在 [Frontier AI](https://fronteir.ai/mcp/datalayer-jupyter-mcp-server).