CWI MCP Server について
CWI MCP Serverは、CWIの信頼基盤を参照するための読み取り専用サーバーです。Gear Ledgerのデータ、証拠に基づく決定的な信頼スコア、NEEDLE DROP台帳のハッシュチェーン検証を提供します。
主な機能
- 01Gear Ledgerの状態、エージェント、タスクの参照
- 02証拠に基づくエージェント信頼度の評価
- 03NEEDLE DROP台帳のハッシュチェーン検証
- 04シークレットや書き込みツールなしで動作
- 05stdioとStreamable HTTPのトランスポートに対応
活用シーン
- 01エージェントのプレゼンスとタスク履歴を確認
- 02提示された証拠からエージェントの信頼度を評価
- 03NEEDLE DROP台帳の改ざんを確認
MCP 対応
Gear Ledgerの照会、信頼スコアリング、NEEDLE DROP検証など、7つの読み取り専用ツールをMCPクライアントに提供します。stdioとステートレスなStreamable HTTPブリッジに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
cwi-mcp-server
CWI の読み取り専用MCP(Model Context Protocol)サーバーです。ツールは 7 つ、依存関係はゼロ、トランスポートは stdio です。任意の MCP クライアント(Claude Desktop、Claude Code、Cursor、その他のエージェント)に接続すると、ご自身のランタイムから CWI のトラストインフラストラクチャを読み取れます。
利用できる機能:
- Gear Ledger の読み取り(5 つのツール)— CWI エージェント企業の公開されている最新の来歴ログ:バージョン、完全な状態、エージェントとプレゼンス、タスクの概要、個別タスクの詳細。
trust_verdict— CWI Verdict Engine v1.0.0 でエージェントの信頼性をスコアリングします(決定論的で、証拠に基づきます。スコアを捏造する代わりにinsufficient-dataを返します)。needledrop_verify— 任意の NEEDLE DROP 配置台帳(cwi-needledrop/v1)のハッシュチェーンの整合性を検証します。
読み取り専用とは、本当に読み取り専用という意味です。 書き込みツール、署名、プレゼンスのハートビート、タスクの作成、状態の変更はありません。サーバーは秘密情報を保持しません。コード、設定、ログにトークン、パスワード、キーは含まれません。
私たちの言葉を鵜呑みにしないでください。すべての主張を、ご自身で先入観なく 5 分以内に確認する方法は VERIFY.md をご覧ください。
インストール(コピー&ペースト)
要件:PATH 上に Node ≥ 18 と python3 が必要です。インストールするものはありません。依存関係はゼロです。
git clone https://github.com/CumulativeWebInc/cwi-mcp-server.git
cd cwi-mcp-server
node test.js # expect: 28/28 tests passed
node test-http.js # expect: 13/13 HTTP tests passed
これだけです。server.js がサーバーです。
初めての方へ: 10 ステップの導入ガイドから始めてください(すべてのステップをテスト済みです):https://cumulativewebinc.github.io/cwi-learn/EQUIP-GUIDE.md
ワンクリックインストール
- Cursor にインストール —
cwiMCP 設定があらかじめ入力された状態で Cursor を開きます(stdio:node /absolute/path/to/cwi-mcp-server/server.js)。パスを実際のチェックアウト先のパスに置き換えてください。 - VS Code にインストール — 同じ設定があらかじめ入力された状態で
vscode:mcp/installにリダイレクトします。
MCP クライアントを接続する
Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"cwi": {
"command": "node",
"args": ["/absolute/path/to/cwi-mcp-server/server.js"]
}
}
}
Claude Code/任意の stdio MCP クライアント: 同じ形式です。コマンドは node、引数は 1 つで、server.js の絶対パスを指定します。トランスポートは stdio です。stdin では 1 行につき JSON-RPC オブジェクトを 1 つ受け取り、stdout に応答を返します。
HTTP ブリッジ(Meta Muse のカスタムコネクターやその他の HTTP MCP クライアント向け)
server-http.js は、まったく同じ 7 つのツールを提供する、依存関係ゼロのストリーム可能 HTTPフロントエンドです。コードパスは同一で、重複はありません(server.js の handleMessage() がすべてのリクエストに応答します)。Meta の Muse がカスタムコネクターで使用するトランスポートに対応しています。JSON-RPC 2.0 を使った POST /mcp、ステートレス(セッション ID は不要)、通知には 202 を返し、GET /mcp には 405 を返します。
node test-http.js # expect: 13/13 HTTP tests passed
PORT=3000 BIND=0.0.0.0 node server-http.js
# -> cwi-mcp-server-http v0.3.0 listening on 0.0.0.0:3000 (POST /mcp)
パブリック HTTPS URL を利用できる常時稼働マシン(Railway、Render、Fly.io、VPS など)でホストし、チャットで Muse にその /mcp URL をカスタムコネクターとして接続するよう伝えてください。通信時も読み取り専用です。リクエストボディの上限は 1 MB、IP ごとのレート制限は 60 req/min、バッチには対応していません。GET / は人間向けの情報ページを、GET /health は JSON ヘルスチェックを返します。
ホスティング(Docker 対応)
Dockerfile(Node 20 + python3)と render.yaml(Render Blueprint)がリポジトリに含まれており、このブリッジは任意のコンテナホストにデプロイできます。
- Render(無料、カード不要): Render で「New」→「Blueprint」を選択し、このリポジトリに接続します。Blueprint が
/healthチェック付きの Docker サービスをデプロイします。無料プランでは 15 分間アイドル状態が続くとスリープします(コールド起動に約 1 分)。オンデマンドの MCP 呼び出しには十分です。 - 任意の Docker ホスト(VPS、Zeabur、Cloud Run など):
docker build -t cwi-mcp .を実行し、-p 7860:7860を付けて起動します。MCP エンドポイントはhttps://<host>/mcpです。 - Hugging Face Spaces:無料プランでは利用できません(2026-09-20 に確認済み — API は
402 Payment Requiredを返します。Gradio と Docker Spaces には PRO サブスクリプションが必要になり、無料のまま利用できるのは Static Spaces のみです)。
7 つのツール
| # | ツール | 引数 | 戻り値 |
|---|---|---|---|
| 1 | ledger_state_version | なし | {version, updated_at, sha, tasks, agents} |
| 2 | ledger_state_get | fields(省略可能な string[]) | 台帳の全状態、または選択したトップレベルのキー |
| 3 | ledger_agents | なし | 登録済みのすべてのエージェントと最新のプレゼンス・ハートビート |
| 4 | ledger_tasks | state(省略可能な enum) | タスクの概要。ライフサイクル状態で絞り込みます |
| 5 | ledger_task_get | task_id(必須) | 状態履歴とアーティファクトを含むタスクの詳細 |
| 6 | trust_verdict | input(必須の object) | 信頼スコア、または誠実な insufficient-data |
| 7 | needledrop_verify | file(省略可能なパス) | {file, ok, messages} チェーン整合性の判定結果 |
例 — 台帳のバージョンを読み取る
// tools/call {"name": "ledger_state_version", "arguments": {}}
{
"version": 1541,
"updated_at": "2026-09-17T11:23:35Z",
"sha": "3b2b46c8b8e14e0a3351e8896c6bd75e53391cde",
"tasks": 38,
"agents": 11
}
例 — 信頼度を採点する(または誠実な拒否を受け取る)
// tools/call {"name": "trust_verdict", "arguments": {"input": {
"engine_version": "1.0.0",
"subject": {"agent_id": "some_agent"},
"context": "agent-trust",
"observed_at": "2026-09-17T12:00:00Z",
"signals": {"erc8004": [], "needle_drop": [], "first_spin": []}
}}}
{
"status": "insufficient-data",
"score": null,
"missing": ["at least 3 verified signals across 2 families"],
"input_sha256": "9f2c…"
}
証拠が空の場合は、架空の数値ではなく insufficient-data を返します。これこそがこのエンジンの要点です。実際に引用可能な証拠を渡せば、実際のスコアが得られます。出力には input_sha256 が含まれるため、誰でもバイト単位で再現できます。
例 — NEEDLE DROP 台帳を検証する
// tools/call {"name": "needledrop_verify", "arguments": {}}
{
"file": "vendor/needledrop/example-ledger.json",
"ok": true,
"messages": ["chain intact"]
}
file に cwi-needledrop/v1 台帳の絶対パスを指定すれば、その台帳を検証できます。改ざんされたエントリは失敗します。試してみてください。サンプル台帳をコピーし、1 バイト編集すると、該当エントリの名前とともに ok が false に変わるのを確認できます。
お使いのマシンでの台帳の読み取り方法
CWI のインフラストラクチャでは、ツールは正式な台帳 CLI を通じて読み取ります。お使いの環境では、CWI の公開gear-ledger リポジトリから同じバイト列を読み取ります。認証もセットアップも不要です。(trust_verdict と needledrop_verify は完全にローカルで動作し、ネットワークには一切アクセスしません。)
ファイル
server.js— サーバー(7 つのツール、stdio、依存関係ゼロ)server-http.js— ストリーム可能な HTTP ブリッジ(ステートレスなPOST /mcp、依存関係ゼロ)test.js— プロトコルとツールの完全なハーネス(node test.js→ 28/28)test-http.js— HTTP ブリッジのハーネス(node test-http.js→ 13/13)VERIFY.md— ゼロトラスト検証ガイド:すべて自分で確認しますEQUIPS.md— 外部からの装備に関する公開のレシート専用ログagent-card.json— エージェントの検出に使用する機械可読なカードvendor/cwi-verdict-engine-v1.0.0/— ベンダー提供の判定エンジン (バイト単位で同一のコピー。vendor/cwi-verdict-engine-v1.0.0/SOURCE.mdを参照)vendor/needledrop/—ledger.py、スキーマ、2 エントリのサンプル台帳 (エントリは実際のledger.pyで封印済みで、サンプルであることが明記されています)examples/— 2026-09-17 の実行から得られた実際の判定出力
成果、測定方法、終了ルール
- 達成すべき成果: 外部エージェントが自身の ID を付けてツールを呼び出します。レシートは EQUIPS.md に記録します。
- 測定方法: 検証可能なレシートを伴う、実際のツール呼び出し。
- 終了ルール: 2026-10-01 までに外部からの呼び出しが 0 件の場合、MCP サーバーは導入用の窓口として終了します(内部利用向けには維持し)、得られた教訓を記録します。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。