Skip to main content
Glama
vsima

canton-agent-mcp

by vsima

canton-agent-mcp

エージェントが尋ね、あなたが承認し、ハードウェアが署名します。

ci License: Apache-2.0

AIエージェントが人間のモバイルウォレットを通じてCanton Networkを利用できるようにするMCPサーバーです。エージェントはサインインと支払いを要求でき、すべての要求は人間のスマートフォンに承認シートとして届きます。署名されるものはデバイスキー(Secure EnclaveまたはAndroid StrongBox)によって署名され、エージェントが署名することはありません。

このサーバーは、WalletConnect上のCIP-0103 dAppクライアントです。キーも台帳トークンも保持しません。要求することしかできず、ウォレットの所有者はすべての要求を確認、承認、または拒否できます。

仕組み

  1. エージェントがcanton_connect_walletを呼び出すと、WalletConnectのペアリングQRが表示されます。

  2. 人間はウォレットのConnectタブからそれをスキャンし、スマートフォンで承認します。

  3. 以降、エージェントはサインイン(canton_sign_in)または支払い(canton_request_payment)を要求できます。各要求はスマートフォンに承認シートを表示します。ウォレットは参加者上でトランザクションを準備し、デバイス上で準備済みトランザクションハッシュを再検証し、ハードウェアで署名します。

  4. セッションはディスクに保存されるため、ウォレットは一度ペアリングすれば再利用されます。

相手側のリファレンスウォレットはcanton-mobile-app(iOSおよびAndroid、ネイティブのcanton-mobile-sdk上に構築)ですが、WalletConnectに対応したCIP-0103ウォレットであればどれでも動作します。

Related MCP server: Grip MCP

クイックスタート

Node 22.6以上(サーバーはTypeScriptを直接実行し、ビルドステップは不要)と、無料のWalletConnect CloudプロジェクトIDが必要です。

git clone https://github.com/vsima/canton-agent-mcp
cd canton-agent-mcp && npm install

Claude Codeに登録します:

claude mcp add canton-agent --env WC_PROJECT_ID=<your-project-id> \
  -- node <path-to>/canton-agent-mcp/src/main.ts

次に、エージェントにウォレットを接続して誰かに支払うよう依頼します。支払い要求は人間が決定するまでブロックされるため、MCPクライアントのツールタイムアウトが長い呼び出しを途中で切る場合は、それを引き上げてください(Claude CodeではMCP_TIMEOUT環境変数)。

ツール

ツール

説明

canton_connect_wallet

ペアリングを開始し、人間がスキャンするQRを返します

canton_wallet_status

ウォレットが接続されているか、どのネットワークに接続されているか

canton_accounts

ウォレットが許可したパーティと公開鍵

canton_sign_in

Cantonでのサインイン:パーティの署名済みで検証済みの証明

canton_request_payment

スマートフォンでの承認のためにToken Standard転送をプッシュします

canton_disconnect

セッションを終了します

設定

すべて環境変数で設定します:

変数

デフォルト

説明

WC_PROJECT_ID

必須

WalletConnect CloudプロジェクトID

WC_RELAY_URL

パブリックリレー

Relay WebSocket URL

CANTON_NETWORK_ID

canton:localnet

CAIP-2ネットワークID

AGENT_MCP_NAME

Canton Agent

ウォレットの承認シートに表示されます

AGENT_MCP_DOMAIN

canton-agent-mcp.local

サインインのチャレンジドメイン

AGENT_MCP_STORAGE

~/.canton-agent-mcp/wc-store

セッションストアディレクトリ

AGENT_MCP_REQUEST_EXPIRY

3600

プッシュされた要求が応答可能な秒数(300〜604800)

CANTON_LEDGER_URL / CANTON_REGISTRY_URL / CANTON_VALIDATOR_URL

Splice LocalNet

支払いコマンドが構築される場所

支払いはデフォルトでローカルのSplice LocalNetを使用します(SDKリポジトリのintegration/run-localnet.shで起動します)。

セキュリティモデル

  • サーバーは要求することしかできず、行動することはできません。キーも台帳トークンも署名もありません。

  • すべてのサインインと支払いには、スマートフォンでの明示的な承認が必要です。

  • ウォレットは、ハードウェアキーが署名する前に、デバイス上で準備済みトランザクションハッシュを再導出して検証するため、スマートフォンは表示した内容にのみ署名できます。

  • 要求には有効期限があります(デフォルトでは1時間)。リレーは要求を暗号化して保存します。

  • ウォレット側の支出ポリシー(エージェントごとの上限と許可リスト。署名前にウォレットが強制)は、ネイティブSDKの次のマイルストーンです。

開発

npm test        # typecheck + unit tests (no network)
npm run probe   # opens a real relay session and prints the pairing QR

独立したコミュニティ構築のオープンソースプロジェクトで、Apache-2.0ライセンスです。Digital Asset、Canton Foundation、Global Synchronizer Foundationとは提携しておらず、その承認も受けていません。

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Cryptographic proof of consent for AI agents. Sign before you act. Policy engine enforces spending caps, action whitelists, and escalation rules. Independently verifiable by anyone.
    10
    2
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to check balances and send transactions across multiple blockchains with automatic spending limit protection and policy enforcement.
    3
    MIT