mcpField
X
Xaip

Xaip

ローカル
github.com/xkumakichiセキュリティ213 週間前に更新

Xaip について

Xaipは、委譲先のツールを判断するAIエージェント開発者やポリシー層向けの、プロバイダー非依存の実行証拠レイヤーです。双方が署名したレシートを記録し、検証済みの実行履歴から信頼情報を提供します。

主な機能

  1. 01Ed25519による双方署名の実行レシート
  2. 02入出力のハッシュのみを記録
  3. 03検証済みレシートに基づく信頼スコア
  4. 04委譲前の候補ランキング
  5. 05SDKによるツール・エージェント候補の事前確認

活用シーン

  1. 01委譲前にツールの実行履歴を確認
  2. 02実行証拠に基づいて候補サーバーを選択
  3. 03MCPなどのツール呼び出しを記録
  4. 04信頼を捏造せず未評価候補を確認

MCP 対応

Xaipは、サーバー一覧、信頼確認、候補選択、レシート報告のツールを備えたMCPサーバーを提供します。レシートシステムはMCPツール呼び出しの実行証拠にも対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"xaip-protocol": {
"command": "npx",
"args": [
"-y",
"xaip-mcp-server"
]
}
}
}
起動コマンドnpx -y xaip-mcp-server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmxaip-mcp-server0.1.1

ツール

10

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
networkenumいいえtestnet | devnet | mainnet

詳細

XAIP — AI エージェントのツール呼び出しに対する署名付き実行レシート

委任する前に証拠を。エージェントのツール呼び出しを一度ラップすれば、レシート履歴を今すぐローカルで利用でき、後から同じ署名付きレシートを持ち運び可能で独立検証できる証拠として共有できます。

XAIP は、AI エージェントのツール呼び出しに対応する、プロバイダーに依存しない署名付き実行証拠レイヤーです。MCP、LangChain.js、OpenAI 互換のツール呼び出しループ、その他のランタイムにわたり、共同署名付きレシートを記録します。実行するエージェントと呼び出し元の両者が同一の正規レコードに署名するため、どちらか一方が単独でレシートを捏造することはできません。そして、エージェント、開発者、ポリシーレイヤーが委任前に確認できる過去の実行証拠を提供します。

レシートが主要な成果物です。信頼スコアは、それらのレシートから導き出される一つの見方であり、絶対的な安全性や正確性を主張するものではありません。

XAIP を 30 秒で理解する
  • 仕組み — ツール呼び出しを 1 回受け取り、レシートを 1 件返します。実行するエージェントと呼び出し元が 同一の 正規レコードに署名するため(JCS による Ed25519)、どちらか一方が単独で捏造したり、署名を否認したりすることはできません。記録されるのは入出力のハッシュのみで、内容がマシンの外に出ることはありません。
  • 初日から得られるもの — 自分のエージェントのツールが実際に行ったことを検証可能な形で履歴に残し、次の委任前に照会できます(precheck())。単独での利用にも役立ち、他のユーザーのネットワークは必要ありません。
  • XAIP が提供しないもの — サンドボックスでも、承認エンジンでも、決済レールでも、安全性の保証でもありません。実行証拠を可視化し、何を信頼するかはユーザーが判断します。

目的に応じて選択してください: 3 分 — 最初の署名付きレシートを作成する · 10 分 — 自分でフォーマットを検証する:実行可能な適合性テストベクトル(依存関係なしで node check.mjs を実行)を動かし、そこで参照されている Internet-Draft に目を通します。

委任前に信頼の証拠を確認 — XAIP デモ

ライブデモ:XAIP を使わない場合と使う場合の、3 つの候補サーバーの並列比較です。ブラウザーで開く →

設計上、プロバイダーに依存しません。 XAIP は、あらゆるツール利用エージェント向けの信頼レイヤーです。リファレンス実装とライブデータは MCP(Model Context Protocol)から始まります。現時点で公開ツールサーバーが最も広く存在する領域だからです。ただし、レシートのフォーマット、署名、スコアリングは、LangChain ツール、OpenAI の関数呼び出し、A2A、独自のエージェントスタックにも同様に適用できます。MCP は最初の統合先であり、唯一の統合先ではありません。

