返回市场
Jupyter笔记本MCP服务器

Jupyter笔记本MCP服务器

作者:shwetalsoni2 星标更新:2025-06-23

项目介绍

Jupyter Notebook MCP 服务器

这是一个使用 FastMCP 框架 构建的 FastMCP 服务器,提供与 Jupyter 笔记本交互的工具。

功能

  • ✅ 带过滤功能读取笔记本单元格
  • ✅ 在任意位置添加新单元格
  • ✅ 执行单个单元格
  • ✅ 执行整个笔记本
  • ✅ 获取笔记本元数据和统计信息
  • ✅ 正确处理错误和验证
  • ✅ 长操作进度报告
  • ✅ 通过 FastMCP 上下文进行详细日志记录

与你的 MCP 客户端集成

确保已安装 uv。 要使用此服务器与 cursor、claude desktop 或任何其他 MCP 客户端一起使用,请在您的 mcp 配置文件中添加以下内容:

{
  "mcpServers": {
    "jupyter-notebook": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "fastmcp>=2.8.1",
        "python",
        "<绝对路径到 jupyter_mcp_server>/main.py"
      ]
    }
  }
}

测试

运行测试客户端以查看所有功能:

python test_client.py

安全说明

  • 单元格执行直接通过子进程运行 Python 代码
  • 只执行来自可信来源的笔记本
  • 考虑在生产环境中使用沙箱环境
  • 超时控制有助于防止失控的执行

依赖项

  • fastmcp - MCP 服务器框架

工具

此 MCP 服务器提供了以下用于处理 Jupyter 笔记本的工具:

📖 read_notebook_cells

按可选的单元格类型过滤从 Jupyter 笔记本读取单元格。

参数:

  • notebook_path (str): .ipynb 文件的路径
  • cell_type (可选 str): 按单元格类型过滤 ('code', 'markdown', 'raw')

add_cell_to_notebook

在指定位置向 Jupyter 笔记本添加一个新单元格。

参数:

  • notebook_path (str): .ipynb 文件的路径
  • cell_content (str): 新单元格的内容
  • cell_type (str,默认值="code"): 单元格类型 ('code', 'markdown', 'raw')
  • position (可选 int): 插入单元格的位置(默认值:追加到最后)
  • metadata (可选 dict): 可选的单元格元数据

execute_notebook_cell

执行 Jupyter 笔记本中的特定单元格。

参数:

  • notebook_path (str): .ipynb 文件的路径
  • cell_index (int): 要执行的单元格索引(基于 0)
  • kernel_name (str,默认值="python3"): 使用的 Jupyter 内核
  • timeout (int,默认值=30): 执行超时时间(秒)

🔄 execute_entire_notebook

顺序执行 Jupyter 笔记本中的所有代码单元格。

参数:

  • notebook_path (str): .ipynb 文件的路径
  • kernel_name (str,默认值="python3"): 使用的 Jupyter 内核
  • timeout_per_cell (int,默认值=3.0): 每个单元格的超时时间(秒)
  • stop_on_error (bool,默认值=True): 如果单元格失败是否停止执行

📊 get_notebook_info

获取有关 Jupyter 笔记本的基本信息。

参数:

  • notebook_path (str): .ipynb 文件的路径