mcpField
S
ScratchRun

ScratchRun

本地服务
github.com/ar-blues开发工具013 周前更新

关于 ScratchRun

ScratchRun 是面向 AI Agent 的 MCP 服务,在全新、硬件隔离的 MicroVM 中运行代码,并在每次执行后销毁虚拟机。支持 Python、Node.js 和 Bash,调用间不保留文件或状态。

主要功能

  1. 01每次运行创建全新 MicroVM
  2. 02支持 Python、Node.js 和 Bash
  3. 03可配置时间与内存限制
  4. 04支持输入和输出文件
  5. 05阻止访问私有及元数据 IP

适用场景

  1. 01在隔离环境中运行 Agent 生成的代码
  2. 02生成图表并取回图像文件
  3. 03执行脚本且不在调用间保留状态

MCP 相关

向 MCP 客户端提供 `scratchrun_exec` 工具以执行代码。结果包括标准输出、标准错误、退出码和指定的输出文件;图像可作为 MCP 图像内容返回。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dev-scratchrun": {
"command": "npx",
"args": [
"-y",
"@scratchrun/mcp-server"
],
"env": {
"SCRATCHRUN_API_KEY": "<SCRATCHRUN_API_KEY>"
}
}
}
}
启动命令npx -y @scratchrun/mcp-server
需要配置的环境变量
SCRATCHRUN_API_KEY密钥ScratchRun API key — get one at https://scratchrun.dev

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@scratchrun/mcp-server0.1.1

工具

1

收录的工具列表 · 更新于 3 周前

参数类型必填说明
envobject否注入到沙箱中的环境变量。用于传递机密和配置。
codestring是要执行的代码。
filesobject否执行前要写入的文件。键为绝对路径,值为文件内容。
runtimeenum是运行时环境。python3.12 包含 numpy、pandas、matplotlib、requests 等。python3.12 | python3.11 | node20 | bash
memory_mbinteger否内存限制,单位为 MB。
timeout_msinteger否执行超时时间,单位为毫秒。退出代码 124 表示超时。
return_filesarray否执行后要捕获并以 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、退出代码和所有输出文件。

参数:

参数类型必填描述
runtimepython3.12 | python3.11 | node20 | bash是要使用的运行时
codestring是要执行的代码
timeout_msinteger否超时时间(毫秒,默认 10000,最大 30000)
memory_mbinteger否内存限制(MB,默认 256,最大 512)
envobject否环境变量 — 用于存放密钥,不要存放代码字符串
filesobject否执行前要写入的文件(路径 → 内容)
return_filesstring[]否执行后要捕获的文件路径(以 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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。