ライブダッシュボード: https://xkumakichi.github.io/xaip-protocol/ — 現在の公開信頼スコアを認証なしで確認でき、自動更新されます。現在の公開データセットは、MCP が最初の統合対象だったため、MCP が中心です。

エントリーポイント

今すぐ試す

API は稼働中です。サインアップも API キーも不要です。

# Check trust score for a scored tool server
curl https://xaip-trust-api.kuma-github.workers.dev/v1/trust/context7

# Batch query
curl "https://xaip-trust-api.kuma-github.workers.dev/v1/trust?slugs=context7,sequential-thinking,filesystem"

# Decision engine: rank candidates by available execution evidence
curl -X POST https://xaip-trust-api.kuma-github.workers.dev/v1/select \
  -H "Content-Type: application/json" \
  -d '{"task":"Fetch React docs","candidates":["context7","sequential-thinking","unknown-server"]}'

/v1/select のレスポンスでは、どのサーバーを使うべきか、その理由、そして XAIP がなければどうなるかがわかります。

{
  "selected": "context7",
  "reason": "Highest trust among scored candidates based on current verified receipts",
  "rejected": [{ "slug": "unknown-server", "reason": "unscored — no execution evidence available" }],
  "withoutXAIP": "Random selection would pick an unscored server 33% of the time — no execution evidence available"
}

問題

信頼スコアがなければ、エージェントは運任せです。

┌────────────────┬────────────────┬───────────┬──────────────┐
│ Strategy       │ Server Hit     │ Success   │ Latency      │
├────────────────┼────────────────┼───────────┼──────────────┤
│ With XAIP      │ context7       │ ✓         │ ~3s          │
│ Random         │ unknown-mcp    │ ✗ error   │ ~8s (wasted) │
│ Try all (seq)  │ 3 servers      │ 1/3       │ ~11s total   │
└────────────────┴────────────────┴───────────┴──────────────┘

XAIP は、利用可能な実行証拠がより強い候補をエージェントが優先し、適切な場合はスコアのない候補を避け、回避可能な呼び出し失敗を減らせるよう支援します。

仕組み

1. Select    POST /v1/select → ranks candidates by available execution evidence
2. Execute   Your agent calls the selected tool server
3. Report    POST /receipts → signed execution receipt feeds back into trust scores

すべての実行レシートは Ed25519 で署名され、検証されます。信頼スコアは、自己申告の指標ではなく、呼び出し元の多様性による重み付けを用いたベイズモデルで算出されます。

クイックスタート — 5分以内に最初の署名付きレシートを作成

最も手早い方法は Claude Code フックです。通常の MCP ツール呼び出しで署名付きレシートの生成が始まり、マシンから送信されるのはハッシュだけです。 クリーンな Windows 11 プロファイル(Node 24、npm 11)でエンドツーエンドの実測を行ったところ、コマンドの実行時間は合計約8秒でした。macOS/Linuxでも手順は同じです。

クイックスタートの再生 — インストール、ツール呼び出し1回、署名付きレシート1件、検証、precheck

(この測定で実際に記録した出力を使って、ターミナルの再生をレンダリングしています — 生成スクリプト。)

1. インストール
npm install -g xaip-claude-hook
2. コマンドを1つ実行
xaip-claude-hook install
✓ XAIP Claude Code hook installed.
  C:\Users\you\.claude\settings.json

Next MCP tool call will emit a signed receipt to
  https://xaip-aggregator.kuma-github.workers.dev
3. ツールを1回呼び出す

Claude Code の新しいセッションを開き、任意の MCP ツールを呼び出すようにします(たとえば、context7 でライブラリを調べるよう依頼します)。フックが自動でレシートに署名して送信するため、操作は不要です。

