关于 soma
soma 是面向开发者和编码 Agent 的 MCP 服务,可生成代码,并在隔离沙箱中运行测试来检查候选代码。其 Ed25519 签名证书可离线验证;无法验证的代码会标记为未认证。
主要功能
- 01在沙箱中运行候选代码测试
- 02生成代码并在返回前测试
- 03提供可离线验证的签名证书
- 04支持 15 种以上语言的验证
- 05明确标记无法验证的代码
适用场景
- 01用输入输出示例检查函数
- 02验证程序的标准输入和输出
- 03依据签名测试结论审查生成代码
MCP 相关
提供 soma_verify_code,在沙箱中运行测试;以及 soma_generate_verified_code,生成代码后再进行测试。结果包含 PASS/FAIL 判定,验证通过时附带可离线检查的签名证书。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y soma-verify-mcpSOMA_API_KEY密钥Optional Soma API key. A throttled public demo key is built in, so this is not required to try it. Free preview keys: [email protected].SOMA_BASE_URLSoma API base URL. Defaults to the hosted Soma endpoint.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
2收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| code | string | 是 | 要验证的完整源代码。 |
| mode | enum | 否 | 'function'(默认)或 'stdio'。function | stdio |
| tests | array | 是 | function 模式:[{input:[args], expected: value}]。stdio 模式:[{stdin:'...', expected_stdout:'...'}]。 |
| language | string | 是 | 编程语言,例如 'python'、'javascript'、'go'、'rust'。 |
| entrypoint | string | 否 | 要调用的函数名称(function 模式必需;stdio 模式省略)。 |
详细介绍
Soma MCP Server
为你的 AI Agent 提供它无法自行完成的一件事:实际运行代码并通过测试,证明代码通过了测试。
Soma 是一项经执行验证的代码服务。此 MCP 服务提供两个工具:
soma_verify_code— 在隔离沙箱中运行候选代码并执行测试;获取通过/失败判定,以及可离线验证的签名证书(Ed25519)。在信任代码之前,用它独立确认代码是否可用。soma_generate_verified_code— 请 Soma 为某项任务编写代码;如果任务可验证,返回的代码已针对推导出的测试执行过,并附带证书。
支持验证 15 种以上语言(Python、JavaScript/TypeScript、Go、C/C++、Java、Rust、Ruby、PHP、Bash 等)。
安装
需要 Node.js 18+。通过 stdio 运行。
添加到 MCP 客户端配置中(Claude Desktop、Cursor 等):
{
"mcpServers": {
"soma": {
"command": "npx",
"args": ["-y", "soma-verify-mcp"],
"env": {
"SOMA_API_KEY": "YOUR_SOMA_KEY"
}
}
}
}
- Claude Desktop:选择
Settings → Developer → Edit Config,添加上方代码块,然后重启。 - Cursor:选择
Settings → MCP → Add,或将相同的代码块放入~/.cursor/mcp.json。
配置
| 环境变量 | 必需 | 默认值 | 用途 |
|---|---|---|---|
SOMA_API_KEY | 是 | — | 你的 Soma API 密钥。 |
SOMA_BASE_URL | 否 | https://170-9-236-56.sslip.io | Soma API 基础 URL。 |
SOMA_TIMEOUT_MS | 否 | 300000 | 单次请求超时时间。 |
获取免费预览密钥:联系 [email protected](预览期间提供免费套餐)。
工具
soma_verify_code
运行代码并执行测试,返回签名判定。
language(字符串)— 例如python、javascript、go、rust。code(字符串)— 要验证的完整源代码。tests(数组)— 以下两种之一:- 函数模式(默认):
[{ "input": [arg1, arg2], "expected": value }],并提供entrypoint(函数名称)。 - stdio 模式:设置
mode: "stdio",并使用[{ "stdin": "...", "expected_stdout": "..." }];无需提供入口点。
- 函数模式(默认):
entrypoint(字符串,可选)— 函数模式下的函数名称。mode("function"|"stdio",可选)。
返回:verdict、tests_passed、tests_total,以及可供离线验证的 signature / public_key / sig_alg。
soma_generate_verified_code
为某项任务生成代码,并在返回前针对推导出的测试执行代码。
prompt(字符串)— 编码任务。请提供具体的输入/输出示例(例如>>> f(2) == 4),以便验证结果,而不是尽力生成。max_tokens(整数,可选,默认 1500)。
返回:代码、certified(布尔值),以及验证通过时附带的 certificate(verdict、tests_passed、tests_total)。如果任务无法验证,则返回未认证且有明确标注的结果,绝不会虚假地声称“已验证”。
证书的含义
证书证明所列测试在生成时已于隔离沙箱中通过。证书使用 Ed25519 签名,可使用随结果返回的公钥进行离线验证。证书不构成对任何用途适用性的保证 — 投入生产使用前请检查输出。
隐私
不会使用你的提示词进行训练。请参阅 Soma 隐私与数据政策:${SOMA_BASE_URL}/privacy。
许可证
MIT。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。