Jupyter Notebook 交互工具

一个基于FastMCP框架的服务器,提供与Jupyter笔记本交互的工具,包括读取、添加、执行单元格以及获取笔记本信息等功能。

  • by shwetalsoni
  • Jupyter Notebook
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 shwetalsoni/jupyter-notebook-mcp-server

使用说明

Jupyter笔记本MCP服务器

FastMCP服务器,提供与Jupyter笔记本交互的工具。使用 FastMCP框架.

特性

  • ✅ 使用过滤功能读取笔记本单元格
  • ✅ 在任何位置添加新单元格
  • ✅ 执行单个单元格
  • ✅ 执行整个笔记本
  • ✅ 获取笔记本元数据和统计信息
  • ✅ 正确的错误处理和验证
  • ✅ 长期运营的进度报告
  • ✅ 通过FastMCP上下文进行全面日志记录

与您的MCP客户端集成

确保安装了紫外线。 要将此服务器与游标、claude桌面或任何其他MCP客户端一起使用,请将以下内容添加到您的MCP配置文件中:

{
  "mcpServers": {
    "jupyter-notebook": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "fastmcp>=2.8.1",
        "python",
        "<absolute_path_to_jupyter_mcp_server>/main.py"
      ]
    }
  }
}

测试

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

python test_client.py

安全说明

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

依赖项

  • fastmcp -MCP服务器框架

工具

此MCP服务器为使用Jupyter笔记本提供了以下工具:

📖 read_notebook_cells

从Jupyter记事本中读取单元格,并可选择按单元格类型进行过滤。

参数:

  • notebook_path (str):.ipynb文件的路径
  • cell_type (可选str):按单元格类型筛选(“代码”、“标记”、“原始”)

➕ add_cell_to_notebook

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

参数:

  • notebook_path (str):.ipynb文件的路径
  • cell_content (str):新单元格的内容
  • cell_type (str,default=“code”):单元格类型(“code”、“markdown”、“raw”)
  • position (可选int):插入单元格的位置(默认:追加到末尾)
  • metadata (可选字典):可选单元格元数据

⚡ execute_notebook_cell

在Jupyter记事本中执行特定单元格。

参数:

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

🔄 execute_entire_notebook

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

参数:

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

📊 get_notebook_info

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

参数:

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