通过模型上下文协议增强与 Jupyter 笔记本的交互
该项目提供了一个 模型上下文协议 (MCP) 服务器,该服务器能够实现人工智能模型(如 Claude)或其他 MCP 客户端与运行在 JupyterLab 中的实时 Jupyter 笔记本之间的丰富互动。
<img src="assets/jupyter-extended-demo.gif" alt="Jupyter MCP 示例 GIF" width="700">jupyter_collaboration==2.0.1。datalayer_pycrdt: 必要依赖项。仔细遵循以下步骤以创建一个基于调试结果的稳定环境:
打开你的终端(Anaconda Prompt 或类似)。如果初始 pip 安装需要管理员权限,请以管理员身份运行终端(尽管使用专用环境通常可以避免这种情况)。
# 创建干净的环境(Python 3.10 在调试期间工作良好)
conda create -n jupyter_mcp_env python=3.10 -y
# 激活环境
conda activate jupyter_mcp_env
记得在运行 pip 或 jupyter lab 命令之前激活此环境(conda activate jupyter_mcp_env)。
# 使用 'python -m pip' 确保正确激活的环境中的 pip
python -m pip install jupyterlab ipykernel
新版本在调试期间出现问题。需要版本 2.0.1。
# 安装所需的 v2.0.1
python -m pip install "jupyter_collaboration==2.0.1"
按照特定的卸载/重新安装顺序操作:
# 卸载可能冲突的版本
python -m pip uninstall -y pycrdt datalayer_pycrdt
# 安装所需的版本
python -m pip install datalayer_pycrdt
确保扩展在你的环境中启用:
jupyter server extension enable jupyter_collaboration --py --sys-prefix
包含的 Dockerfile 包含了调试期间发现的补丁。本地构建镜像:
# 导航到包含 Dockerfile 的目录
# cd /path/to/your/jupyter-mcp-server/
docker build -t jupyter-mcp-server:latest .
确保你的 jupyter_mcp_env conda 环境已激活。
# 使用强且唯一的令牌!
# --ip=0.0.0.0 允许 Docker 容器连接
jupyter lab --port 8888 --IdentityProvider.token YOUR_SECURE_TOKEN --ip 0.0.0.0
YOUR_SECURE_TOKEN 替换为强且唯一的密码或令牌。不要使用弱令牌。运行在 Docker 中的 MCP 服务器从 MCP 客户端配置(例如 claude_desktop_config.json)传递的环境变量中读取其配置。关键变量:
http://host.docker.internal:8888,对于 Linux 使用 --network=host 是 http://localhost:8888)。此处不包括令牌。--IdentityProvider.token 一起使用的精确令牌。notebook.ipynb)。可通过 set_target_notebook 工具更改。DEBUG,INFO,WARNING)。默认值:INFO。get_cell_output。默认值:0.5。claude_desktop_config.json。mcpServers 块,根据你的操作系统和配置进行调整:{
"mcpServers": {
"jupyter": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "SERVER_URL",
"-e", "TOKEN",
"-e", "NOTEBOOK_PATH",
"-e", "LOG_LEVEL=INFO",
"jupyter-mcp-server:latest"
],
"env": {
"SERVER_URL": "http://host.docker.internal:8888",
"TOKEN": "YOUR_SECURE_TOKEN",
"NOTEBOOK_PATH": "notebook.ipynb"
}
}
}
}
{
"mcpServers": {
"jupyter": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--network=host",
"-e", "SERVER_URL",
"-e", "TOKEN",
"-e", "NOTEBOOK_PATH",
"-e", "LOG_LEVEL=INFO",
"jupyter-mcp-server:latest"
],
"env": {
"SERVER_URL": "http://localhost:8888",
"TOKEN": "YOUR_SECURE_TOKEN",
"NOTEBOOK_PATH": "notebook.ipynb"
}
}
}
}
此服务器提供了以下工具用于与 Jupyter 互动:
如果在设置或使用过程中遇到问题,请查阅详细的故障排除指南,其中包含了调试期间找到的解决方案。
你可以直接从源码构建 Docker 镜像(包括必要的补丁):
# 确保你在项目的根目录(Dockerfile 所在的位置)
docker build -t jupyter-mcp-server:latest .
这是一个由 Datalayer, Inc. 原创的 jupyter-mcp-server 的扩展分支。这个版本经过大量扩展和调试,增加了许多工具(超过 15 种工具,而原始版本只有 2-3 种),用于操纵笔记本、执行代码、管理文件和与内核互动。
此项目根据 BSD 3-Clause 许可证发布。详见 LICENSE 文件中的完整文本。
版权所有归相应贡献者所有: