关于 cinch
cinch 是面向 AI 助手的 MCP 服务,可在 Cinch 基础设施的 gVisor 隔离容器中执行 Python 或 JavaScript 代码。它返回实际输出,且每次运行使用独立沙箱,不接触本机文件系统或网络。
主要功能
- 01执行 Python 和 JavaScript
- 02在 gVisor 隔离容器中运行
- 03返回标准输出、错误和退出码
- 04每次运行使用独立沙箱
- 05限制网络、文件和资源访问
适用场景
- 01验证生成代码的实际输出
- 02在隔离环境中运行不可信代码
- 03执行仅使用标准库的代码片段
MCP 相关
该 MCP 服务向客户端提供 `execute_code` 工具,用于运行 Python 或 JavaScript 程序并返回执行结果。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| code | string | 是 | 仅使用标准库编写完整且独立的程序。必须将结果打印到 stdout。 |
| language | enum | 否 | 用于执行代码的运行时。Python 3.12 或 Node 20。python | javascript |
详细介绍
@cinch-codes/mcp
适用于 Cinch 的 MCP 服务。为你的 AI 助手提供真正的代码运行沙箱。
没有它,助手只能编写代码,再由你亲自运行。有了它,助手就能运行代码并读取实际输出——在 Cinch 基础设施上由 gVisor 隔离的容器中执行,无法访问你的机器、文件系统或本地网络。
按执行次数付费。没有订阅起步价。
设置
在 cinch.codes 获取 API 密钥,然后将服务添加到你的 MCP 客户端。
Claude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"cinch": {
"command": "npx",
"args": ["-y", "@cinch-codes/mcp"],
"env": {
"CINCH_API_KEY": "cinch_live_..."
}
}
}
}
Windows 上的 Claude Desktop — 使用同一个文件,但 Windows 无法直接启动 npx,因此要用 cmd /c 包装:
{
"mcpServers": {
"cinch": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@cinch-codes/mcp"],
"env": {
"CINCH_API_KEY": "cinch_live_..."
}
}
}
}
Claude Code(macOS/Linux):
claude mcp add --scope user cinch -e CINCH_API_KEY=cinch_live_... -- npx -y @cinch-codes/mcp
Claude Code(Windows):
claude mcp add --scope user cinch -e CINCH_API_KEY=cinch_live_... -- cmd /c npx -y @cinch-codes/mcp
Cursor — .cursor/mcp.json,格式与上方的 Claude Desktop 配置相同。
重启客户端即可。无需安装,npx 会在首次运行时获取它。
提供的功能
execute_code
运行独立的 Python 或 JavaScript 程序,并返回 stdout、stderr、退出代码和运行时长。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
code | string | — | 要运行的完整程序。必须向 stdout 打印内容才会有返回值。 |
language | python | javascript | python | 要执行的运行时。 |
每次调用都会获得一个干净的沙箱。状态不会在调用之间保留,因此每段代码都必须能够独立运行。
沙箱环境
刻意保持精简。遇到导入失败时,以下信息值得了解:
| 运行时 | Python 3.12、Node 20 |
| 包 | 仅限标准库。 未安装 pip 或 npm 包,运行时也无法安装。 |
| 网络 | 无。 HTTP、DNS 和安装软件包都会失败。 |
| 文件系统 | 根目录为只读。/tmp 可写(64 MB),运行结束时会被清空。 |
| 内存 | 256 MB |
| CPU | 0.5 核 |
| 时间限制 | 10 秒 |
| 隔离 | gVisor(runsc),移除所有功能权限、启用 no-new-privileges、使用非 root 用户、最多 64 个进程 |
工具描述会预先向模型说明所有这些限制,因此它会编写仅使用标准库的代码,而不是尝试使用 numpy,并在首次调用时就失败。
配置
| 变量 | 必需 | 默认值 | 描述 |
|---|---|---|---|
CINCH_API_KEY | 是 | — | 你的 Cinch API 密钥。 |
CINCH_TIMEOUT_MS | 否 | 20000 | 客户端超时时间,单位为毫秒。无论如何,API 都会将执行时间限制在 10 秒。 |
CINCH_BASE_URL | 否 | https://api.cinch.codes | 覆盖 API 端点。 |
故障排查
Windows:“Failed to connect” 出现在 claude mcp list 中 — 你缺少 cmd /c 包装。Windows 会将 npx 解析为无法直接启动的批处理脚本;请使用上方的 Windows 命令重新添加服务。
Windows:npm error ENOENT ... AppData\Roaming\npm — 有些 Node 安装不会创建 npm 的全局目录,而 npx 没有这个目录就无法运行。创建一次后重试:
mkdir %APPDATA%\npm
服务立即退出并显示 “CINCH_API_KEY is not set” — 环境变量没有传递给服务。在 Claude Code 中,将 -e CINCH_API_KEY=... 放在 claude mcp add 的服务名称之前。在配置文件中,请检查 env 块是否位于 cinch 条目内。
排查任何连接失败 — 直接运行服务,以查看实际错误,而非通用状态信息:
CINCH_API_KEY=cinch_live_... npx -y @cinch-codes/mcp # macOS/Linux
set CINCH_API_KEY=cinch_live_... && cmd /c npx -y @cinch-codes/mcp # Windows
正确的行为是显示 cinch-mcp ... ready,随后保持静默——MCP 服务会等待客户端连接。其他任何输出都表示实际故障。
为什么要使用沙箱执行
模型编写的代码是不可信代码——运行之前没有人审核过它。在你的机器上直接执行,就等于把你的文件系统、网络和凭据交给它。Cinch 会在完全不同的位置执行代码,使用具有内核级隔离的一次性容器,并且只将输出发回。
注意事项
- 需要 Node 18 或更高版本。
- 为保护上下文窗口,每个流的输出上限为 20,000 个字符;超出部分会被截断并附带标记。
- 超时或以非零状态退出的运行会作为工具错误返回,以便助手知道代码执行失败并进行修正。
- 余额不足时会明确显示响应,并指示助手不要重试,以免余额耗尽导致重试循环。
链接
- cinch.codes
- JS/TS SDK:
@cinch-codes/pangolin - Python SDK:
pangolin-sdk
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。