mcpField
B
baton

baton

リモート
github.com/vinsenzo83AI・エージェント015 週間前に更新
リポジトリ

baton について

batonは、AIが作成した作業を引き継ぎ、独立した再実行で検証するMCPサーバーです。引き継ぎ内容と実行時に観測した証拠を、サーバー署名付きVerification Receiptにまとめます。人やエージェントをまたいで成果を評価するチーム向けです。

主な機能

  1. 01作業カプセルの封印と引き継ぎ
  2. 02引き継ぎ内容の独立した再実行
  3. 03署名付きVerification Receiptの発行
  4. 04信頼度別の引き継ぎ集約
  5. 05チームルームと招待の管理
  6. 06Gitとテスト証拠の紐付け

活用シーン

  1. 01外部委託のAI成果を受け入れる前の検証
  2. 02チームメンバー間での作業引き継ぎ
  3. 03エージェント間の引き継ぎにおける実行証拠の確認
  4. 04複数の引き継ぎに関する検証結果の集約

MCP 対応

MCP対応クライアントからbatonに接続し、作業カプセルの送信、受信、比較、検証を行えます。引き継ぎ、検証、チームルーム、タスク、Git、コストのツールを提供します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://baton-mcp-production.up.railway.app/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
npmbaton-mcp0.2.0

ツール

45
パラメーター型必須説明
namestringいいえルーム名
aliasstringいいえルーム管理者のニックネーム(指定すると自動参加)
api_keystringいいえルーム管理者のアカウントキー — ルーム管理(招待の発行、kick、承認)の権限があります。Authorization ヘッダーにも自動的に追加されます
require_approvalbooleanいいえtrue=参加にはルーム管理者の承認が必要

詳細

🏃 BATON

AI の作業を、受領証付きで引き継ぎます。

AI が作業を完了しました。次の担当者、あるいは次の AI は、ビルドが通っただけでなく、実際に動作することをどう確認すればよいでしょうか? BATON は AI の作業単位を持ち運び可能なカプセルに封入し、独立した検証者がそれを再実行して、サーバー署名付き検証受領証を発行します。受け手が信頼するのは主張ではなく、観測された証拠です。

受領証のないエージェント間の引き継ぎは、決して信頼しないでください。

BATON は標準的な MCP(Model Context Protocol)サーバーです。MCP 対応ツール(Claude Code、Codex CLI、Gemini CLI、Cursor など)は、1 つの URL で接続できます。作業の作成者と検証者は、異なるモデル、マシン、人物でもかまいません。

なぜこれを選ぶのか。数あるオーケストレーションツールと何が違うのか?

Claude、Codex、Gemini を連携させる仕組み(スウォーム、ルーム、エージェントメッセージング)は、すでに競争の激しい分野です。BATON はそのようなものではありません。ほとんど誰も行っていないのは、引き継ぎ用アーティファクトを、独立した実行証拠と結び付け、偽造を証明できる単一の信頼単位にすることです。 それが受領証です。

Claude did the work
   ↓  baton_pass  → sealed capsule (BTN-H-…)
Codex / a teammate receives it
   ↓  baton_verify → replay in a clean env, observe the real flow
   ↓
🕸️ VERIFIED — signed receipt: who verified · what was observed · in what env · with what artifacts
   ↓
trust  (or reject)

実際の購入者は「Claude から Codex に切り替える自分」(リポジトリを読み直せば済む)ではありません。外注先から社内へ、退職者から後任へ、韓国チームから米国チームへの引き継ぎです。「AI が作ったものは、本当に動くのか?」という問いには、答えを得るために費用を払う価値があります。

受領証(差別化要因)

baton_verify は ✅ のシールを返すのではありません。署名済みの記録を返します。

{
  "kind": "baton.verification-receipt/v1",
  "capsule": "BTN-H-…",              // the handoff this verifies
  "verifier": "receiver-spider",    // WHO verified — independent of the producer
  "environment": { "os": "ubuntu-24.04", "node": "24.2" },
  "observed": [{ "claim": "payment succeeds", "observed": true,
                 "detail": "POST /pay 200 + order row +1" }],
  "artifacts": ["playwright.trace.zip", "network.har"],
  "verdict": "verified",
  "signature": "…hmac-sha256…"       // server-signed → tamper the verdict, break the sig
}