4. 署名付きレシートを1件確認
cat ~/.xaip/hook.log
2026-07-17T03:41:57.964Z POST context7/resolve-library-id ok=true lat=2402ms → 200 {"ok":true,"agentDid":"did:web:context7","callerVerified":true}

callerVerified: true は、アグリゲーターが正規化されたレシートペイロードに対する Ed25519 呼び出し元署名を確認したことを示します。送信されたのはハッシュとメタデータ(ツール名、レイテンシ、成功の可否)だけです。入力、出力、ファイルパスは送信されず、ログにはマシンから送信された内容が正確に記録されます。

5. 検証結果を1件確認
curl https://xaip-trust-api.kuma-github.workers.dev/v1/trust/context7
{ "slug": "context7", "trust": 0.926, "receipts": 1044,
  "source": "xaip-aggregator-1 (single aggregator)" }
6. precheck の結果を1件確認 — 信頼を捏造しない
curl -X POST https://xaip-trust-api.kuma-github.workers.dev/v1/select \
  -H "Content-Type: application/json" \
  -d '{"task":"summarize a webpage","candidates":["context7","my-brand-new-server"]}'
{ "selected": "context7",
  "reason": "Only eligible candidate (trust 0.926, 1044 verified executions)",
  "rejected": [ { "slug": "my-brand-new-server",
                  "reason": "unscored — no execution evidence available" } ] }

これはコールドスタート時の動作を、ありのままに示しています。誰も実行したことのないサーバーは、合成スコアを付与されるのではなく、unscored になります。レシートが届くにつれて証拠が蓄積されます。XAIP は、実行履歴のないツールに対する信頼を捏造しません。

うまく動作しない場合
  • フックが一度も実行されない — Claude Code がフックを起動するときに、フックのコマンドを解決できる必要があります。npm のグローバル bin ディレクトリ(npm config get prefix)が PATH に含まれていることを確認してから、新しいセッションを開始してください。
  • PowerShell で「スクリプトの実行が無効」と表示される — Windows の既定の実行ポリシーでは、対話型コマンドで npm の .ps1 shim がブロックされます。xaip-claude-hook.cmd を使用するか、cmd から実行するか、Set-ExecutionPolicy -Scope CurrentUser RemoteSigned を実行してください。レシートの送信には影響しません(フックは .cmd shim 経由で実行されます)。
  • 無効にする — export XAIP_DISABLED=1 で一時的に無効にできます。xaip-claude-hook uninstall でフックを削除できます(~/.xaip/ 内のキーとログは、削除するまで残ります)。レシートは仮名化されています。呼び出し元の DID はインストールごとのキーであり、ほかの情報には紐付けられていません。
エンドツーエンドのデモを実行する
git clone https://github.com/xkumakichi/xaip-protocol.git
cd xaip-protocol/demo
npm install
npx tsx dogfood.ts

このデモでは、次のことを行います。

  1. 利用可能な実行エビデンスに基づいて、「Fetch React hooks documentation」に適した候補サーバーを XAIP に順位付けさせます
  2. 選択された MCP サーバーに接続し、実際のツール呼び出しを実行します
  3. 署名付きの実行レシートを Aggregator に送信します
  4. 更新された信頼スコアを表示します
選択品質のデモ

静的な信頼スナップショットと固定された候補セットを使って、無作為選択戦略を XAIP による選択と比較します。

cd demo
npm run blind-vs-xaip

これは決定論的なローカルリプレイです。実際のツール実行、レシートの送信、外部 API の呼び出しは行いません。 対象範囲、指標、制限事項については、docs/blind-vs-xaip-demo.md を参照してください。

付属のスナップショットリプレイでは、次の結果になります。

戦略リスクのある選択率適格な選択率
Random71.4%28.6%
Fixed-order85.7%14.3%
XAIP14.3%85.7%

risky_pick = 選択された候補がスナップショット内で low_trust または unscored だったことを示します。fixed-order は、実行時の信頼データを使わず、上流プランナーの候補順をそのまま受け入れるエージェントをモデル化しています。この主張は、この固定候補セットと静的な信頼スナップショットに限られます。実環境での実行が改善されることを保証するものではありません。

