如何使用Jupyter MCP服务器?

如何使用Jupyter MCP服务器?

Jupyter MCP 服务器是 Jupyter 环境的扩展,它将 LLM 与实时编码会话集成在一起。通过实施模型上下文协议(MCP),它能让人工智能模型以安全和上下文感知的方式与 Jupyter 的内核、文件系统和终端进行交互。本博客将探讨如何在系统中使用 Jupyter MCP 服务器。

什么是及为什么需要MCP服务器?

MCP(模型上下文协议)服务器是专用的中间人,可促进人工智能助手与应用程序或外部环境之间的通信。它们允许人工智能模型以状态感知的方式运行,为其提供实时上下文,如变量值、代码历史、数据集和执行结果。

MCP 服务器

如果没有 MCP 服务器,人工智能模型就会在真空中运行,对预设变量一无所知。这种孤立限制了它们的能力和犯错的可能性。MCP 服务器通过为人工智能提供在实时环境中推理、执行和改进的能力来解决这一问题,使其变得更加实用、精确和有效。

什么是Jupyter MCP服务器?

Jupyter MCP 服务器

Jupyter MCP 服务器是一种工具,主要通过使用模型上下文协议(MCP)在大型语言模型和用户的实时 Jupyter 环境之间架起一座桥梁。它无需复制和粘贴代码和数据,从而消除了模型的局限性。MCP 有一个安全协议,通过该协议,模型可以访问 Jupyter 生态系统的各种组件并与之交互。因此,它开启了集成、上下文感知和强大的人工智能驱动辅助工具的概念。

Jupyter MCP服务器的功能

通过模型上下文协议(MCP),Jupyter MCP 服务器为外部应用程序提供了一种与 Jupyter 核心组件交互的结构化方式。这种隔离限制了它们的能力和犯错的可能性。MCP 服务器通过为人工智能提供在实时环境中推理、执行和改进的能力来解决这一问题,使它们变得更加实用、精确和有效。

Jupyter MCP服务器的功能

  1. 内核交互:支持在活动的 Jupyter 内核中执行代码、检索变量状态以及管理内核生命周期。
  2. 文件系统访问:提供对用户工作区的受控访问,允许通过 Jupyter 的内容管理器读写和管理文件和目录。
  3. 终端访问:允许与 Jupyter 的终端会话进行交互,从而执行 shell 命令、安装软件包和自动化系统任务
  4. 实时协作:允许多个用户或人工智能代理同时查看和编辑笔记本。
  5. Notebook管理:高效的笔记本管理包括保存和检索笔记本信息,确保数据的完整性和可访问性。

现在让我们来详细了解其中的一些功能。

Jupyter MCP服务器的主要功能

该系统由三个主要组件组成:内核交互、文件系统访问和终端访问。这些组件使外部应用程序能够分别通过运行代码、管理文件和控制终端会话与 Jupyter 环境对接。在本节中,我们将详细了解每一个组件:

内核交互

它允许 Jupyter MCP 服务器在用户的活动内核中运行代码。它还能检查内核状态、检索执行结果,甚至管理内核生命周期。

工作原理:MCP 客户端向 MCP API 发送请求,指定目标内核和操作。然后,MCP 服务器与 Jupyter 的内核管理器通信,处理请求: 内核交互:支持在活动的 Jupyter 内核中执行代码、检索变量状态和管理内核生命周期。

内核交互

支持的操作:

  • 运行代码单元
  • 检索变量值
  • 检查内核状态
  • 中断或重启内核

文件系统访问

它提供对用户工作区的受控访问,允许外部应用程序读取、写入或管理文件和目录。

工作原理:MCP 客户端根据 Jupyter 内容管理器和 MCP 安全策略设置的规则请求文件操作。

支持的操作:

  • 读取文件内容
  • 写入或修改文件
  • 创建或删除文件和文件夹

终端访问

它允许 Jupyter MCP 服务器与 Jupyter 的终端会话进行交互。

工作原理:MCP 客户端向特定的终端会话发送命令,Jupyter 的终端管理器处理该请求并返回任何输出。

支持的操作:

  • 运行 Shell 命令
  • 安装软件包
  • 管理后台进程
  • 自动执行系统任务

如何集成Jupyter MCP服务器?

本节概述了集成 Jupyter MCP 服务器所需的步骤。在深入介绍安装和配置过程之前,我们先来回顾一下正确设置 Jupyter MCP 服务器所需的先决条件。

满足先决条件后,我们将继续进行安装和设置步骤。

先决条件

  • Python 3.8 或更高版本:服务器基于现代 Python 功能构建,需要最新的环境。
  • Jupyter 服务器:MCP 服务器作为 Jupyter 服务器的扩展运行。如果尚未安装,您可以使用以下命令添加它。
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pip install jupyter-server
pip install jupyter-server
pip install jupyter-server

