关于 ScratchRun
ScratchRun 是面向 AI Agent 的 MCP 服务,在全新、硬件隔离的 MicroVM 中运行代码,并在每次执行后销毁虚拟机。支持 Python、Node.js 和 Bash,调用间不保留文件或状态。
主要功能
- 01每次运行创建全新 MicroVM
- 02支持 Python、Node.js 和 Bash
- 03可配置时间与内存限制
- 04支持输入和输出文件
- 05阻止访问私有及元数据 IP
适用场景
- 01在隔离环境中运行 Agent 生成的代码
- 02生成图表并取回图像文件
- 03执行脚本且不在调用间保留状态
MCP 相关
向 MCP 客户端提供 `scratchrun_exec` 工具以执行代码。结果包括标准输出、标准错误、退出码和指定的输出文件;图像可作为 MCP 图像内容返回。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| env | object | 否 | 注入到沙箱中的环境变量。用于传递机密和配置。 |
| code | string | 是 | 要执行的代码。 |
| files | object | 否 | 执行前要写入的文件。键为绝对路径,值为文件内容。 |
| runtime | enum | 是 | 运行时环境。python3.12 包含 numpy、pandas、matplotlib、requests 等。python3.12 | python3.11 | node20 | bash |
| memory_mb | integer | 否 | 内存限制,单位为 MB。 |
| timeout_ms | integer | 否 | 执行超时时间,单位为毫秒。退出代码 124 表示超时。 |
| return_files | array | 否 | 执行后要捕获并以 base64 返回的文件路径。适用于图表、CSV 或任何输出工件。 |
详细介绍
@scratchrun/mcp-server
适用于 ScratchRun 的 MCP 服务 — 为 AI Agent 提供临时、通过 MicroVM 隔离的代码执行环境。
每次调用都会在全新的硬件隔离 MicroVM 中运行。执行完成后,虚拟机将彻底清除。调用之间不保留任何状态或文件,也不会留下任何数据。
安装
将以下内容添加到 claude_desktop_config.json:
{
"mcpServers": {
"scratchrun": {
"command": "npx",
"args": ["-y", "@scratchrun/mcp-server"],
"env": {
"SCRATCHRUN_API_KEY": "sr_live_your_key_here"
}
}
}
}
前往 scratchrun.dev 获取 API 密钥。
工具:scratchrun_exec
在临时沙箱中执行代码,并返回 stdout、stderr、退出代码和所有输出文件。
参数:
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
runtime | python3.12 | python3.11 | node20 | bash | 是 | 要使用的运行时 |
code | string | 是 | 要执行的代码 |
timeout_ms | integer | 否 | 超时时间(毫秒,默认 10000,最大 30000) |
memory_mb | integer | 否 | 内存限制(MB,默认 256,最大 512) |
env | object | 否 | 环境变量 — 用于存放密钥,不要存放代码字符串 |
files | object | 否 | 执行前要写入的文件(路径 → 内容) |
return_files | string[] | 否 | 执行后要捕获的文件路径(以 base64 格式返回) |
示例 — 运行 Python 并返回图表:
{
"runtime": "python3.12",
"code": "import matplotlib.pyplot as plt\nimport numpy as np\nx = np.linspace(0, 10, 100)\nplt.plot(x, np.sin(x))\nplt.savefig('/tmp/plot.png')",
"return_files": ["/tmp/plot.png"]
}
输出文件以 base64 格式返回。图像文件(PNG、JPG、SVG)会作为 MCP 图像内容块返回,并在 Claude 中以内嵌形式呈现。
隔离
- 每次执行都使用硬件虚拟化 MicroVM(拥有独立内核,而非共享内核的容器)
- 每次运行后都会无条件调用
TerminateMicroVM— 虚拟机将被销毁,绝不重复使用 - 在网络层始终屏蔽 RFC 1918 地址和云元数据地址(
169.254.x.x) - 通过 OverlayFS 将系统文件系统设为只读;
/tmp由 RAM 支持,并会随虚拟机一起消失
延迟
中位数约为 400ms(预热池)。池为空时,冷启动需要 2–8s。
许可证
MIT
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。