{"_id":"@abelcaptain/cctp-mcp","_rev":"4-09540cbc650d3052dd263aa1b7bedd2a","name":"@abelcaptain/cctp-mcp","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@abelcaptain/cctp-mcp","version":"1.0.0","keywords":["mcp","cctp","usdc","cross-chain","bridge","circle","claude-code"],"license":"MIT","_id":"@abelcaptain/cctp-mcp@1.0.0","maintainers":[{"name":"abelcaptain","email":"adljon8023@gmail.com"}],"bin":{"cctp-bridge-mcp":"dist/index.js"},"dist":{"shasum":"79ffc6403a3f5908a7e4ba5e71466248e9c00f4b","tarball":"https://registry.npmjs.org/@abelcaptain/cctp-mcp/-/cctp-mcp-1.0.0.tgz","fileCount":52,"integrity":"sha512-+0Dbcq4WOs2CC9gq5xQJfZzHeIVrJS6chb0oLfkhHq7WCnZMLinKjTEYECW5TeTWUfdmamPwU/xRmdpVAhx1Yg==","signatures":[{"sig":"MEUCIQCUa4zBkYu/h0xX3XUILURzNPiH4KyKL9DJdbgHgKDxdQIgWHUKcoeJiwp+Xhi1cKIs03fyfyf4BURXS1tezlu89cI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121722},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"scripts":{"dev":"tsx src/index.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"abelcaptain","email":"adljon8023@gmail.com"},"_npmVersion":"10.9.3","description":"MCP server for cross-chain USDC bridging via Circle CCTP V2. Supports 18 chains (17 EVM + Solana).","directories":{},"_nodeVersion":"22.18.0","dependencies":{"zod":"^3.25.0","bs58":"^6.0.0","viem":"^2.43.0","@solana/web3.js":"^1.98.0","@solana/spl-token":"^0.4.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.5.0","@types/bs58":"^4.0.4","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cctp-mcp_1.0.0_1772789598180_0.09285404285633647","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@abelcaptain/cctp-mcp","version":"1.0.1","keywords":["mcp","cctp","usdc","cross-chain","bridge","circle","claude-code"],"license":"MIT","_id":"@abelcaptain/cctp-mcp@1.0.1","maintainers":[{"name":"abelcaptain","email":"adljon8023@gmail.com"}],"bin":{"cctp-bridge-mcp":"dist/index.js"},"dist":{"shasum":"63d6968b406ba9545ccfb400ecac842fd5ef3258","tarball":"https://registry.npmjs.org/@abelcaptain/cctp-mcp/-/cctp-mcp-1.0.1.tgz","fileCount":53,"integrity":"sha512-GKWyBbdaE8xZZXDRXgWRejCNVWKHIhPk0J15q5UucsrWsPPdPaNnoSu+mXErntYlJtooGjngHVTLyukrricZSQ==","signatures":[{"sig":"MEUCIQCCG/DtmDJ+ZB+zoAIYLEZK0rA5R2wIz+v18AAN+FkErwIgXT2jhqDxkYUrIC2V6XB9DF9uSVvEuY9D40Ka6Ux83as=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135323},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"scripts":{"dev":"tsx src/index.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"abelcaptain","email":"adljon8023@gmail.com"},"_npmVersion":"10.9.3","description":"MCP server for cross-chain USDC bridging via Circle CCTP V2. Supports 18 chains (17 EVM + Solana).","directories":{},"_nodeVersion":"22.18.0","dependencies":{"zod":"^3.25.0","bs58":"^6.0.0","viem":"^2.43.0","@solana/web3.js":"^1.98.0","@solana/spl-token":"^0.4.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.5.0","@types/bs58":"^4.0.4","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cctp-mcp_1.0.1_1772790334672_0.7690305617806161","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@abelcaptain/cctp-mcp","version":"1.1.0","keywords":["mcp","cctp","usdc","cross-chain","bridge","circle","claude-code"],"license":"MIT","_id":"@abelcaptain/cctp-mcp@1.1.0","maintainers":[{"name":"abelcaptain","email":"adljon8023@gmail.com"}],"bin":{"cctp-bridge-mcp":"dist/index.js"},"dist":{"shasum":"4b2baa9c78a3b9beae1a88e755f6e64014b77c92","tarball":"https://registry.npmjs.org/@abelcaptain/cctp-mcp/-/cctp-mcp-1.1.0.tgz","fileCount":54,"integrity":"sha512-tVfIQxrymwdy8tS7VgKdX8bkApvj1UVM1/JhbnV0IFptpF/o8ofglMwLHO8B+dkI59TDQhOHqQT1LHyPIruSTg==","signatures":[{"sig":"MEQCIEy9j6RqN7cxIKGYGekMlYvhNZYGI3MnBt3vrcAJU+TFAiADMonRNUTT4r0FsC5WMg/MaNePHgP6abBQ6MOMHd7x7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142538},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"scripts":{"dev":"tsx src/index.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"abelcaptain","email":"adljon8023@gmail.com"},"_npmVersion":"10.9.3","description":"MCP server for cross-chain USDC bridging via Circle CCTP V2. Supports 18 chains (17 EVM + Solana).","directories":{},"_nodeVersion":"22.18.0","dependencies":{"zod":"^3.25.0","bs58":"^6.0.0","viem":"^2.43.0","@solana/web3.js":"^1.98.0","@solana/spl-token":"^0.4.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.5.0","@types/bs58":"^4.0.4","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cctp-mcp_1.1.0_1772813585853_0.7117021421631233","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@abelcaptain/cctp-mcp","version":"1.2.0","description":"MCP server for cross-chain USDC bridging via Circle CCTP V2. Supports 18 chains (17 EVM + Solana).","type":"module","bin":{"cctp-bridge-mcp":"dist/index.js"},"main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsc","dev":"tsx src/index.ts","prepublishOnly":"npm run build"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.0","@solana/spl-token":"^0.4.0","@solana/web3.js":"^1.98.0","bs58":"^6.0.0","viem":"^2.43.0","zod":"^3.25.0"},"devDependencies":{"@types/bs58":"^4.0.4","@types/node":"^20.0.0","tsx":"^4.0.0","typescript":"^5.5.0"},"engines":{"node":">=20"},"keywords":["mcp","cctp","usdc","cross-chain","bridge","circle","claude-code"],"license":"MIT","_id":"@abelcaptain/cctp-mcp@1.2.0","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-ZWzUuZAncauqa/DQR51Tc1YMRtETvp8G6w4hhxcCI6t6ZLO8yoNvkxTcZzad4J79ZPQQSRZGNSDMpgOpQa4B8g==","shasum":"e80b106e22ecad767333d35932eb2dc0fda54dc9","tarball":"https://registry.npmjs.org/@abelcaptain/cctp-mcp/-/cctp-mcp-1.2.0.tgz","fileCount":54,"unpackedSize":149052,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBntj4wAdiEdZ9dX0HRQxjKtiEI3g5nnMgqU7KSOsxdAAiEAx/c4ZARmDUpb0XQ/+cE6oAd5WCyYCZQsfJmUtrDNgt4="}]},"_npmUser":{"name":"abelcaptain","email":"adljon8023@gmail.com"},"directories":{},"maintainers":[{"name":"abelcaptain","email":"adljon8023@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cctp-mcp_1.2.0_1773051696318_0.14283939612290908"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-06T09:33:18.077Z","modified":"2026-03-09T10:21:36.585Z","1.0.0":"2026-03-06T09:33:18.340Z","1.0.1":"2026-03-06T09:45:34.814Z","1.1.0":"2026-03-06T16:13:06.026Z","1.2.0":"2026-03-09T10:21:36.483Z"},"license":"MIT","keywords":["mcp","cctp","usdc","cross-chain","bridge","circle","claude-code"],"description":"MCP server for cross-chain USDC bridging via Circle CCTP V2. Supports 18 chains (17 EVM + Solana).","maintainers":[{"name":"abelcaptain","email":"adljon8023@gmail.com"}],"readme":"# @abelcaptain/cctp-mcp\n\nMCP server for cross-chain USDC bridging via [Circle CCTP V2](https://developers.circle.com/stablecoins/cctp-getting-started). Works with Claude Code, Cursor, and any MCP-compatible host.\n\n## Supported Chains (18)\n\nEthereum, Avalanche, Optimism, Arbitrum, **Solana**, Base, Polygon, Unichain, Linea, Codex, Sonic, World Chain, Monad, Sei, XDC, HyperEVM, Ink, Plume\n\n## Quick Start (Zero Config)\n\nNo environment variables required. Public RPCs are built-in for all 18 chains.\n\n### Claude Code\n\n```bash\nclaude mcp add cctp-bridge -- npx -y @abelcaptain/cctp-mcp\n```\n\n### Cursor\n\nAdd to `~/.cursor/mcp.json` (global) or `<project>/.cursor/mcp.json` (project-level):\n\n```json\n{\n  \"mcpServers\": {\n    \"cctp-bridge\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@abelcaptain/cctp-mcp\"]\n    }\n  }\n}\n```\n\n### Other MCP Hosts\n\nCheck your host's documentation for how to register an MCP server. The command is `npx -y @abelcaptain/cctp-mcp`.\n\n---\n\nRestart your host and try: **\"Check USDC balance for 0xYourAddress on Base\"**\n\nThis gives you all **read-only tools** — balance checks, bridge quotes, transfer status, attestation lookups, etc.\n\n## Optional: Enable Auto-Signing\n\nTo sign and broadcast transactions automatically, pass your private key(s) as environment variables.\n\n### Claude Code\n\n```bash\nclaude mcp add cctp-bridge \\\n  --env CCTP_PRIVATE_KEY=0xYourEvmPrivateKey \\\n  -- npx -y @abelcaptain/cctp-mcp\n```\n\nAdd Solana signing:\n\n```bash\nclaude mcp add cctp-bridge \\\n  --env CCTP_PRIVATE_KEY=0xYourEvmPrivateKey \\\n  --env CCTP_SOLANA_PRIVATE_KEY=YourSolanaBase58Key \\\n  -- npx -y @abelcaptain/cctp-mcp\n```\n\n### Cursor\n\nAdd `env` to your `~/.cursor/mcp.json` or `<project>/.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"cctp-bridge\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@abelcaptain/cctp-mcp\"],\n      \"env\": {\n        \"CCTP_PRIVATE_KEY\": \"0xYourEvmPrivateKey\",\n        \"CCTP_SOLANA_PRIVATE_KEY\": \"YourSolanaBase58Key\"\n      }\n    }\n  }\n}\n```\n\nOr export them in your shell (`~/.zshrc`) and omit the `env` block entirely.\n\n## Optional: Better RPCs\n\nPublic fallback RPCs work but may be rate-limited. For production use, add an Alchemy key:\n\n```bash\nclaude mcp add cctp-bridge \\\n  --env CCTP_ALCHEMY_API_KEY=YourAlchemyApiKey \\\n  -- npx -y @abelcaptain/cctp-mcp\n```\n\nFree tier at [dashboard.alchemy.com](https://dashboard.alchemy.com) covers Ethereum, Polygon, Arbitrum, Optimism, Base, Solana, Linea, World Chain.\n\n## Environment Variables (All Optional)\n\n| Variable | Description |\n|----------|-------------|\n| `CCTP_PRIVATE_KEY` | EVM private key (`0x...`) — enables auto-signing |\n| `CCTP_SOLANA_PRIVATE_KEY` | Solana private key (base58 or JSON array) — enables auto-signing |\n| `CCTP_ALCHEMY_API_KEY` | Alchemy API key for better RPC reliability |\n| `CCTP_SOLANA_RPC_URL` | Custom Solana RPC for reliable broadcasting |\n| `CCTP_WALLET_ADDRESS` | Default wallet address for read-only tools |\n| `CCTP_{CHAIN}_RPC_URL` | Per-chain RPC override (e.g. `CCTP_ETHEREUM_RPC_URL`) |\n\n### Gotchas\n\n- Do **not** put empty strings in `.mcp.json` `env` values — they override system variables.\n- This package does **not** load `.env` files automatically.\n\n## Install AI Skill (Optional)\n\nGives Claude Code detailed guidance on bridge workflows and error recovery:\n\n```bash\nmkdir -p .claude/skills/bridge-usdc\nnpx -y @abelcaptain/cctp-mcp --print-skill > .claude/skills/bridge-usdc/SKILL.md\n```\n\n## Available Tools (15)\n\n| Tool | Description | Annotation |\n|------|-------------|------------|\n| `check-config` | Check wallet, signing, and RPC configuration | read-only |\n| `get-supported-chains` | List all 18 supported chains | read-only |\n| `get-bridge-quote` | Get fee quote and estimated time | read-only |\n| `check-usdc-balance` | Check USDC balance on any chain | read-only |\n| `check-usdc-allowance` | Check ERC20 approval status (EVM) | read-only |\n| `check-attestation` | Check Circle attestation status | read-only |\n| `get-transfer-status` | Full transfer status check | read-only |\n| `get-fast-transfer-allowance` | Check Fast Transfer capacity | read-only |\n| `get-message-by-nonce` | Recover transfer by message nonce | read-only |\n| `prepare-approve-tx` | Build unsigned ERC20 approve transaction | read-only |\n| `prepare-burn-tx` | Build unsigned burn/deposit transaction | read-only |\n| `prepare-claim-tx` | Build unsigned claim transaction | read-only |\n| `sign-and-send-evm` | Sign and broadcast EVM transaction | destructive |\n| `sign-and-send-solana` | Sign and broadcast Solana transaction | destructive |\n| `reattest-message` | Re-attest an expired Fast Transfer | write |\n\n## Security\n\n- **NEVER** paste private keys in chat. Always use `--env` flags or shell exports.\n- Private keys are only used locally for transaction signing and never transmitted beyond the target blockchain RPC.\n- Use `check-config` to verify your setup without exposing sensitive data.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}