io.github.ChengJiale150/jupyter-mcp-server

平台与服务

by chengjiale150

功能强大的 MCP server,用于 AI 驱动的 Jupyter Notebook 管理与执行。

什么是 io.github.ChengJiale150/jupyter-mcp-server

功能强大的 MCP server,用于 AI 驱动的 Jupyter Notebook 管理与执行。

README

<div align="center"> <!-- omit in toc -->

🪐 Jupyter MCP Server

<img title="cover" src="https://raw.githubusercontent.com/ChengJiale150/jupyter-mcp-server/main/assets/cover.png" alt="Jupyter MCP Server" data-align="center" width="700">

<strong>专门为AI连接与管理Jupyter Notebook而开发的MCP服务</strong>

ChengJiale150 开发

Python License Version mcp-registry

English | 中文

</div>

📖 目录

🎯 项目简介

Jupyter MCP Server 是一个基于 Model Context Protocol (MCP) 的服务,为目前最先进的的AI IDE(如 Cursor) 与CLI工具(如Gemini CLI)提供连接与管理Jupyter Notebook的能力。使得AI能够操作Notebook,进行数据分析、可视化、机器学习等任务。

🤔 为什么需要Jupyter MCP Server

Jupyter Notebook 是数据科学家最常用的工具之一,它提供了一个交互式的环境,使其可以方便地进行数据分析、可视化、机器学习等探索性任务。然而,由于Notebook自身的格式限制,使得其难以像纯文本文件(如Markdown、Python文件)一样被AI直接理解。

现有的提供操作Notebook的工具或MCP服务,要么仅能阅读与编辑Notebook,要么仅能操纵单个Notebook,难以满足同时操纵多个Notebook的复杂需求。此外,大多数工具也不支持多模态输出,无法充分利用目前最先进的多模态大模型(如Gemini 2.5)的强大图文理解能力。

Jupyter MCP Server 就是为了解决这个问题而开发的。它通过MCP协议,向AI提供了管理Jupyter Kernel与Notebook的工具,使其能够操纵多个Notebook进行交互式的任务执行,并输出多模态结果,助力数据科学家提高分析效率。

✨ 关键亮点

  • 🔌 MCP兼容: 能够在任何支持MCP协议的IDE或CLI工具中使用
  • 📚 多Notebook管理: 支持同时管理多个Notebook
  • 🔁 交互式执行: 能够根据Cell的输出自动调整执行策略
  • 📊 多模态输出: 支持输出多模态结果,如文本、图片、表格等

🔧 工具一览

Notebook管理模块

名称描述说明
connect_notebook连接/创建指定路径的Notebook因为需要启动Kernel,工具执行时间较长(10s~30s)
list_notebook列出所有目前连接的Notebook用于查看目前已经连接的Notebook,方便多Notebook任务执行
restart_notebook重启指定名称的Notebook清除所有导入包与变量
read_notebook读取指定名称的Notebook的源内容(不包含输出)用于查看Notebook的源内容,仅在明确要求时才使用

Cell基本功能模块

名称描述说明
list_cell列出指定名称的Notebook的所有Cell的基本信息用于定位Cell的索引与作用
read_cell读取指定名称的Notebook指定索引的Cell内容支持图像、表格、文本等多种输出
delete_cell删除指定名称的Notebook指定索引的Cell
insert_cell在指定名称的Notebook指定索引处上方/下方插入Cell
execute_cell执行指定名称的Notebook指定索引的Cell返回Cell的输出结果
overwrite_cell覆盖指定名称的Notebook指定索引的Cell内容用于修改Cell内容

Cell高级集成功能模块

名称描述说明
append_execute_code_cell在Notebook末尾添加并执行Code Cellinsert+execute的组合为高频操作,将其组合减少工具的调用次数
execute_temporary_code执行临时代码块(不存储到Notebook中)用于进行魔法指令执行、代码片段调试、查看中间变量取值等临时操作

工具的具体内容详见工具文档

🛠️ 快速上手

环境准备

安装Jupyter MCP Server

<details> <summary>uvx 快速安装(推荐)</summary>

在安装uv后,直接配置MCP的JSON格式即可,示例如下:

json
{
    "mcpServers":{
        "Jupyter-MCP-Server":{
            "command": "uvx",
            "args": [
                "better-jupyter-mcp-server"
            ],
            "env": {
                "ALLOW_IMG": "true"
            },
            "transport": "stdio"
        }
    }
}

具体客户端集成详见集成文档

</details> <details> <summary>源代码</summary>
  1. 克隆项目并安装依赖
bash
git clone https://github.com/ChengJiale150/jupyter-mcp-server
cd jupyter-mcp-server
uv sync
  1. (可选)配置config.toml

进入src/config.toml文件,根据需要配置参数(如是否允许返回图片数据)

  1. 启动Jupyter MCP Server
bash
uv run fastmcp run src/main.py

如果成功启动,会输出类似如下信息代表启动成功:

bash
[09/14/25 20:14:59] INFO     Starting MCP server 'Jupyter-MCP-Server' with transport 'stdio'  
  1. 配置标准JSON格式
json
{
    "mcpServers":{
        "Jupyter-MCP-Server":{
            "command": "uv",
            "args": [
                "run",
                "--directory",
                "your/path/to/jupyter-mcp-server",
                "src/main.py"
            ],
            "env": {},
            "transport": "stdio"
        }
    }
}

