zcash-mcp について
zcash-mcp は、Zcash エージェント向けに ZAP1 レシートの作成・検証ツールを提供し、元のエージェントを信頼せずに第三者が証拠を確認できます。ウォレットの保管や取引署名ではなく、証明とチェーン情報を扱います。
主な機能
- 01型付き ZAP1 アテステーションの作成
- 02Merkle 証明とレシートの検証
- 03アンカー状態と履歴の照会
- 04Zcash メモペイロードのデコード
- 05レシートテンプレートと証明バンドルの生成
活用シーン
- 01検証可能なエージェント操作レシートの作成
- 02支払いやウォレット操作の証明パケット作成
- 03ライフサイクルとポリシー証明の監査
MCP 対応
MCP クライアントに、ZAP1 のアテステーション、証明、アンカー、メモデコード、公開チェーン情報のツールを提供します。ウォレット保管、残高スキャン、シールド取引の署名には対応しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
12掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| wallet_hash | string | はい | 照会するウォレットハッシュまたは Agent ID |
詳細
zcash-mcp
Zcash エージェント向けの ZAP1 レシート:サーバーを信頼せずにワークフローを検証できます。
ZAP1 は、Zcash ワークフロー向けの証明とアテステーションのレールです。Frontier Compute が、ZAP1 のリファレンス実装を保守しています。
ラッパーを使うと、サーバーを信頼する必要があります。ZAP1 を使えば、サーバーを信頼する必要はありません。
基本ルール:状態を観測し、主張の範囲を限定し、証拠をハッシュ化してレシートを発行し、後から検証します。
MCP は、AI エージェントが外部ツールを呼び出すための標準的な方法です。zcash-mcp は、Zcash ワークフローに関する検証可能なレシートを必要とするエージェント向けに、ZAP1 アテステーション層を公開します。ZAP1 アテステーションリーフの作成、アンカー状態の照会、証明レシートの検証ができます。
これは完全なウォレット MCP ではありません。残高のスキャン、秘密鍵の管理、シードの取り扱い、PCZT 署名、シールド済み送金の構築、lightwalletd または Zaino によるウォレット同期は、補完的なウォレット層の作業であり、このサーバーの対象範囲外です。
ZAP1 を選ぶ理由
ウォレット MCP は価値を移転できます。ZAP1 はその価値に関するワークフローを証明し、相手方は Frontier を信頼せずに証明を検証できます。
ツールサーバーが公開するのは、バックエンドが現時点で述べている内容です。ZAP1 が生成するレシートは、スキーマ、証明データ、Zcash アンカーを使って、別の当事者が後から検証できます。
ZAP1 は、Zcash エージェントワークフロー向けの証明レールです。
attest:型付きイベントリーフを作成します。anchor:リーフを Merkle ルートにコミットし、Zcash にアンカーします。prove:リーフのレシートパケットを返します。verify:別の当事者が、元のエージェントを信頼せずにレシートを確認できるようにします。
エージェントシステムに必要なのは、支払いやトランザクションの照会だけではありません。別のエージェント、ユーザー、監査担当者、サービスが後から検証できるレシートが必要です。
- どのイベントが主張されたか
- どのエージェントまたはワークフローが主張したか
- どの ZAP1 リーフに記録されているか
- どの Merkle ルートに含まれているか
- どの Zcash トランザクションがそのルートをアンカーしたか
- 元のエージェントを信頼せずに証明を検証する方法
このサーバーが担うのは、その領域です。あらゆるウォレット、署名者、カストディシステム、lightwalletd スタック、Zaino スタック、またはアプリケーション固有の支払いフローと併用できるレシート層を、Zcash エージェントに提供します。
カテゴリの境界、レシートモデル、統合パターン、レッドチームによる却下例については、ZAP1 Proof Rail をご覧ください。エージェントと統合が満たすべきレシートの契約については、ZAP1 Conformance をご覧ください。ウォレット操作の引き継ぎパターンについては、Wallet Receipt Integration をご覧ください。汎用的な外部操作のレシートリクエストについては、External Rail Receipts をご覧ください。また、公開、相手方、監査担当者、助成金、コンプライアンス、内部用の各パケット形式については、Receipt Disclosure Profiles をご覧ください。
能力の境界
zcash_capability_manifest ツールは、エージェント向けに機械可読なスコープマップを提供します。
- 対応範囲:ZAP1 レシート、ライフサイクル証明、証明の検証、アンカー状態、メモのデコード、公開チェーンコンテキスト
- 対象外:カストディ、シードの取り扱い、残高のスキャン、PCZT への署名、シールドされた支出の構築、ウォレットサーバーとの同期
- 構成ルール:レシートを作成、照会、検証するには、ウォレット層のアクションの前または後にこのサーバーを使用してください
適した用途:
- エージェントのアクションレシート
- 支払いおよび請求書の証明パケット
- ウォレットアクションのレシート
- 外部アクションのレシート
- オペレーターのライフサイクルイベント
- グラントの証明パケット
- コンプライアンス監査パケット
- ポリシーおよびレピュテーションの証明
- プライベートなワークフローにおける公開アンカーの検証
- 受信者がカストディではなく証明を必要とするエージェント間の引き継ぎ
適さない用途:
- 鍵の保管
- ウォレット残高のスキャン
- PCZT への署名
- シールドされた支出のブロードキャスト
- ウォレット SDK の代替
顧客向けフロー
製品に ZAP1 を組み込む際は、まず zcash_receipt_template を使用してください。必要なレシートの種類に応じて、顧客向けのワークフローが返されます。
agent_action:特定の入力ハッシュと出力ハッシュを伴う、エージェントが指定されたアクションを実行したことの証明payment_receipt:請求書または支払いのメタデータを ZAP1 リーフに関連付け、後からアンカールートへの包含を証明operator_lifecycle:デプロイ、アップグレード、インシデント、復旧、またはポリシーの状態を、検証可能なライフサイクルイベントとして記録policy_attestation:エージェント、サービス、またはワークフローのポリシー判断を、検証可能なイベントとして記録
想定されるフロー:
zcash_capability_manifestを呼び出し、証明の境界を確認します。- ユースケースに応じて
zcash_receipt_templateを呼び出します。 - ウォレットアクションの場合は、
zap1_wallet_receipt_requestを呼び出して、ウォレットの結果をハッシュのみのattest_event引数に変換します。 attest_eventを呼び出して、型付きの ZAP1 リーフを作成します。get_anchor_statusを呼び出して、リーフがアンカー済みか待機中かを確認します。verify_proofを呼び出して、ツリーへの包含を検証します。zap1_prove_receiptを呼び出して、引き継ぎ用の証明バンドルを取得します。
受け入れ確認項目:
- レシートにリーフハッシュがある
- 返された Merkle ルートのもとでリーフを検証できる
- v2 レシートでは、すべての兄弟ノードの位置とコミットされた
leaf_countが保持される - アンカーのファイナリティは、txid、高さ、ステータスメタデータだけでなく、別途検証されたルート開示アーティファクトに基づいている
- 他の検証者が、元のエージェントを信頼せずに検証を再実行できる
- 秘密鍵、シード、PCZT、ウォレットのスキャン状態がこのサーバーに送信されていない
レッドチームによる拒否事項:
- 支払い URI を支払いの証明として扱うこと
- アンカーされていないリーフを最終決済の証拠として扱うこと
- 見積もり、ルート、またはインテントのハッシュ自体を決済の証拠として扱うこと
- このサーバーに署名、残高のスキャン、シードの復旧、または鍵の保管を求めること
- カストディに関する主張を ZAP1 レシートの主張に混在させること
- ウォレットアクションとレシート検証の違いを曖昧にすること
ZAP1 が検証するのは ZAP1 レシートです。レシートが参照する外部のウォレット、ルート、支払い、ブリッジ、取引所、または決済システムを監査または保証するものではありません。
ツール
| ツール | 内容 |
|---|---|
zcash_capability_manifest | エージェント用の機械可読なスコープマップ:対象範囲、除外されるウォレット機能、構成ルール |
zcash_conformance_check | 凍結された v1 レシートパケットの形式のみを検証します。v1 では包含やアンカーの確認は証明できません |
zcash_receipt_template | エージェントのアクション、支払いレシート、オペレーターのライフサイクルイベント、ポリシー証明のための、顧客向けレシートワークフロー |
zap1_wallet_receipt_request | ウォレット層のアクション結果を、ハッシュのみの ZAP1 レシートリクエストフィールドに変換します |
zap1_attest_external_action | 制約された外部検証エビデンスを、サポート対象の ZAP1 AGENT_ACTION 書き込みコントラクトにマッピングし、期待される型付きリーフを事前計算します |
zap1_verify_external_receipt | 暗号学的な包含やアンカー確認を主張せずに、従来の v1 外部レシートの形式を検証します |
zap1_verify_receipt_v2 | 公式の proof-bundle-v2 と保持された AGENT_ACTION witness、または統合レシート v2 を検証します。アンカー確認は別途行います |
zap1_extract_proof_artifact | ZAP1 レシートからポータブルな証明アーティファクトを抽出します |
zap1_check_anchor_freshness_at_height | 指定された高さから深度の計算を行います。チェーン上での確認を主張することはありません |
zap1_verify_receipt_chain | 証明やアンカーの有効性を主張せずに、従来の v1 レシートシーケンスの形式を検証します |
zap1_compare_receipt_claims | 2 つの ZAP1 レシートを比較し、主張、エビデンス、イベント、アンカーの相違を確認します |
zap1_audit_event_log | 呼び出し元から指定されたイベントタイプのポリシーに基づいて、レシートシーケンスを再生します |
attest_event | 後でアンカー登録するための、型付き ZAP1 証明リーフを作成します |
verify_proof | ZAP1 Merkle 証明を検証します |
zap1_prove_receipt | リーフハッシュの完全な Merkle 証明バンドルを取得します |
get_anchor_history | txid とブロック高を含む、すべての ZAP1 Merkle ルートアンカー |
get_anchor_status | 現在の Merkle ツリーの状態:ルート、未アンカーのリーフ、推奨事項 |
get_stats | ZAP1 プロトコルの統計情報:リーフ、アンカー、タイプ |
get_events | タイプ、ウォレットハッシュ、リーフハッシュを含む、最近の ZAP1 証明イベント |
get_agent_status | ZAP1 エージェント ID の証明概要 |
zcash_identity_register | AGENT_REGISTER 証明を通じてエージェント ID を登録します |
zcash_reputation_score | エージェントのボンドデータとポリシー準拠状況を評判オブジェクトとして取得します |
decode_memo | Zcash メモのペイロードをデコードします:ZAP1 型付き、ZIP 302、テキスト、バイナリ |
zap1_create_receipt_invoice | 外部決済ワークフロー用の ZAP1 レシートメタデータを作成します |
zap1_watch_receipt_invoice | 支払い完了またはタイムアウトまで、レシートインボイスのステータスをポーリングします |
get_block_height | Zebra から現在のチェーン高を取得します |
lookup_transaction | txid によるトランザクションの生データ |
zap1_verify_evm | EVM コントラクトを通じて、オンチェーン上の ZAP1 Merkle 証明を検証します |
インストール
npx @frontiercompute/zcash-mcp
または、グローバルにインストールします:
npm install -g @frontiercompute/zcash-mcp
クイックスタート
以下を MCP 設定に追加します:
{
"mcpServers": {
"zcash": {
"command": "npx",
"args": ["@frontiercompute/zcash-mcp"]
}
}
}
クライアントを再起動して、現在の Zcash ブロック高を尋ねます。読み取り専用ツールに API キーは必要ありません。
書き込み操作用のトライアルキーを取得します:
curl -s -X POST https://api.frontiercompute.cash/trial-key
設定
環境変数:
| 変数 | デフォルト | 説明 |
|---|---|---|
ZEBRA_RPC_URL | http://127.0.0.1:8232 | Zebra ノードの JSON-RPC エンドポイント |
ZAP1_API_URL | https://api.frontiercompute.cash | ZAP1 証明 API |
ZAP1_API_KEY | none | 書き込み操作用の API キー |
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json に追加します:
{
"mcpServers": {
"zcash": {
"command": "npx",
"args": ["@frontiercompute/zcash-mcp"],
"env": {
"ZEBRA_RPC_URL": "http://127.0.0.1:8232",
"ZAP1_API_KEY": "your-key-here"
}
}
}
}
任意の MCP クライアント
サーバーは stdio を使用して JSON-RPC で通信します。MCP クライアントから zcash-mcp バイナリを指定します。
ソースからビルド
git clone https://github.com/Frontier-Compute/zcash-mcp.git
cd zcash-mcp
npm ci
npm run build
node dist/index.js
テスト
オフライン検証では、ビルド済みの stdio サーバーと、パッケージ化した npm tarball からのクリーンルームインストールを確認します。
npm run test:offline
ライブ検証では、実際の Zebra RPC と ZAP1 API にアクセスします。
ZEBRA_RPC_URL=http://127.0.0.1:8232 \
ZAP1_API_URL=http://127.0.0.1:3080 \
ZAP1_API_KEY=your-key-here \
npm run test:live
test:live は stdio 経由で MCP サーバーを動かし、基盤となる HTTP エンドポイントだけでなく、ライブのツールインターフェースをテストします。get_agent_status のチェックで特定のデプロイ済みエージェントを対象にする場合は、ZAP1_AGENT_ID を設定してください。
GitHub Actions でもこの分割を踏襲しています。
.github/workflows/offline-ci.ymlは、すべての push とプルリクエストで、決定論的なパッケージングと MCP ハンドシェイクのチェックを実行します。.github/workflows/live-e2e.ymlは、シークレットを使用するライブチェックをmain、スケジュール実行、および手動実行で行います。
依存関係
- チェーンのクエリには、稼働中の Zebra ノードが必要です
- アテステーション、証明、アンカー、イベント、レシートのツールには ZAP1 API が必要です
- メモのデコードは外部依存関係なしでローカルに動作します
関連パッケージ
| パッケージ | 機能 |
|---|---|
| @frontiercompute/zcash-ika | Ika 2PC-MPC による Zcash および Bitcoin の署名 |
| @frontiercompute/openclaw-zap1 | ZAP1 アテステーション用の OpenClaw スキル |
| @frontiercompute/zap1 | ZAP1 アテステーションのクライアント |
| @frontiercompute/silo-zap1 | ZAP1 による Silo エージェントのアテステーション |
リンク
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。