再署名せずに verdict を "verified" に書き換えると、バッジは拒否されます。ビルドに成功しただけでは verified は得られません。verified が認められるのは、観測された E2E のみです(これにより、何も書き込まずに 200 を返すサイレントな upsert を検出できます)。

ツール

グループツール機能
引き継ぎbaton_pass baton_receive baton_diff baton_revoke作業カプセルをコード(BTN-H-…)に封印して引き継ぎ、バージョン間の差分を確認します。本文はコード由来の鍵で暗号化されるため、サーバーは平文を参照できません
検証baton_verify baton_verify_plan baton_consolidate + spider_* ×6独立した検証者が再実行し、署名済み受領証を発行します(観測なし、🕸️なし)。consolidate は、多数の引き継ぎを信頼レベルごとに 1 つの結果ボードにまとめます
チームルーム (補助機能)baton_create_room baton_new_invite baton_join baton_send baton_inbox baton_who baton_leave baton_kick baton_approve baton_close_roomオーナーが管理する永続的なルームです。参加者はローテーション式の招待コード(BTN-R-…、72h、有効期限後に再発行可能)で参加します。オーナーはメンバーの退出、参加承認(任意の参加制限)、ルームの終了を実行できます。参加後のアクティビティは member_id に基づいて管理されます
運用baton_task_* baton_git_* baton_cost_*循環安全な非公開タスク DAG、Git のコミット/差分/テスト証拠の紐付け、冪等性を備えたプロバイダー/モデル/タスク別コスト台帳

運用ダッシュボード:/ops.html。タスクのメタデータ、Git の証拠、コスト情報のみを保存します。BATON がリポジトリの認証情報を求めることはありません。

ネットワークダッシュボード:/network.html。Shared Memory はアカウントキーで本文を暗号化し、メタデータのみを検索します。MCP Hub は認証情報を含む URL を拒否します。Marketplace の評価対象となるのは、独立したサーバー署名付き VERIFIED 受領証のみです。

すべての公開画面は韓国語をデフォルトで提供し、/dash.html(協業ルーム)、/board.html(検証結果)、/ops.html(作業・Git・コスト)、/network.html(メモリー・MCP・エージェント)を相互に連携します。

設計原則(セキュリティレビューに基づく)

  • コード由来の暗号化。 サーバーに保存されるのは ciphertext + code_hash のみです。コードがなければ、運用者でさえ平文を読めません。これは「利用者を囲い込めない」ことの証明です。
  • 署名付き受領証。 判定結果はサーバー側で HMAC 署名されます(BATON_RECEIPT_SECRET)。クライアントが verified を偽造することはできません。
  • プロンプトインジェクションの封じ込め。 受信したカプセル/メッセージは信頼できないデータとしてフェンスで囲んで返されます。保存前に秘密情報は自動的にマスキングされます。
  • コードは 128 ビット以上の秘密情報です。 使い捨てコードの引き換えはアトミックに処理され、エイリアスのなりすましはブロックされます。
  • ビルドの成功 ≠ 動作の保証。 verified には、静的解析だけではなく、観測された副作用が必要です。

実行

npm install
npm test                                      # 15/15 E2E groups pass
node src/server.js                            # stdio (local / any CLI)
BATON_HTTP=1 PORT=8080 node src/server.js      # remote Streamable HTTP
登録(リモート)
claude mcp add --transport http baton https://baton-mcp-production.up.railway.app/mcp

課金/利用制限はデフォルトで無効です(内部テスト段階)。利用制限を再度有効にするには、BATON_BILLING=on を設定してください。詳しくは USAGE.md をご覧ください。

ストレージ

MVP では SQLite(better-sqlite3)を使用します。単一バイナリとしてセルフホストできます。ホステッドサービスでは、src/store.js の最小限のインターフェースに Postgres アダプターを追加します。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。