具体客户端集成详见集成文档

</details>

使用Jupyter MCP Server

<details> <summary>本地手动启动Jupyter Server</summary>

在正式使用前,需要连接Jupyter Server,这里介绍如何在本地手动启动Jupyter Server:

  1. 打开终端并激活环境:

打开计算机终端命令行,并激活环境

对于使用conda(Anaconda)的用户,可以使用以下命令激活环境:

bash
conda activate your_environment_name

这里为了方便起见,这里可以直接使用base环境(conda activate base)

然后切换到你当前的项目目录,方便后续的文件操作

bash
cd your/path/to/your/project
  1. 安装必要依赖:
bash
pip uninstall -y pycrdt datalayer_pycrdt
pip install jupyter nbformat datalayer_pycrdt jupyter-collaboration
  1. 启动Jupyter Server:

使用下述命令启动Jupyter Server

bash
jupyter lab

成功启动后会弹出浏览器窗口,你可以在此查看根路径是否为工程目录

  1. 获取认证Token:

使用下述命令获取认证Token

bash
jupyter server list

运行后会输出类似如下信息:

bash
http://localhost:8888/?token=YOUR_TOKEN :: YOUR_PROJECT_PATH

其中YOUR_TOKEN为认证Token

  1. 添加提示词与规则

在正式使用前,你必须添加如下提示词于规则文件中以提供Jupyter MCP Server的必要连接信息:

code
以下是Jupyter服务器连接参数:
URL = http://localhost:8888
Token = YOUR_TOKEN

此外,推荐在提示词中添加关键Notebook路径信息,方便AI快速定位目标Notebook提高connect_notebook工具的执行效率,可以在Jupyter Lab网页中右键点击目标Notebook文件,选择Copy Path获取相对路径

在提供上述内容后,你就可以开始使用Jupyter MCP Server了!

</details> <details> <summary>使用LLM托管Jupyter Server</summary>
  1. 安装必要依赖:
bash
pip uninstall -y pycrdt datalayer_pycrdt
pip install jupyter nbformat datalayer_pycrdt jupyter-collaboration
  1. 提供提示词与规则文档:
markdown
## Jupyter MCP Server 使用指南

在正式使用Jupyter MCP Server前,你**必须**完成如下步骤:

1. **启动Jupyter Server**:

在当前项目目录中以不阻塞当前终端的方式在命令行终端中输入启动Jupyter Server,例如:
- `Window`: `start jupyter lab`
- `MacOS/Linux`: `nohup jupyter lab &`

2. **获取URL与认证Token**:

使用`jupyter server list`获取URL与认证Token

仅当完成上述步骤后,你才可以使用Jupyter MCP Server
</details>

✅ 最佳实践

  • 使用支持多模态输入的大模型(如Gemini 2.5 Pro)进行交互,以充分利用最先进的多模态理解能力
  • 使用支持MCP协议返回图像数据并支持解析的客户端(如Cursor、Gemini CLI等),部分客户端可能不支持该功能
  • 将复杂任务(如数据科学建模)拆分为多个子任务(如数据清洗、特征工程、模型训练、模型评估等),并逐步执行
  • 给出结构清晰的提示词与规则,这里可以参考提示词与规则文档
  • 在提示词中融入专家经验与智慧(如数据清洗、特征工程的技巧),这是AI最缺乏的,也是最需要补充的
  • 尽可能提供丰富的上下文信息(如现有数据集的字段解释,文件路径,详细的任务要求等)
  • 提供Few Shot案例,提供Baseline或已有Workflow作为参考

示例

🤝 贡献指南

我们欢迎社区贡献!如果您想为Jupyter MCP Server项目做出贡献,请:

  1. Fork 本仓库
  2. 创建您的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交您的更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启一个 Pull Request

贡献类型

  • 🐛 Bug修复
  • 📝 旧功能完善
  • ✨ 新功能开发
  • 📚 文档改进
  • 🌍 国际化支持

开发帮助文档

🤗 致谢

本项目受到以下项目的帮助,在此表示感谢:

此外,本项目还参考了以下已有Jupyter MCP服务的实现,在此也一并表示感谢:


<div align="center">

如果这个项目对您有帮助,请给我们一个 ⭐️

Made with ❤️ by ChengJiale150

</div>

常见问题

io.github.ChengJiale150/jupyter-mcp-server 是什么?

功能强大的 MCP server,用于 AI 驱动的 Jupyter Notebook 管理与执行。

相关 Skills

Slack动图

by anthropics

Universal
热门

面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。

帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。

平台与服务
未扫描165.3k

MCP构建

by anthropics

Universal
热门

聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。

想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。

平台与服务
未扫描165.3k

接口测试套件

by alirezarezvani

Universal
热门

扫描 Next.js、Express、FastAPI、Django REST 的 API 路由,自动生成覆盖鉴权、参数校验、错误码、分页、上传与限流场景的 Vitest 或 Pytest 测试套件。

帮你把API与集成测试自动化跑顺,减少回归漏测;能力全面,尤其适合复杂接口场景的QA团队。

平台与服务
未扫描23.5k

相关 MCP Server

Slack 消息

编辑精选

by Anthropic

热门

Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。

这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。

平台与服务
89.1k

by netdata

热门

io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。

这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。

平台与服务
79.9k

by d4vinci

热门

Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。

这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。

平台与服务
71.9k

评论