
Jupyter MCP Server:让 AI 与你的 Jupyter 环境无缝协作 原创
在当今数字化时代,数据科学和机器学习的结合正变得越来越紧密。而 Jupyter Notebook 作为数据科学家和开发者的得力助手,其功能也在不断拓展。今天,我们要介绍的 Jupyter MCP Server,正是这样一个能够将大型语言模型(LLM)与 Jupyter 环境实时集成的神器。它通过实现模型上下文协议(MCP),让 AI 模型能够以安全且有上下文感知的方式与 Jupyter 的内核、文件系统和终端进行交互。接下来,就让我们一起深入了解 Jupyter MCP Server 的魅力所在。
为什么我们需要 MCP 服务器?
在传统的数据科学和机器学习工作中,AI 模型往往处于一个“真空”状态,它们无法感知到预设变量的存在,这极大地限制了它们的能力和潜力。想象一下,如果一个 AI 模型无法获取到代码历史、变量值、数据集以及执行结果等实时上下文信息,它在运行过程中就很容易出错。而 MCP(模型上下文协议)服务器的出现,正是为了解决这一问题。它为 AI 模型提供了实时的上下文感知能力,让它们能够在实时环境中进行推理、执行和改进,从而变得更加智能、精确和高效。
Jupyter MCP Server 是什么?
Jupyter MCP Server 是一个强大的工具,它通过模型上下文协议(MCP)作为桥梁,将大型语言模型与用户的实时 Jupyter 环境连接起来。它打破了传统模型的局限性,无需再手动复制和粘贴代码和数据。通过 MCP 的安全协议,模型可以访问和交互 Jupyter 生态系统的各个组件,从而实现集成化、有上下文感知能力且强大的 AI 驱动辅助。
Jupyter MCP Server 的强大功能
Jupyter MCP Server 通过模型上下文协议(MCP),为外部应用程序与 Jupyter 核心组件之间的交互提供了一种结构化的方式。它具备以下几大功能:
内核交互
Jupyter MCP Server 能够在用户的活跃内核中运行代码,检查内核状态,获取执行结果,甚至管理内核生命周期。具体来说,它可以通过以下几种方式实现:
- 运行代码单元格
- 获取变量值
- 检查内核状态
- 中断或重启内核
其工作原理是:MCP 客户端向 MCP API 发送请求,指定目标内核和操作,然后 MCP 服务器与 Jupyter 的内核管理器通信以处理请求。
文件系统访问
Jupyter MCP Server 提供对用户工作区的受控访问,允许外部应用程序读取、写入或管理文件和目录。它遵循 Jupyter 内容管理器和 MCP 安全策略的规则来执行文件操作。
终端访问
Jupyter MCP Server 还能够与 Jupyter 的终端会话进行交互。MCP 客户端可以向特定的终端会话发送命令,Jupyter 的终端管理器会处理请求并返回任何输出。通过这种方式,用户可以执行以下操作:
- 运行 shell 命令
- 安装包
- 管理后台进程
- 自动化系统任务
实时协作
Jupyter MCP Server 支持多人或 AI 代理同时查看和编辑笔记本,这对于团队协作和实时反馈非常有帮助。
笔记本管理
Jupyter MCP Server 还提供了高效的笔记本管理功能,包括保存和检索笔记本信息,确保数据的完整性和可访问性。
如何集成 Jupyter MCP Server?
在开始集成 Jupyter MCP Server 之前,我们需要先了解一些必要的前提条件:
前提条件
- Python 3.8 或更高版本:Jupyter MCP Server 基于现代 Python 特性构建,需要一个更新的环境。
- Jupyter Server:MCP Server 作为 Jupyter Server 的扩展运行。如果尚未安装,可以通过以下命令添加:
pip install jupyter-server
安装步骤
标准安装
你可以直接从 PyPI 使用 pip 安装 Jupyter MCP Server:
pip install jupyter-mcp-server
开发安装
你也可以从 GitHub 克隆源代码仓库:
git clone https://github.com/datalayer/jupyter-mcp-server.git
cd jupyter-mcp-server
然后使用以下命令以可编辑模式安装,这样你对源代码所做的更改将立即生效:
pip install -e .
如果你计划运行测试并做出贡献,可以使用以下命令:
pip install -e ".[dev]"
激活扩展
安装完成后,你需要为 Jupyter Server 启用扩展,以加载和使用 MCP Server 功能。你可以通过以下命令完成此操作:
jupyter server extension enable jupyter_mcp_server
完成以上步骤后,你可以通过以下命令验证安装是否成功:
jupyter server extension list
如果在列表中看到 jupyter_mcp_server
,则说明扩展已成功激活。
Jupyter MCP Server 的工作原理
Jupyter MCP Server 并不是一个可见的界面,而是隐藏在 JupyterLab 或 Notebook 内部。它提供了一个 HTTP API,供其他工具(如 Claude Desktop、AI 模型、后端或插件)使用。
当使用 Claude Desktop 时,你需要在 claude_desktop_config.json
文件中进行一些配置。TOKEN
值和 NOTEBOOK_PATH
可以在运行 Jupyter Notebook 时从终端获取。
以下是 Windows 和 Linux 系统的配置代码:
Windows
{
"mcpServers": {
"jupyter": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SERVER_URL",
"-e",
"TOKEN",
"-e",
"NOTEBOOK_PATH",
"datalayer/jupyter-mcp-server:latest"
],
"env": {
"SERVER_URL": "http://host.docker.internal:8888",
"TOKEN": "MY_TOKEN",
"NOTEBOOK_PATH": "notebook.ipynb"
}
}
}
}
Linux
CLAUDE_CONFIG=${HOME}/.config/Claude/claude_desktop_config.json
cat <<EOF > $CLAUDE_CONFIG
{
"mcpServers": {
"jupyter": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SERVER_URL",
"-e",
"TOKEN",
"-e",
"NOTEBOOK_PATH",
"--network=host",
"datalayer/jupyter-mcp-server:latest"
],
"env": {
"SERVER_URL": "http://localhost:8888",
"TOKEN": "MY_TOKEN",
"NOTEBOOK_PATH": "notebook.ipynb"
}
}
}
}
EOF
cat $CLAUDE_CONFIG
一旦配置完成,如果需要与你的 Jupyter 会话进行交互,它会向该 API 发送请求。MCP Server 会处理请求,检查是否允许,与 Jupyter 的相应部分(如内核、文件系统或终端)通信,并返回必要的响应。
MCP 扩展提供的 API 端点位于 /mcp/v1
,这是你的 Jupyter Server 基础 URL 的一个附加路径。因此,如果你的 Jupyter 服务器在本地运行于 http://localhost:8888/
,那么你可以在 http://localhost:8888/mcp/v1
找到 MCP API。外部工具(如 Jupyter MCP Server)将通过此路径与你的 Jupyter 环境进行通信。
Jupyter MCP Server 会根据任务发送 HTTP 请求,如 GET、POST、PUT 或 DELETE。每个请求都会发送到 /mcp/v1
下的特定子路径。这些请求模式和数据结构构成了所谓的模型上下文协议(MCP)。更多详情可以参考项目中的主 README 文件,了解端点的作用。
实践应用
在实际应用中,Jupyter MCP Server 可以帮助我们完成以下任务:
添加代码单元格
代码单元格是你可以编写和运行代码的部分。通过 Jupyter MCP Server,你可以轻松地在笔记本中添加新的代码单元格,无需手动复制和粘贴代码。
运行代码
只需点击一个按钮,你就可以立即看到代码的运行结果。这种即时反馈对于快速迭代和调试代码非常有帮助。
添加带有 Markdown 的文本
使用 Markdown 单元格,你可以编写笔记、解释或标题,让你的工作看起来更有条理。这不仅有助于你自己的理解和回顾,也方便与他人分享和协作。
上下文管理和安全性
Jupyter MCP Server 的一个重要特点是它不仅仅是提供访问权限,而是确保访问是受控且安全的。MCP 协议强制执行授权和作用域限制,即仅允许明确允许的访问。用户可以清楚地看到哪些应用程序可以访问他们的会话以及它们可以执行的操作。这不仅防止了未经授权的访问,还保护了用户数据,确保了 Jupyter 环境的安全性。
总结
希望这篇关于 Jupyter MCP Server 的教程对你有所帮助!Jupyter MCP Server 为你的 Jupyter 环境带来了更智能的 AI 驱动交互。它通过模型上下文协议(MCP)以安全且标准化的方式实现了这一点。该服务器已经可用且易于设置。随着其采用率的增加,我们可以期待更多智能的、有上下文感知能力的工具,它们不仅能够提供帮助,还能真正理解我们的工作流程。因此,Jupyter MCP Server 正在弥合强大 AI 模型与动态环境之间的差距。
本文转载自Halo咯咯 作者:基咯咯