独立した呼び出し元になる

信頼グラフを単一の運用者だけに依存させたくない場合は、自分で呼び出し元を実行してください。アカウントも承認も API キーも不要です。Aggregator は、有効なキーペアからの署名を検証します。

最速 — インストール不要、30 秒:

npx xaip-caller

実際の HTTP ツール呼び出しを数件行ってレシートに署名し、POST します。XAIP が MCP 以外でも機能することを示します。あらゆる HTTP ツールが参加できます。clients/caller を参照してください。 Windows に関する注意事項や外部レシートの提供方法については、Run xaip-caller を参照してください。

フルパス — MCP サーバー、5 分:

リポジトリをクローンし、実際の MCP サーバーを対象に自動コレクターを実行します。あなたの呼び出し元 DID は、スコア付けされるすべての MCP ツールの多様性に貢献します。docs/contributor/run-a-caller.md を参照してください。

SDK を使う
npm install xaip-sdk
import { precheck } from "xaip-sdk";

const result = await precheck({
  task: "Fetch React documentation",
  candidates: ["context7", "memory", "unknown-server"],
  includeDecision: true,
});

console.log(result.selected); // e.g. "memory" or null
console.log(result.decision); // "allow", "warn", or "unknown"

precheck() は POST /v1/select を薄くラップした SDK 関数です。コードが委任先を決定する前に、ツール、スキル、エージェントの候補について、利用可能な実行エビデンスを返します。

境界、ポリシーのオプション、結果の形式、エラーについては、precheck() API guide を参照してください。

MCP サーバー

Claude、Cursor、または MCP 互換の AI エージェントから XAIP を直接使えます。

npx xaip-mcp-trust

4 つのツール:xaip_list_servers、xaip_check_trust、xaip_select、xaip_report

Claude Code に追加します(~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "xaip-trust": {
      "command": "npx",
      "args": ["-y", "xaip-mcp-trust"]
    }
  }
}

npm:xaip-mcp-trust

API リファレンス

メソッドエンドポイント説明
GET/v1/servers信頼性データ付きで、スコアが付与されたすべてのサーバーを一覧表示します
GET/v1/trust/:slugスコアが付与された個別サーバーの信頼スコア
GET/v1/trust?slugs=a,b,c信頼スコアの一括取得(最大50件)
POST/v1/select意思決定エンジン — 利用可能な実行証拠に基づいて候補を順位付けします
GET/health稼働状態の確認

ベース URL: https://xaip-trust-api.kuma-github.workers.dev

信頼スコアのレスポンス
フィールド型説明
trustnumber | null0.0~1.0のスコア。未評価の場合はnullです
verdictstringtrusted ≥0.7 · caution 0.4~0.7 · low_trust <0.4 · unscored
receiptsnumber検証済み実行レシートの合計数
confidencenumber | null統計的信頼度:min(1, receipts/100)
riskFlagsstring[]検出されたリスク指標
computedFromstringデータの由来に関する説明
意思決定エンジン(POST /v1/select)

リクエスト:

{
  "task": "description of what your agent needs to do",
  "candidates": ["server-a", "server-b", "server-c"],
  "mode": "relative"
}
  • mode: "relative"(デフォルト) — しきい値を下回る場合でも、常に利用可能な最良の候補を選択します
  • mode: "strict" — caution のしきい値を下回る候補をすべて拒否します

アーキテクチャ

┌──────────────────────────────────────────────────────────┐
│  Your AI Agent                                           │
│  ┌──────────┐   ┌───────────┐   ┌─────────────────────┐ │
│  │ Select   │──▶│ Execute   │──▶│ Report Receipt      │ │
│  │ (Trust   │   │ (MCP call)│   │ (Ed25519 signed)    │ │
│  │  API)    │   └───────────┘   └──────────┬──────────┘ │
│  └────┬─────┘                              │            │
└───────┼────────────────────────────────────┼────────────┘
        │                                    │
        ▼                                    ▼
