@abelcaptain/cctp-mcp
v1.2.0
Published
MCP server for cross-chain USDC bridging via Circle CCTP V2. Supports 18 chains (17 EVM + Solana).
Downloads
393
Maintainers
Readme
@abelcaptain/cctp-mcp
MCP server for cross-chain USDC bridging via Circle CCTP V2. Works with Claude Code, Cursor, and any MCP-compatible host.
Supported Chains (18)
Ethereum, Avalanche, Optimism, Arbitrum, Solana, Base, Polygon, Unichain, Linea, Codex, Sonic, World Chain, Monad, Sei, XDC, HyperEVM, Ink, Plume
Quick Start (Zero Config)
No environment variables required. Public RPCs are built-in for all 18 chains.
Claude Code
claude mcp add cctp-bridge -- npx -y @abelcaptain/cctp-mcpCursor
Add to ~/.cursor/mcp.json (global) or <project>/.cursor/mcp.json (project-level):
{
"mcpServers": {
"cctp-bridge": {
"command": "npx",
"args": ["-y", "@abelcaptain/cctp-mcp"]
}
}
}Other MCP Hosts
Check your host's documentation for how to register an MCP server. The command is npx -y @abelcaptain/cctp-mcp.
Restart your host and try: "Check USDC balance for 0xYourAddress on Base"
This gives you all read-only tools — balance checks, bridge quotes, transfer status, attestation lookups, etc.
Optional: Enable Auto-Signing
To sign and broadcast transactions automatically, pass your private key(s) as environment variables.
Claude Code
claude mcp add cctp-bridge \
--env CCTP_PRIVATE_KEY=0xYourEvmPrivateKey \
-- npx -y @abelcaptain/cctp-mcpAdd Solana signing:
claude mcp add cctp-bridge \
--env CCTP_PRIVATE_KEY=0xYourEvmPrivateKey \
--env CCTP_SOLANA_PRIVATE_KEY=YourSolanaBase58Key \
-- npx -y @abelcaptain/cctp-mcpCursor
Add env to your ~/.cursor/mcp.json or <project>/.cursor/mcp.json:
{
"mcpServers": {
"cctp-bridge": {
"command": "npx",
"args": ["-y", "@abelcaptain/cctp-mcp"],
"env": {
"CCTP_PRIVATE_KEY": "0xYourEvmPrivateKey",
"CCTP_SOLANA_PRIVATE_KEY": "YourSolanaBase58Key"
}
}
}
}Or export them in your shell (~/.zshrc) and omit the env block entirely.
Optional: Better RPCs
Public fallback RPCs work but may be rate-limited. For production use, add an Alchemy key:
claude mcp add cctp-bridge \
--env CCTP_ALCHEMY_API_KEY=YourAlchemyApiKey \
-- npx -y @abelcaptain/cctp-mcpFree tier at dashboard.alchemy.com covers Ethereum, Polygon, Arbitrum, Optimism, Base, Solana, Linea, World Chain.
Environment Variables (All Optional)
| Variable | Description |
|----------|-------------|
| CCTP_PRIVATE_KEY | EVM private key (0x...) — enables auto-signing |
| CCTP_SOLANA_PRIVATE_KEY | Solana private key (base58 or JSON array) — enables auto-signing |
| CCTP_ALCHEMY_API_KEY | Alchemy API key for better RPC reliability |
| CCTP_SOLANA_RPC_URL | Custom Solana RPC for reliable broadcasting |
| CCTP_WALLET_ADDRESS | Default wallet address for read-only tools |
| CCTP_{CHAIN}_RPC_URL | Per-chain RPC override (e.g. CCTP_ETHEREUM_RPC_URL) |
Gotchas
- Do not put empty strings in
.mcp.jsonenvvalues — they override system variables. - This package does not load
.envfiles automatically.
Install AI Skill (Optional)
Gives Claude Code detailed guidance on bridge workflows and error recovery:
mkdir -p .claude/skills/bridge-usdc
npx -y @abelcaptain/cctp-mcp --print-skill > .claude/skills/bridge-usdc/SKILL.mdAvailable Tools (15)
| Tool | Description | Annotation |
|------|-------------|------------|
| check-config | Check wallet, signing, and RPC configuration | read-only |
| get-supported-chains | List all 18 supported chains | read-only |
| get-bridge-quote | Get fee quote and estimated time | read-only |
| check-usdc-balance | Check USDC balance on any chain | read-only |
| check-usdc-allowance | Check ERC20 approval status (EVM) | read-only |
| check-attestation | Check Circle attestation status | read-only |
| get-transfer-status | Full transfer status check | read-only |
| get-fast-transfer-allowance | Check Fast Transfer capacity | read-only |
| get-message-by-nonce | Recover transfer by message nonce | read-only |
| prepare-approve-tx | Build unsigned ERC20 approve transaction | read-only |
| prepare-burn-tx | Build unsigned burn/deposit transaction | read-only |
| prepare-claim-tx | Build unsigned claim transaction | read-only |
| sign-and-send-evm | Sign and broadcast EVM transaction | destructive |
| sign-and-send-solana | Sign and broadcast Solana transaction | destructive |
| reattest-message | Re-attest an expired Fast Transfer | write |
Security
- NEVER paste private keys in chat. Always use
--envflags or shell exports. - Private keys are only used locally for transaction signing and never transmitted beyond the target blockchain RPC.
- Use
check-configto verify your setup without exposing sensitive data.
License
MIT
