jupyter-mcp-server

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

jupyter-mcp-server
jupyter-mcp-server能力展示

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_URLTOKEN)对于建立连接至关重要。依赖 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 提供的文本。
jupyter-mcp-server | MCP Hubs