┌───────────────┐                 ┌──────────────────────┐
│  Trust API    │◀────────────────│  Aggregator (BFT)    │
│  + Decision   │  Service        │  Cloudflare D1       │
│    Engine     │  Binding        │  Ed25519 verification│
└───────────────┘                 │  Bayesian scoring    │
                                  └──────────────────────┘

信頼モデル:

  • ベイズベータ分布(事前分布は DID メソッドによって異なります)
  • 呼び出し元の多様性による重み付け(単一の呼び出し元による操作を防止します)
  • 共同署名係数(デュアル Ed25519:エージェント + 呼び出し元)
  • MAD 外れ値検出をアグリゲーターノード間で行う、BFT 対応のフェデレーション。現在の公開デプロイは単一のアグリゲーターノードです(API レスポンスには single aggregator と表示されます。クォーラムに関する表現は、実際のマルチノードデプロイでのみ使用されます)

インフラストラクチャ:

  • Cloudflare Workers(グローバルエッジ、レイテンシー <50ms)
  • レシート保存用の Cloudflare D1(エッジ上のSQLite)
  • Worker 間通信のための Service Bindings

オプションの台帳ベースのアイデンティティ

XAIP はブロックチェーンプロトコルでも決済手段でもありません。

現在のアイデンティティモデルは、did:key、did:web、did:xrpl などの台帳ベースの識別子を含む、複数の DID メソッドに対応しています。信頼スコアは署名済み実行レシートから算出され、トークン保有、支払い、チェーンへの所属に基づくものではありません。

以下のデフォルトの事前分布はデプロイ時のポリシーであり、信頼性に関する普遍的な主張ではありません:

DID メソッドデフォルトの事前分布用途
did:xrpl[5, 1]台帳ベースのエージェント(外部アンカー方式の一例)
did:web[2, 1]ドメイン検証済みサーバー
did:key[1, 1]匿名/新規エージェント

エージェントが外部アンカー付きのアイデンティティを必要とする場合、台帳ベースのアイデンティティが役立つことがあります。XAIP 自体は、いかなる台帳も必要としません。

データ

信頼スコアは、合成ベンチマークではなく、実際の実行データから算出されます:

  • 2026-06-12 時点で、スコアが付与された10個のMCP サーバー(context7、sequential-thinking、memory、filesystem、everything、fetch、sqlite、git、puppeteer、playwright)にわたる、約4,500件の署名済みレシート
  • GitHub Actions による毎日の自動データ収集
  • 新しい実行レシートが追加されるたびにスコアが更新されます。現在の値はライブダッシュボード/API をご覧ください
# See all scored servers
curl https://xaip-trust-api.kuma-github.workers.dev/v1/servers

対応環境

ランタイム/統合ステータス方法
MCP(Model Context Protocol)公開データセットを運用中(2026-06-12 時点で 10 サーバー、約 4,500 件の署名済みレシート)xaip-claude-hook、xaip-sdk、xaip-mcp-trust
LangChain.jsテスト済みプレビュー。実際のレシートも追加済みxaip-langchain コールバックハンドラー
OpenAI 互換のツール呼び出しループテスト済みプレビュー。実際のレシートも追加済みxaip-openai ラッパー
HTTP ツール/A2A/独自ランタイムレシートフローに対応xaip-sdk または署名済みレシートの直接発行

レシートスキーマは、意図的にツールシステムに依存しない設計になっています。agentDid、callerDid、taskHash、resultHash、success、latencyMs、failureType、timestamp を使用します。入出力をハッシュ化し、Ed25519 で署名できるエージェントフレームワークであれば、レシートを提供できます。

プロバイダーに依存しないレシートフローについては、あらゆる環境から XAIP レシートを発行するを参照してください。

ステータス

