jupyter-mcp-server
jupyter-mcp-server
是一款 MCP服务器,使AI模型能够通过模型上下文协议(MCP)与Jupyter笔记本交互,实现远程代码执行和内容注入。

jupyter-mcp-server 解决方案概述
jupyter-mcp-server
是一款关键的 MCP 服务器实现,旨在无缝连接 AI 模型与活跃的 Jupyter Notebook 环境。作为 MCP 生态系统中的服务器组件,它允许 AI 模型通过标准化的 MCP 协议,与本地或远程运行的 JupyterLab 实例进行交互。其核心功能是向 AI 模型提供特定的“工具”,例如在目标 Notebook 中动态添加并执行代码单元 (add_execute_code_cell
) 或插入 Markdown 单元 (add_markdown_cell
)。这极大地增强了 AI 的实用性,使其能够直接参与到编码和文档撰写过程中,解决了开发者在 AI 交互和实际编码环境间切换的痛点。通过 Docker 容器化部署并连接到指定的 JupyterLab 服务,jupyter-mcp-server
为 AI 客户端(如 Claude Desktop)提供了一种强大、自动化的方式来操作和利用 Jupyter Notebook 资源。
jupyter-mcp-server 核心能力
远程Jupyter Notebook交互
jupyter-mcp-server
充当 AI 模型与本地或远程运行的 JupyterLab 环境之间的桥梁。它遵循模型上下文协议 (MCP),作为一个专门的服务器组件,监听来自 MCP 客户端(如集成到 Claude Desktop 中的 AI 模型)的请求。其核心工作原理是接收 MCP 格式的指令,然后通过与指定 JupyterLab 实例的 API 进行通信来执行这些指令。这要求目标 JupyterLab 实例已启动,并且配置了正确的访问参数(如 IP 地址、端口和身份验证令牌),以便 jupyter-mcp-server
能够成功连接并进行操作。这种连接使得 AI 模型能够感知并影响 Jupyter Notebook 的实时状态,打破了传统 AI 交互与实际开发环境之间的壁垒。
- AI 模型增强: 使 AI 模型能够直接访问和操作用户活跃的 Jupyter Notebook 环境,包括读取现有单元格内容(未来可能支持)和添加新单元格。
- 解决开发者问题: 开发者无需在 AI 聊天界面和 Jupyter Notebook 之间手动复制粘贴代码或文本,实现了 AI 驱动的无缝工作流集成。
- MCP 生态系统优势: 提供了一个标准化的接口,允许任何兼容 MCP 的 AI 客户端与广泛使用的 Jupyter 生态系统进行交互,增强了互操作性。
- 使用场景: 数据科学家可以要求 AI 助手:“在我的
data_analysis.ipynb
笔记本中,添加一个 Markdown 单元格,总结我们刚刚讨论的数据清洗步骤。”jupyter-mcp-server
会接收此请求并相应地修改笔记本。 - 技术实现: 利用 Jupyter Server API 与目标 JupyterLab 实例通信。配置(如
claude_desktop_config.json
中的SERVER_URL
和TOKEN
)对于建立连接至关重要。依赖jupyter-collaboration
可能用于支持更实时的交互。
动态代码执行与结果获取
这是 jupyter-mcp-server
最强大的核心功能之一,通过 add_execute_code_cell
工具实现。当 AI 模型(MCP 客户端)需要执行代码时,它会向 jupyter-mcp-server
发送一个包含待执行代码字符串的 MCP 请求。服务器接收到请求后,会在目标 Jupyter Notebook 中动态创建一个新的代码单元格,并将接收到的代码填充进去。随后,服务器指示与该 Notebook 关联的 Jupyter 内核(Kernel)执行这个新单元格中的代码。执行完成后,内核产生的任何输出(包括标准输出、错误信息或计算结果,如变量值、图表数据等)会被捕获。jupyter-mcp-server
将这些执行结果打包成符合 MCP 规范的响应,回传给发出请求的 AI 模型。
- AI 模型增强: 赋予 AI 模型在用户真实环境中执行代码、验证假设、生成数据可视化或执行复杂计算的能力,而不仅仅是提供代码建议。
- 解决开发者问题: 自动化了 AI 辅助编程中的代码测试和执行环节,使 AI 能够基于用户环境中的实时数据和状态进行操作和响应。
- MCP 生态系统优势: 提供了一种安全、受控的方式,让 AI 模型能够利用 Jupyter 内核的计算能力,同时将结果反馈到 AI 的上下文中。
- 使用场景: 开发者可以指示 AI:“使用 pandas 读取
data.csv
文件,计算value
列的平均值,并将结果告诉我。” AI 通过jupyter-mcp-server
发送import pandas as pd; df = pd.read_csv('data.csv'); print(df['value'].mean())
代码,服务器执行后将平均值返回给 AI。 - 技术实现: 依赖于目标 Notebook 所连接的 Jupyter 内核(如 IPython)来执行代码。返回的输出格式需要遵循 MCP 对工具输出的定义。
Notebook内容结构化添加
除了执行代码,jupyter-mcp-server
还允许 AI 模型通过 add_markdown_cell
工具向 Jupyter Notebook 中添加结构化的文本内容。当 AI 模型需要添加解释、注释、标题或任何格式化文本时,它可以向服务器发送一个包含 Markdown 格式字符串的 MCP 请求。服务器接收到请求后,会在目标 Notebook 中创建一个新的 Markdown 单元格,并将接收到的 Markdown 内容填充进去。这使得 AI 不仅能生成可执行的代码,还能生成相应的文档、说明或报告部分,直接嵌入到用户的 Notebook 工作流中。这种能力有助于创建内容更丰富、结构更清晰、更易于理解的 Notebook 文档。
- AI 模型增强: 使 AI 模型能够生成和组织叙述性内容,将代码、结果和解释结合在一起,创建出更完整的分析报告或教程。
- 解决开发者问题: 自动化了在 Notebook 中编写解释性文本和文档的过程,特别是在 AI 辅助生成代码或分析结果之后,可以方便地让 AI 添加上下文说明。
- MCP 生态系统优势: 充分利用了 Jupyter Notebook 支持 Markdown 的特性,扩展了 AI 与 Notebook 交互的维度,超越了单纯的代码操作。
- 使用场景: 在 AI 帮助生成一个复杂的图表后,用户可以要求:“为刚才生成的图表添加一个 Markdown 单元格,解释 X 轴和 Y 轴的含义以及主要的趋势。” 服务器会添加包含 AI 生成解释的 Markdown 单元格。
- 技术实现: 通过修改 Notebook 的底层 JSON 结构来添加新的单元格,并将其类型设置为
markdown
,内容设置为 AI 提供的文本。