Skip to main content
Glama
quackai-org

@quackai/q402-mcp

Official
by quackai-org

q402_bridge_send

Bridge USDC across Ethereum, Avalanche, and Arbitrum via Chainlink CCIP, with sandbox preview and two-phase consent for live execution.

Instructions

Execute a Chainlink CCIP USDC bridge across the 3-chain triangle (eth/avax/arbitrum) on behalf of the user's server-managed Agentic Wallet (Mode C). Sandbox-by-default - returns a synthetic messageId unless sandbox: false is passed AND Q402_ENABLE_REAL_PAYMENTS=1 AND a live Multichain API key is configured. The server signs ccipSend with the Agent Wallet's encrypted PK, auto-funds source-chain gas from the user's Gas Tank, and debits both the auto- fund cost and the CCIP fee per the bridge's settled receipt. TWO-PHASE CONSENT - a LIVE bridge (sandbox: false) refuses to execute unless BOTH confirm: true AND a matching consentToken are set. Call it first WITHOUT consentToken to get a preview (src, dst, amount, fee token) plus a consentToken; show that to the user, get explicit approval, THEN re-call with sandbox: false, confirm: true, AND that consentToken. The token is re-derived from the bridge about to run, so the previewed bridge can't be swapped. Never fabricate a token. Recommended flow: q402_bridge_quote first → preview + confirm cost with the user → q402_bridge_send with sandbox: false, confirm: true, consentToken. Live mode needs a Multichain subscription; trial keys are rejected. If the bridge returns AGENT_WALLET_DELEGATED, clear the delegation first: server-managed Agent Wallets (Mode C / API key) use the Clear delegation button on the dashboard; local-key modes (Q402_PRIVATE_KEY set) can run q402_clear_delegation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dstYesDestination chain (MUST differ from src).
srcYesSource chain.
amountYesUSDC amount in raw 6-decimal units (e.g. '1000000' = 1 USDC). Integer string, > 0.
confirmNoMUST be true to fire a LIVE bridge (ignored in sandbox) - set only after the user explicitly approved this exact bridge in chat. Omit (or false) on a live call to preview without moving funds.
sandboxNoSandbox mode (default true). Set to false for a real on-chain bridge.
feeTokenNoFee token. Default: LINK (~10% cheaper).
walletIdNoAgentic Wallet ID (from q402_agentic_info). Optional - defaults to the owner's default Agent Wallet when omitted.
maxFeeRawNoOptional client-side fee cap in raw 18-dec wei.
consentTokenNoTwo-phase consent token. Leave unset on the first live call to get a preview + token; re-call with confirm:true AND this token after the user approves. Bound to (src, dst, amount, feeToken) - re-derived server-side-of-the-tool and refused on mismatch.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so richly. It discloses the sandbox default, conditions for live payments (Q402_ENABLE_REAL_PAYMENTS=1 and a live Multichain API key), the server signing process, auto-funding from the Gas Tank, debit behavior, two-phase consent mechanics, and the AGENT_WALLET_DELEGATED error resolution path.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence earns its place. It is front-loaded with the core purpose, then logically flows through sandbox behavior, signing/funding, consent flow, and error handling. The density is justified by the tool's complexity, and nothing feels redundant or promotional.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It covers the execution flow, prerequisites, consent, error handling, and sibling tool references. However, there is no output schema and the description only partially specifies return values: it mentions a synthetic messageId for sandbox and the preview payload, but what a live successful call returns (e.g., messageId, receipt, status) is not explicitly stated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 100% schema coverage, the description adds significant meaning beyond field names. It explains the consentToken lifecycle (preview → re-call with token), how confirm interlocks with sandbox, that sandbox defaults to true, that feeToken defaults to LINK, and that walletId comes from q402_agentic_info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Execute a Chainlink CCIP USDC bridge across the 3-chain triangle (eth/avax/arbitrum) on behalf of the user's server-managed Agentic Wallet (Mode C).' This clearly distinguishes it from sibling tools like payments or quotes, and the mention of Mode C adds precision.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an explicit recommended flow: 'q402_bridge_quote first → preview + confirm cost with the user → q402_bridge_send with sandbox: false, confirm: true, consentToken.' It also explains when to call without consentToken (preview) and when to re-call, and points to q402_clear_delegation for a specific error case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/quackai-org/q402-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server