v0.4.0 は稼働中です。v0.5 のドラフトは開発中です(ツールクラス分類と観測/表示の仕組み)。

  • v0.5 のクラスメタデータの仕組みは、観測/表示向けに稼働中です。

  • クラスを考慮したスコアリングは設計ノートの段階であり、現在の信頼スコアや /v1/select の選択動作には使用されていません。

  • 信頼スコア API(Cloudflare Worker、稼働中)

  • 決定エンジン(POST /v1/select)

  • BFT 対応のフェデレーションをサポートするアグリゲーター(現在の公開環境は単一のアグリゲーターノード)

  • Ed25519 によるレシートの署名と検証

  • 呼び出し元の多様性を考慮したベイズ信頼モデル

  • 2026-07-12 時点で約 6,700 件の署名済みレシート(大部分はプロジェクト独自の日次コレクターが生成したものです。現在の課題は外部の呼び出し元の多様性です。詳しくは「データ」セクションを参照してください)

  • データ収集の自動化(日次、GitHub Actions)

  • 公開済みのプレビュー版レシートプロデューサー:xaip-langchain、xaip-openai

  • MCP サーバー:xaip-mcp-trust

  • npm:[email protected]

  • v0.5 仕様ドラフト(ツールクラス分類。クラスを考慮したスコアリングは設計ノートの段階のみ)

  • 複数の呼び出し元による多様性の仕組みを検証済み(2 つ以上の呼び出し元 ID。8 つのサーバーでメトリクスが反応)

  • v0.5 クラスメタデータの仕組み(観測/表示のみ。スコアリングや /v1/select には影響しません)

  • クラスを考慮したスコアリング(設計ノートの段階のみ。実際の動作には反映されていません)

  • インストール不要の呼び出し元経路:npx xaip-caller(初回の貢献は 30 秒で完了。MCP を超えた XAIP の活用例です)

  • 外部オペレーターの呼び出し元(仕組みは稼働中。外部での採用待ち。npx xaip-caller または完全ガイドを実行してください)

Internet-Draft

XAIP レシートのワイヤーフォーマットは、IETF Datatracker で個別の Internet-Draft として公開されています。

これは個別の Internet-Draft です。IETF 標準ではなく、IETF の承認を受けておらず、IETF 標準化プロセスにおける正式な位置づけもありません。ドラフトの対象範囲はレシートのワイヤーフォーマットのみです。スコアリング、集約、意思決定ロジックはデプロイ時のポリシーであり、ドラフト自体の対象範囲外です。

引用形式(作業中のため、再現性の観点から特定のリビジョンを引用してください):

xkumakichi, "Signed Execution Receipts for AI Agent Tool Calls (XAIP Receipts)", Work in Progress, Internet-Draft, draft-xkumakichi-xaip-receipts-03, 2 July 2026, https://datatracker.ietf.org/doc/draft-xkumakichi-xaip-receipts/.

BibTeX と BibXML のエクスポートは、上記の Datatracker ページから利用できます。

執筆記事

  • ポータブルな信頼 — AI エージェント向けの信頼インフラストラクチャがプロバイダーに依存せず、振る舞いに基づく必要がある理由(dev.to · Zenn 日本語版)
  • 支払いより先に証拠を — エージェント決済スタックは目前の取引を記述しますが、相手方の過去の実行を示すポータブルな証拠は十分に整備されていません。特定の実装に依存せず、この設計上の課題を定義します(記事)

関連項目

  • xaip-caller — インストール不要の CLI:npx xaip-caller で信頼グラフに貢献できます
  • xaip-mcp-trust — AI エージェントが信頼スコアを確認するための MCP サーバー
  • xaip-langchain — XAIP レシートを出力する LangChain.js コールバックハンドラー
  • xaip-openai — 署名付きレシートに対応した OpenAI ツール呼び出しラッパー
  • Veridict — XAIP のレシート優先設計の参考となった、初期のランタイム実行ログ記録の実験です。以前は npm パッケージとして公開されていましたが、独立した製品としては保守されていません。
  • XAIP Specification v0.4 — 現行のプロトコル仕様
  • XAIP Specification v0.5 RC — リリース候補(ツールクラス分類)

ライセンス

MIT

コメント

MCP は初めてですか?

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

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