soma について
somaは、開発者やコーディングエージェント向けに、コード生成と候補コードのテスト実行を行うMCPサーバーです。Ed25519署名付き証明書はオフラインで検証でき、検証できないコードは未認証として示されます。
主な機能
- 01サンドボックスで候補コードをテスト実行
- 02コードを生成し返却前にテスト
- 03オフライン検証可能な署名付き証明書
- 0415以上の言語で検証
- 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 サーバー
AI エージェントに、自分ではできないことを実現させましょう。テストに対して実際にコードを実行し、合格したことを証明します。
Soma は、実行によって検証されるコードサービスです。この MCP サーバーは、次の 2 つのツールを公開します。
soma_verify_code— 隔離されたサンドボックス内で候補コードをテストに対して実行し、PASS/FAIL の判定と、オフラインで検証可能な署名付き証明書(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 は不要です。
- 関数モード(デフォルト):
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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。