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 탭에서 QR을 스캔하고 휴대폰에서 승인합니다.

  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

공용 릴레이

릴레이 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