Jupyter代码执行器MCP服务器
 ](https://pypi.org/project/jupyter-code-executor-mcp-server/)  
一个强大的 模型上下文协议(MCP) 服务器,使AI助手能够通过Jupyter内核以多种编程语言执行代码。此服务器提供 有状态的 和 无状态 具有会话管理、自动清理和全面数据分析工具的代码执行功能。
✨ 主要特点
🚀 多语言代码执行
- 通用内核支持:使用已安装的Jupyter内核(Python、R、Julia等)以任何语言执行代码
- 双重执行模式:
- 有意义的会议:在同一会话内的多个执行中维护可变上下文 - 无状态执行:无持久上下文的一次性代码执行
🎯 内置数据分析功能
- 预配置环境:包括基本数据科学库(Pandas、NumPy、Scikit-learn、Seaborn等)
- 专家提示模板:内置数据分析师提示,包含EDA、ML和可视化的最佳实践
- 专业可视化:Seaborn和Matplotlib集成用于出版质量图表
📋 先决条件
- python: >= 3.11
- 紫外线:现代Python包安装程序(推荐)
- 朱庇特:目标语言的Jupyter内核
🔧 安装
使用紫外线(推荐)
# Install the package
uv pip install jupyter-code-executor-mcp-server
# Or install from source
git clone https://github.com/twn39/jupyter-code-executor-mcp-server.git
cd jupyter-code-executor-mcp-server
uv sync
uv run jupyter-code-executor-mcp-server使用pip
pip install jupyter-code-executor-mcp-server🚀 快速开始
启动服务器
# Start with default settings
uv run jupyter-code-executor-mcp-server
# Start with custom configuration
uv run jupyter-code-executor-mcp-server \
--port 8080 \
--data_dir ~/my-data \
--output_dir ~/my-output \
--session-timeout 1200命令行选项
| 选项 | 简短 | 描述 | 默认 |
|---|---|---|---|
--port | -p | 服务器侦听端口 | 5010 |
--data_dir | -d | 用户数据目录 | ~/data |
--output_dir | -o | 代码输出目录 | ~/output |
--session-timeout | -st | 会话超时(秒) | 600 |
测试服务器
使用MCP检查器与服务器交互:
pnpx @modelcontextprotocol/inspector📚 可用的MCP工具
1. list_kernels
列出系统上所有已安装和可用的Jupyter内核。
退货:包含内核名称和显示名称的字符串
示例响应:
Available Jupyter Kernels:
Format: [Kernel Name] - [Display Name]
----------------------------------------
- python3: Python 3
- ir: R
- julia-1.9: Julia 1.92. execute_code
使用可选的会话持久性在指定的Jupyter内核中执行代码。
参数:
code(string):要执行的代码kernel_name(string):目标内核名称(使用list_kernels查找可用内核)session_id(字符串,可选):用于有状态执行的会话标识符
退货:执行结果,包括内核名称、退出代码和输出
无状态示例 python
# Execute code without session persistence
code = """
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print(df.describe())
"""有说服力的例子 (带会话的Python):
# First execution - create variables
session_id = "data-analysis-001"
code1 = """
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
"""
# Second execution - reuse variables from session
code2 = """
# df is still available from previous execution
print(df.describe())
print(f"Shape: {df.shape}")
"""R示例:
# Execute R code
code = """
data <- data.frame(x = 1:10, y = rnorm(10))
summary(data)
plot(data$x, data$y)
"""
kernel_name = "ir"📖 可用提示
data_analyst_prompt
一个全面的人工智能数据分析提示模板,具有以下特点:
- 统计分析:EDA、假设检验、归因分析、时间序列
- 机器学习:监督/无监督学习、模型评估、超参数调整
- 深度学习:使用TensorFlow/PyThorch的神经网络、CNN、RNN/LSTM
- 专业可视化:Seaborn/Matplotlib出版质量图表
- 迭代工作流:思考→ Act → 观察→ 解释周期
此提示将您的AI助手转变为具有代码执行能力的专家数据科学家。
🤝 贡献
欢迎投稿!请随时提交拉取请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。
开发设置
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
______________________________________________________________________
备注:此服务器需要为您要执行的语言正确配置Jupyter内核。使用以下命令安装内核 pip install ipykernel python install.packages('IRkernel') (R) ,或遵循相应的内核安装指南。
