项目简介
Jupyter Notebook MCP Server 是一个基于 Model Context Protocol (MCP) 构建的应用后端,旨在桥接 LLM 客户端(如 Claude AI)和 Jupyter Notebook。它允许 LLM 通过标准化的 MCP 协议与 Jupyter Notebook 进行交互,执行代码、分析数据、可视化等操作,从而实现 AI 辅助的 Notebook 自动化和增强功能。
兼容性警告: 该工具仅兼容 Jupyter Notebook v6.x 版本,不支持 Jupyter Lab, Jupyter Notebook v7.x, VS Code Notebooks, Google Colab 等其他Notebook 界面。
主要功能点
- 双向通信: 通过 WebSocket 服务器在 LLM 客户端和 Jupyter Notebook 之间建立双向通信。
- Notebook 控制: 支持 LLM 客户端远程控制 Jupyter Notebook,包括:
- 单元格操作: 插入、执行和管理 Notebook 单元格。
- Notebook 管理: 保存 Notebook、获取 Notebook 信息。
- 代码执行: 运行指定单元格或全部单元格,并获取执行结果。
- 输出检索: 获取单元格的文本和图像输出。
- 单元格编辑: 编辑单元格内容。
- 幻灯片设置: 设置单元格的幻灯片类型,用于演示文稿。
安装步骤
-
环境准备:
- 确保已安装 Python 3.12 或更高版本。
- 安装 'uv' 包管理器(参考仓库 README 获取安装指南)。
- 建议安装 Claude AI 桌面应用程序 以配合使用 (虽然可以使用其他MCP客户端)。
-
克隆仓库:
git clone https://github.com/jjsantos01/jupyter-notebook-mcp.git cd jupyter-notebook-mcp -
创建虚拟环境并安装内核:
uv run python -m ipykernel install --name jupyter-mcp -
(可选) 安装其他 Python 包:
uv pip install seaborn # 例如安装 seaborn -
配置 Claude 桌面应用 (或其他MCP客户端): 打开 Claude 桌面应用的配置 'claude_desktop_config.json' 文件('Claude' > 'Settings' > 'Developer' > 'Edit Config')。在 'mcpServers' 中添加 'jupyter' 服务器配置。
{ "mcpServers": { "jupyter": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/src", // 替换为仓库 src 文件夹的绝对路径 "run", "jupyter_mcp_server.py" ] } } }注意: '/ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/src' 需要替换为你本地 'jupyter-notebook-mcp' 仓库 'src' 文件夹的绝对路径。例如:
- Windows: '"C:\Users\YourUserName\GitHub\jupyter-notebook-mcp\src"'
- macOS/Linux: '"/Users/YourUserName/GitHub/jupyter-notebook-mcp/src"'
保存 'claude_desktop_config.json' 文件后,重启 Claude 桌面应用使配置生效。
基本使用方法
-
启动 Jupyter Notebook (v6.x):
uv run jupyter nbclassic -
创建并配置 Notebook:
-
新建 Jupyter Notebook,务必选择 'jupyter-mcp' 内核 ('Kernel' -> 'Change kernel' -> 'jupyter-mcp')。
-
在 Notebook 单元格中运行以下 Python 代码以启动 WebSocket 服务器:
import sys sys.path.append('/path/to/jupyter-notebook-mcp/src') # 替换为仓库 src 文件夹的路径 from jupyter_ws_server import setup_jupyter_mcp_integration server, port = setup_jupyter_mcp_integration() print(f"WebSocket server started on port: {port}") # 打印 WebSocket 服务器端口注意: ''/path/to/jupyter-notebook-mcp/src'' 同样需要替换为你本地 'jupyter-notebook-mcp' 仓库 'src' 文件夹的相对或绝对路径。
-
-
连接 Claude (或其他MCP客户端): 启动配置了 'jupyter' MCP 服务器的 Claude 桌面应用。Claude 将自动连接到 Jupyter Notebook 的 MCP 服务器。
-
通过 Claude 与 Jupyter Notebook 交互: 在 Claude 中,你可以使用自然语言指令指示其操作 Jupyter Notebook。例如,可以使用示例 Prompt 来创建演示文稿或执行数据分析任务。
外部客户端测试 (可选)
你可以使用仓库自带的外部客户端测试工具来验证 MCP 服务器的功能,无需 Claude 客户端:
uv run python src/jupyter_ws_external_client.py
或运行批量自动化测试:
uv run python src/jupyter_ws_external_client.py --batch
信息
分类
开发者工具