ArcLeap MCP
Provides USDC cross-chain bridging via Circle CCTP V2, with tools for checking quotes, initiating burns, monitoring attestation status, and minting on destination chains. Supports Circle Developer-Controlled Wallets for signing.
Supports bridging native USDC between Ethereum and compatible EVM networks (Base, Arbitrum, OP Mainnet, Polygon PoS, Avalanche) via Circle CCTP, including testnets and Arc Testnet.
Supports bridging USDC to and from Polygon PoS as one of the CCTP-compatible destination networks.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ArcLeap MCPbridge 10 USDC from base to arbitrum with dryRun"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ArcLeap MCP — мост USDC для ИИ-агентов
MCP-сервер, который даёт агенту возможность переводить нативные USDC между сетями через Circle CCTP V2 (сжигание → аттестация Circle → выпуск). Без обёрнутых токенов и пулов ликвидности.
Сети: Ethereum, Base, Arbitrum, OP Mainnet, Polygon PoS, Avalanche — и их тестнеты плюс Arc Testnet.
Почему отдельный сервер, а не веб-интерфейс
У агента нет браузера и всплывающих окон кошелька, зато есть три специфические проблемы, которых нет у человека:
Перевод длится минуты. Аттестация Standard Transfer занимает от нескольких минут до ~20. Поэтому
bridge_startвозвращается сразу после сжигания, а выпуск делается отдельным вызовомbridge_status. Агент не висит в блокирующем вызове.Агент может упасть или потерять контекст. Состояние каждого перевода лежит на диске,
bridge_historyпоказывает незавершённые переводы, аbridge_statusдоводит их до конца в любой момент.Агент может зациклиться и повторить вызов. Отсюда обязательный
idempotencyKey: повторный запуск с тем же ключом вернёт уже созданный перевод, а не сожжёт средства второй раз.
Related MCP server: orbit-api
Установка
npm install
npm run buildНастройка подписанта
Поддерживаются два режима — ключи никогда не попадают в контекст агента.
Вариант A. Circle Developer-Controlled Wallets (рекомендуется для реальных средств). Подпись выполняется на стороне Circle, у агента нет ни ключа, ни seed-фразы, доступны политики и аудит Circle.
ARCLEAP_SIGNER=circle
CIRCLE_API_KEY=...
CIRCLE_ENTITY_SECRET=...
CIRCLE_WALLET_ID=...
CIRCLE_WALLET_ADDRESS=0x...
npm install @circle-fin/developer-controlled-walletsВариант B. Локальный приватный ключ. Просто и быстро, но ключ лежит на машине — только для горячего кошелька с небольшими суммами.
ARCLEAP_SIGNER=privateKey
ARCLEAP_PRIVATE_KEY=0x...Ограничители
ARCLEAP_MAX_PER_TRANSFER=100 # максимум USDC за один перевод (mainnet)
ARCLEAP_MAX_DAILY=500 # суточный лимит на кошелёк (mainnet)
ARCLEAP_STATE_DIR=~/.arcleap-mcpЛимиты применяются только к mainnet: в тестнете агент может экспериментировать свободно. Превышение возвращает ошибку до отправки любых транзакций.
Подключение к Claude
claude_desktop_config.json (или .mcp.json для Claude Code):
{
"mcpServers": {
"arcleap-bridge": {
"command": "node",
"args": ["/абсолютный/путь/arcleap-mcp/dist/index.js"],
"env": {
"ARCLEAP_SIGNER": "privateKey",
"ARCLEAP_PRIVATE_KEY": "0x...",
"ARCLEAP_MAX_PER_TRANSFER": "50",
"ARCLEAP_MAX_DAILY": "200"
}
}
}
}Инструменты
Инструмент | Назначение |
| Сети и их CCTP-домены |
| Проверка без транзакций: балансы USDC и газа, комиссия, лимиты |
| Approve + сжигание, возвращает |
| Проверяет аттестацию и выпускает USDC в целевой сети |
| Переводы и журнал аудита, список незавершённых |
| Адрес и тип подписанта, текущие лимиты |
Типичный сценарий агента
bridge_quote { from: "base", to: "arbitrum", amount: "10" }
bridge_start { from: "base", to: "arbitrum", amount: "10", idempotencyKey: "task-42" }
→ { id: "…", status: "burned", burnTx: "0x…" }
bridge_status { transferId: "…" } # повторять раз в минуту
→ { status: "minted", mintTx: "0x…" }Начинать стоит с dryRun: true — пройдут все проверки, но ни одна транзакция не будет отправлена.
Важное о газе
Выпуск (receiveMessage) выполняется в целевой сети и требует там нативного токена на газ. bridge_quote заранее предупредит, если у получателя пустой баланс — иначе средства окажутся сожжены и будут ждать выпуска.
Об Arc
CCTP-домен Arc (26) существует только в тестовой сети. В mainnet такого домена нет, поэтому маршрут в Arc доступен лишь для arc-testnet. Как только Circle запустит Arc mainnet и выделит домен, сеть добавляется одной строкой в src/chains.ts.
Available Tools
6 toolsbridge_historyИстория и аудитC
Список последних переводов и журнал операций. Полезно, чтобы понять, есть ли незавершённые переводы, которые нужно добить через bridge_status.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| includeAudit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose what operations the journal covers, how far back history extends, whether this is a read-only safe operation, whether audit includes sensitive info, or pagination limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, no wasted words. Efficiently compact though under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, 0% schema coverage, no output schema, and 2 unspecified parameters, the description is too thin. It hints at the transfer-completion use case but fails to document parameters or return/behavior details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters (limit, includeAudit). It does not. The text enumerates no parameter details at all, leaving the agent to guess their semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear purpose: lists recent transfers and operation journal. Sensibly oriented around the sibling tool bridge_status (for unfinished transfers), which helps distinguish it from the status tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (check for unfinished transfers), but no explicit when-to-use vs alternatives or when-not-to-use guidance. It mentions using bridge_status alongside, which gives some context, but lacks clear exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_list_chainsСписок сетейA
Возвращает поддерживаемые сети и их CCTP-домены. Используй ключи сетей (например base, arbitrum) в остальных инструментах.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Фильтр по среде. По умолчанию — все. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It's a read/list tool and the description conveys read intent ('Возвращает поддерживаемые сети'), but it doesn't disclose return format, default behavior when mode is omitted, or pagination. It does clarify the mode default ('По умолчанию — все') which adds some value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The first states the purpose, the second provides a practical usage tip. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple discovery tool with optional single parameter and 100% schema coverage, the description is reasonably complete. It could mention that mainnet is the operational default or clarify testnet applicability, but the network-key guidance meaningfully promotes correct usage across the sibling tool suite.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the mode parameter fully documented in the schema (enum with descriptions). The description adds marginal value by clarifying the default ('По умолчанию — все'), and its main instruction about using network keys relates to tool output, not parameters. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear purpose: returns supported networks and their CCTP domains. It adds a useful cross-tool guideline (use returned network keys like 'base', 'arbitrum' in other tools), which helps distinguish its discovery role from siblings like bridge_start or bridge_quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs when to use the output — to supply network keys to other bridge tools. However, it doesn't explicitly state when not to use it or name alternatives, though its discovery nature is implied against the operational siblings present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_quoteОценка переводаA
Проверяет маршрут без отправки транзакций: балансы USDC и газа, комиссию протокола, лимиты. Вызывай перед bridge_start.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Ключ целевой сети, например arbitrum | |
| from | Yes | Ключ исходной сети, например base | |
| amount | Yes | Сумма USDC, например 10.5 | |
| recipient | No | Адрес получателя. По умолчанию — адрес кошелька агента. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that no transactions are sent (read-only behavior), which is the key transparency point. However, it doesn't describe what happens on validation failure, rate limits, or what the response format looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with zero wasted words. The first sentence states purpose and what's checked; the second gives an actionable sequencing directive. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a straightforward quote/check tool with 4 simple parameters, all documented. The description covers the non-obvious aspects (no transaction sent, call order relative to bridge_start). No output schema exists, so some description of what's returned would help, but for a validation tool the current coverage is quite complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter has its own description. The description names the checked items (balances, commission, limits) but adds little param-specific meaning beyond the schema. Baseline 3 is appropriate since schema already documents all params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb ('Проверяет маршрут') and the resource scope (balances, commission, limits) without sending transactions. It distinguishes itself from bridge_start (which actually executes) by explicitly noting no transactions are sent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit usage directive: 'Вызывай перед bridge_start' (call before bridge_start), establishing clear sequencing context. It doesn't explicitly exclude sibling tools like bridge_status or bridge_wallet_info, but the sequencing guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_startНачать переводA
Выполняет approve и сжигание USDC в исходной сети и сразу возвращает transferId. Выпуск в целевой сети выполняется отдельно через bridge_status. ОБЯЗАТЕЛЬНО передавай idempotencyKey: при повторном вызове с тем же ключом перевод не будет продублирован. Для проверки без трат используй dryRun.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| amount | Yes | ||
| dryRun | No | true — только проверки, без транзакций | |
| recipient | No | ||
| idempotencyKey | No | Уникальный ключ операции — защита от двойного сжигания средств |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently states the mutation side-effects (approve + burn), the idempotency guarantee (duplicate protection with same key), the partial-pipeline nature (issuance is separate), and dryRun's no-transaction behavior. It doesn't describe return format details, but the core behavioral traits are well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: first states core function, second covers the critical idempotencyKey requirement, third mentions dryRun. Front-loaded with the action verb. Slightly dense but efficient — could arguably be trimmed but remains tight and purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a financially destructive operation (burning USDC) with 6 params and no output schema and no annotations. The description makes a solid effort: it covers the two-step pipeline, idempotency, and dryRun validation. It could add return-value expectations (transferId is mentioned) and clarify recipient semantics, but given the complexity and risk profile, it covers most essential operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (2 of 6 params documented: dryRun and idempotencyKey), while from/to/amount/recipient lack schema descriptions. The description adds meaning for idempotencyKey (duplicate-protection) and dryRun (no-transaction check) beyond the schema, but the from/to/amount/recipient params remain undocumented in both schema and description, leaving meaning gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource combination — 'performs approve and USDC burn in source network' — and clearly distinguishes from siblings by noting that issuance is done separately via bridge_status. It specifies the immediate return of transferId and the separate issuance flow, which effectively differentiates it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool vs bridge_status ('issuance in target network is done separately via bridge_status'), mandates idempotencyKey usage to prevent duplication, and recommends dryRun for cost-free validation. This gives clear when/when-not and alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_statusСтатус и завершение переводаA
Проверяет готовность аттестации Circle и, когда она готова, выпускает USDC в целевой сети. Вызывать повторно безопасно: выпуск произойдёт только один раз. Если аттестация ещё не готова — подожди минуту и вызови снова.
| Name | Required | Description | Default |
|---|---|---|---|
| autoMint | No | false — только проверить аттестацию, не выпускать | |
| transferId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure burden. It does well: states idempotency (repeat safe, mint only once), the conditional behavior (only mints when ready), and the retry instruction. These are genuinely useful behaviors beyond schema. Could add side effects but this is solid coverage for a non-destructive-ish tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. Every clause carries actionable meaning: what it does, the once-only guarantee, and the retry instruction. Front-loaded with the primary purpose. Ideal length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param tool with no output schema, this description is quite complete. It covers the operation flow, idempotency, and retry behavior. It doesn't show what return value indicates readiness vs completion, but with no output schema the description need not detail return formats. Minor gap: could clarify what to do with history/other bridging tools, but overall adequate for complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (transferId has no description; autoMint does have one). The description adds meaningful semantics: autoMint is implicitly explained by 'проверяет готовность... выпускает USDC' suggesting default behavior. The 'false — только проверить' schema text covers autoMint. The description augments transferId context (it identifies which transfer to bridge). Reasonably compensates for coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb ('Проверяет готовность аттестации' and 'выпускает USDC'), the resource (Circle attestation for USDC bridging), and the action's outcome. It distinguishes from siblings implicitly — bridge_start initiates, bridge_status checks/completes. However, it doesn't explicitly name a sibling alternative, so not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance: check attestation readiness, then mint USDC; if not ready, wait a minute and retry. This is clear operational context. However, it doesn't explicitly say when NOT to use this vs siblings (e.g., 'use bridge_start to initiate'). Clear context but no explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_wallet_infoКошелёк агентаA
Показывает адрес и тип подписанта, а также текущие лимиты. Ключи никогда не возвращаются.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose an important safety property ('keys are never returned'), which is valuable behavioral context. However, there's no mention of account prerequisites, whether chain selection is needed, fee details, or specificity about what 'current limits' means. For a no-annotation read tool, the disclosure is partial but the key privacy aspect is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence delivers the purpose and the key safety disclosure. Zero waste, front-loaded with the action and data types, ends with the important constraint about keys never being returned. Appropriately sized for a parameterless read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (no params, no output schema, read-only semantics) so the completeness bar is lower. The description covers what it shows and the critical privacy guarantee. Minor gaps exist around what 'current limits' specifically refers to and whether any setup is needed, but for a zero-parameter informational tool the coverage is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there's no parameter schema to compensate for. The description adds meaning about the data returned (address, signer type, current limits) without needing to document parameters. This receives the baseline 4 for tools with no parameters since the semantic burden is inherently lighter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool shows wallet address, signer type, and current limits. It names the verb 'shows' and the specific data types. However, it doesn't explicitly distinguish itself from sibling tools like bridge_start or bridge_status, though its function (wallet info) is distinct enough from the action-oriented siblings to be reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is an informational read tool for wallet details, but provides no explicit guidance on when to use it versus siblings. There are no exclusions or alternative tool recommendations. For a zero-parameter read-only tool like this, the context is fairly self-evident, but explicit guidance would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.1.0- First observed
bridge_history - First observed
bridge_list_chains - First observed
bridge_quote - First observed
bridge_start - First observed
bridge_status - First observed
bridge_wallet_info
TDQS
Scored across 6 tools
Each tool targets a distinct operation: bridge_start initiates a transfer, bridge_status completes it, bridge_history lists past transfers, bridge_wallet_info shows wallet details, bridge_list_chains lists supported networks, and bridge_quote checks routes. There's no overlap between these purposes, and the descriptions clearly explain the call flow and when each should be used.
All tools follow a consistent 'bridge_' prefix with a clear noun indicating the resource or action (start, status, history, wallet_info, list_chains, quote). The verb_noun pattern is uniform throughout, making the naming predictable even for agents unfamiliar with the server.
Six tools is well-scoped for a bridging service: coverage of start, completion, history, wallet info, chain list, and quote/preflight check. Each tool earns its place and none feel redundant or unnecessary for the domain.
The tool surface covers the full lifecycle of a cross-chain transfer: quoting/preflight, initiation, completion, and history/journal. Minor gaps exist, such as no explicit cancel/revert operation or gas management tool, but the core bridging workflow is fully covered with no dead ends.
Maintenance
Related MCP Connectors
MCP server for AI agents to discover campaigns by humans and donate USDC directly on Base.
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Non-custodial USDC yield vaults on Base mainnet with 9 MCP tools for AI agent treasury.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for Circle's Agent Stack. Create wallets, set spend policies, send USDC, and pay x402-priced endpoints — all from a tool call.623 npm1MIT

orbit-apiofficial
FlicenseNot gradedqualityDmaintenanceMCP server for cross-chain bridging, enabling AI agents to find routes, estimate costs, check risks, execute transfers, and track status across blockchains.-- AlicenseAqualityDmaintenanceAn MCP server for USDC payments on Base, enabling AI agents to check balances, send payments, generate payment requests, and view transaction history.41MIT
- AlicenseNot gradedqualityAmaintenanceNon-custodial BVCC Agent Wallet MCP server: let an AI agent check balances, send native/ERC-20, approve, and swap on Uniswap v3/v4 across Ethereum, BNB Chain, Arbitrum and Base, within on-chain enforced limits.96 npm2MIT