Skip to main content
Glama

Create off-ramp session (USDC → bank)

create_offramp_session

Convert the agent's USDC to fiat in the owner's OWN bank account. Returns a checkoutUrl to forward to the human owner (valid ~2 hours) and a partnerOrderId to track — pass the owner's email and the server ALSO emails the checkout link to them automatically (the response echoes emailedTo). Paid endpoint ($0.01 USDC via x402) — without payment this returns the 402 challenge; use the fiatdock-mcp npm package with AGENT_PRIVATE_KEY for automatic payment. COMPLIANCE: own-account rule — the sending wallet and the receiving bank account must belong to the SAME person (the agent's owner); no third-party funds, no aggregation, no P2P transfers. 18+; served worldwide via our licensed provider across ~160 countries — EUR bank transfer in the SEPA zone (incl. Portugal), card/Apple Pay/Google Pay elsewhere — excluding US persons, sanctioned countries and the UK (NOT the UK). Crypto is volatile; not investment advice.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
refNoOptional referral code (1-64 chars: letters, digits, _ or -)
emailNoOwner's account email. If provided, the checkout link is ALSO emailed to this address automatically (you still receive it in checkoutUrl); the response echoes emailedTo to confirm
networkNoUSDC network, default base
paymentNoBase64 of a single x402 v2 PaymentPayload (EIP-3009 transferWithAuthorization on Base USDC). OMIT it on the first call: the 402 you get back carries `howToPay.payloadTemplate` — the exact envelope to fill in — plus the price and the EIP-712 domain. Send it on the second call to complete the purchase; it is forwarded as the PAYMENT-SIGNATURE header, never as body data. Nothing is charged for the 402 itself, and a call that fails after payment settles nothing.
providerNoLicensed fiat provider. `mtpelerin` is the only provider on this server and the default — omit this field. It settles by SEPA bank transfer across the SEPA zone (incl. Portugal); its order status is not push-updated. Any other value returns 400 (no other provider is configured on this server).
customerIdNoStable agent/customer id
walletCodeNoOptional Mt Pelerin address lock, part 1: 4-digit code (1000-9999). Requires walletHash + walletAddress
walletHashNoOptional Mt Pelerin address lock, part 2: base64 signature of 'MtPelerin-<code>' by the agent's OWN wallet key (never shared with us). Requires walletCode
callbackUrlNoOptional public https URL stored for a future provider with status webhooks — the current provider sends none, so no push will arrive and no callback secret is issued. Poll get_order_status instead
cryptoAmountYesUSDC amount to sell
fiatCurrencyNoe.g. EUR, default EUR
walletAddressNoOptional SELL source wallet (0x…, EIP-55 checked) — pre-fills the widget; required with walletCode/walletHash

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNoNext-step instructions
providerNoLicensed fiat provider handling this session (e.g. mtpelerin)
emailedToNoPresent when an `email` was supplied and email is configured: the checkout link was also emailed to this address (best-effort)
checkoutUrlYesBranded checkout URL (valid ~2 hours) — forward to the human owner
customerKeyNoReturned ONCE on the first session with a new customerId — store securely
partnerOrderIdYesOrder id — track it with get_order_status
customerKeyNoteNoHow to use customerKey

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations, the description discloses payment requirements ($0.01 USDC via x402), the 402-challenge first-call behavior, link expiry (~2 hours), automatic emailing behavior, provider restrictions, and the lack of push status updates. This is rich, non-obvious behavioral context that annotations alone could not convey.

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

Conciseness4/5

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

The description is front-loaded with the core action and return values, followed by payment, compliance, and jurisdictional details. It is dense and long, but nearly every clause carries an operational constraint an agent needs. Some structuring with separators would improve scanability, but there is no filler.

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

Completeness5/5

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

For a complex, paid, compliance-sensitive tool with 12 parameters, this description covers the essential workflow, authentication/payment mechanism, return values, exclusions, provider behavior, and fallback polling guidance. Combined with the rich schema and output schema, an agent has everything needed to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaningful workflow context beyond the schema, especially the payment flow ('OMIT it on the first call... Send it on the second call') and the automatic email behavior for the owner's email. It does not enumerate every parameter, but the schema already provides detailed descriptions for each.

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: 'Convert the agent's USDC to fiat in the owner's OWN bank account.' It clearly defines the output (checkoutUrl, partnerOrderId) and the direction of the operation (USDC → fiat), which distinguishes it from the sibling create_onramp_session without requiring the agent to infer anything.

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

Usage Guidelines4/5

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

The description clearly states when to use this tool: when converting USDC to fiat for the owner's own bank account, with explicit compliance exclusions (no third-party funds, no P2P, not available for UK/US/sanctioned countries). It does not explicitly name create_onramp_session as the alternative for the reverse direction, but the title and 'off-ramp' naming make the boundary clear enough.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4/5.0
Disambiguation4/5

Most tools are clearly separated by resource and action, but a few intentional bundles create mild selection overlap: token_report duplicates the data from token_price + token_safety, and address_intel overlaps eth_balance/usdc_balance plus safety. The descriptions explain the trade-offs well, so this is a minor rather than severe issue.

Naming Consistency4/5

Data-query tools follow a solid subject_metric pattern (token_price, usdc_balance, tx_status), while state-changing tools use verb_object (create_onramp_session, call_service). The pattern is readable and mostly consistent, but not a single uniform verb_noun convention throughout, so it falls just short of perfect.

Tool Count4/5

18 tools is above the typical 3-15 well-scoped range, but the server genuinely spans Base chain primitives, token intelligence, fiat ramps, and a marketplace. Each tool has a purpose, and the count is reasonable rather than bloated.

Completeness4/5

Core workflows are covered end-to-end: quote -> create on/off-ramp session -> order status; token price/safety/metadata/report; marketplace search/get/call; chain/tx primitives. Minor gaps exist, such as no order cancellation, no list-all-services endpoint, and no supported-country/method endpoint despite those details living in descriptions.