Sandbox Fusion Code Interpreter
STDIOMCP server implementation providing code interpreter functionality for large language models.
MCP server implementation providing code interpreter functionality for large language models.
这是一个对接 Sandbox Fusion 的 MCP (Machine Code Protocol) 服务器实现,可以为大语言模型提供代码解释器功能。
git clone https://github.com/happyZYM/sandbox-fusion-mcp.git cd sandbox-fusion-mcp
conda env create -f environment.yml conda activate mcp-sandbox-fusion
服务器通过环境变量进行配置:
SANDBOX_FUSION_ENDPOINT
: Sandbox Fusion API 的端点地址,默认为 http://localhost:8000
使用提供的启动脚本运行服务器:
./launch.sh
或者直接运行 Python 脚本:
python server.py
服务器提供以下资源:
sandbox://languages
- 获取支持的编程语言列表sandbox://endpoint
- 获取当前配置的 Sandbox Fusion 端点信息服务器提供以下工具:
execute_code
- 执行代码片段
code
(字符串): 要执行的代码language
(字符串,可选): 编程语言,默认为 "python"timeout
(整数,可选): 执行超时时间(秒)execute_jupyter
- 执行 Jupyter 笔记本
notebook_content
(字符串): Jupyter 笔记本内容(JSON 格式)timeout
(整数,可选): 执行超时时间(秒)服务器提供以下提示模板:
code_execution_prompt
- 代码执行提示模板
language
(字符串,可选): 编程语言,默认为 "python"description
(字符串,可选): 代码任务描述jupyter_execution_prompt
- Jupyter 笔记本执行提示模板
description
(字符串,可选): 笔记本任务描述MCP 服务器使用 stdio 交互方式与客户端通信,客户端可以通过 JSON-RPC 进行通信。
示例:列出可用工具
{"jsonrpc": "2.0", "method": "list_tools", "params": {}, "id": 1}
如果遇到问题,请检查以下日志文件:
mcp_server.log
: 服务器主日志mcp_stderr.log
: 标准错误输出日志sandbox-fusion-mcp/
├── server.py - MCP 服务器实现
├── launch.sh - 启动脚本
├── environment.yml - Conda 环境配置
└── README.md - 文档
要添加新的工具或资源,请按照以下模式修改 server.py
:
@mcp_server.tool() def your_tool_name(param1: str, param2: int = 0) -> str: """ 工具描述 参数: - param1: 参数1描述 - param2: 参数2描述 """ # 实现逻辑 return json.dumps(result) @mcp_server.resource("sandbox://your_resource") def your_resource_function() -> str: """资源描述""" # 实现逻辑 return json.dumps(result)
stderr
被重定向到日志文件,以免干扰 stdio 通信MIT