安装

既然您已经完成了前提条件,让我们按照以下步骤下载 Jupyter MCP 服务器。

1. 下载

您可以通过两种方式下载 Jupyter MCP 服务器。

标准安装

使用 pip 直接从 PyPI 安装 Jupyter MCP 服务器:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pip install jupyter-mcp-server
pip install jupyter-mcp-server
pip install jupyter-mcp-server

开发安装

您也可以从此处克隆源代码库

步骤 1:克隆上述代码库

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
git clone https://github.com/datalayer/jupyter-mcp-server.git
cd jupyter-mcp-server
git clone https://github.com/datalayer/jupyter-mcp-server.git cd jupyter-mcp-server
git clone https://github.com/datalayer/jupyter-mcp-server.git
cd jupyter-mcp-server

步骤 2:下载可编辑模式:这允许您在源代码中进行更改,这些更改将反映在可编辑模式下。

使用 pip 的 -e 标志以可编辑模式安装软件包。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Pip install -e
Pip install -e
Pip install -e

如果您计划运行测试并做出贡献,您可以使用以下代码:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Pip install -e “.[dev]”
Pip install -e “.[dev]”
Pip install -e “.[dev]”

2. 激活扩展程序

安装完成后(无论采用上述哪种方式),您需要为 Jupyter 服务器启用扩展程序。这将加载并使用 MCP 服务器功能。修改 Jupyter 配置,并使用 MCP 服务器更新活动扩展程序列表。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
jupyter server extension enable jupyter_mcp_server
jupyter server extension enable jupyter_mcp_server
jupyter server extension enable jupyter_mcp_server

完成上述步骤后,您可以使用 Jupyter 服务器扩展列表验证您的安装。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
jupyter server extension list
jupyter server extension list
jupyter server extension list

提示:如果您在列表中看到 jupyter_mcp_server,则表示它已激活。

Jupyter MCP服务器运行

Jupyter MCP 服务器不会以可见的界面显示,而是位于 JupyterLAB 或 Notebook 内部。它提供 HTTP API,可供其他工具(例如 Claude Desktop、AI 模型、后端或插件)使用。

使用 Claude Desktop 时,请在 claude_desktop_config.json 中进行更改。运行 Jupyter Notebook 后,您可以从终端获取 TOKEN 值和 NOTEBOOK_PATH。

Windows 代码:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{
"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"
}
}
}
}
{ "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" } } } }
{
  "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 代码:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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 服务器会处理该请求,方法是检查请求是否被允许,然后与 Jupyter 的相应部分(例如内核、文件系统或终端)进行通信,并返回必要的响应。

MCP 扩展提供的 API 端点位于 /mcp/v1,它只是 Jupyter 服务器基本 URL 的一个附加路径。

因此,如果您的 Jupyter 服务器在本地运行于 http://localhost:8888/,您可以在 http://localhost:8888/mcp/v1 找到 MCP API。外部工具(例如 Jupyter MCP 服务器)将在此与您的 Jupyter 环境进行通信。

Jupyter MCP 服务器会根据任务发送 HTTP 请求,例如 GET、POST、PUT 或 DELETE。每个请求都会发送到 /mcp/v1 下的特定子路径。这些请求模式和数据结构构成了所谓的模型上下文协议 (MCP)。有关更多详细信息,您可以参考项目中解释端点作用的主要 README 文件

动手实践

在动手实践中,我们将学习如何:

  • 添加代码单元:这些部分可用于编写和运行代码。
  • 运行代码:只需点击按钮即可立即查看结果。
  • 使用 Markdown 添加文本:使用 Markdown 单元编写注释、说明或标题,使您的工作看起来井井有条。

Source: LinkedIn

它就像一本完美的学习和实验笔记本。

Jupyter MCP的上下文管理与安全

MCP 并非旨在启用访问权限,而是确保访问的可控性和安全性。该协议强制执行授权和范围限定,即将访问权限限制在明确允许的范围内。用户可以查看并控制哪些应用程序可以访问他们的会话以及它们可以执行的操作。这可以防止未经授权的访问,保护用户数据,并确保 Jupyter 环境的安全。

小结

希望本教程对您有所帮助!Jupyter MCP 服务器为您的 Jupyter 环境带来了更智能、由 AI 驱动的交互。它使用模型上下文协议 (MCP) 以安全且标准化的方式执行此操作。该服务器现已可用且易于设置。我相信,随着采用率的提高,我们可以期待更多智能、具有上下文感知能力的工具,它们不仅能够辅助工作,还能真正理解我们的工作流程。从而弥合强大的 AI 模型与动态环境之间的差距。

评论留言