Skip to main content
Glama

Get a free quote

get_quote
Read-onlyIdempotent

Free quote before paying: the exchange rate and exactly how much lands in the bank (or wallet) NET of every provider fee — that net figure is the number to decide on. Executable estimate, not a locked rate. side=SELL (USDC->fiat) or BUY (fiat->USDC).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sideNoSELL = USDC to fiat, BUY = fiat to USDCSELL
networkNoUSDC network, default base
fiatAmountNoFiat amount (for BUY)
cryptoAmountNoUSDC amount (required for SELL)
fiatCurrencyNoe.g. EUR, default EUR

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
asOfNoISO timestamp of the quote
noteNoCaveats — youReceive is net of provider fees; the x402 session fee is separate
rateYesExchange rate used (fiat per USDC)
sideYesQuote direction
sourceNoWhere the price came from (the provider's own conversion API)
networkNoUSDC network the quote assumes
youSendYesAmount the sender pays, e.g. '100 USDC'
youReceiveYesAmount received NET of all provider fees, e.g. '87.78 EUR' — this is the number to decide on
fiatCurrencyNoFiat currency of the quote
providerFixedFeeNoProvider-reported fixed fee component
providerNetworkFeeNoProvider-reported network delivery fee (0 on Base)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changed
    • addedOutput schema / properties / asOf
      Added value: +{
      +  "description": "ISO timestamp of the quote",
      +  "type": "string"
      +}
    • removedOutput schema / properties / feeBreakdown
      Removed value: -{
      -  "description": "Provider's itemised fee list",
      -  "items": {
      -    "additionalProperties": {},
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / fiatCurrency
      Added value: +{
      +  "description": "Fiat currency of the quote",
      +  "type": "string"
      +}
    • changedOutput schema / properties / note / description
      Previous value: -"Human-readable caveat (quotes are indicative)"New value: +"Caveats — youReceive is net of provider fees; the x402 session fee is separate"
    • removedOutput schema / properties / paymentMethod
      Removed value: -{
      -  "description": "Settlement method, e.g. sepa_bank_transfer",
      -  "type": "string"
      -}
    • addedOutput schema / properties / providerFixedFee
      Added value: +{
      +  "description": "Provider-reported fixed fee component",
      +  "type": "number"
      +}
    • addedOutput schema / properties / providerNetworkFee
      Added value: +{
      +  "description": "Provider-reported network delivery fee (0 on Base)",
      +  "type": "number"
      +}
    • addedOutput schema / properties / source
      Added value: +{
      +  "description": "Where the price came from (the provider's own conversion API)",
      +  "type": "string"
      +}
    • removedOutput schema / properties / totalFee
      Removed value: -{
      -  "description": "Total fees in fiat, all itemised (incl. the 1% service commission)",
      -  "type": "number"
      -}
    • changedOutput schema / properties / youReceive / description
      Previous value: -"Amount received after all fees, e.g. '44.6 EUR'"New value: +"Amount received NET of all provider fees, e.g. '87.78 EUR' — this is the number to decide on"
    • changedOutput schema / properties / youSend / description
      Previous value: -"Amount the sender pays, e.g. '50 USDC'"New value: +"Amount the sender pays, e.g. '100 USDC'"
    • changedOutput schema / required
      Previous value: -[
      -  "side",
      -  "rate",
      -  "youSend",
      -  "youReceive",
      -  "totalFee",
      -  "feeBreakdown"
      -]New value: +[
      +  "side",
      +  "rate",
      +  "youSend",
      +  "youReceive"
      +]
  2. Changed4 schema fields changed
    • addedInput schema / properties / fiatCurrency / description
      Added value: +"e.g. EUR, default EUR"
    • addedInput schema / properties / network / description
      Added value: +"USDC network, default base"
    • addedInput schema / properties / side / description
      Added value: +"SELL = USDC to fiat, BUY = fiat to USDC"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "feeBreakdown": {
      +      "description": "Provider's itemised fee list",
      +      "items": {
      +        "additionalProperties": {},
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "network": {
      +      "description": "USDC network the quote assumes",
      +      "type": "string"
      +    },
      +    "note": {
      +      "description": "Human-readable caveat (quotes are indicative)",
      +      "type": "string"
      +    },
      +    "paymentMethod": {
      +      "description": "Settlement method, e.g. sepa_bank_transfer",
      +      "type": "string"
      +    },
      +    "rate": {
      +      "description": "Exchange rate used (fiat per USDC)",
      +      "type": "number"
      +    },
      +    "side": {
      +      "description": "Quote direction",
      +      "enum": [
      +        "SELL",
      +        "BUY"
      +      ],
      +      "type": "string"
      +    },
      +    "totalFee": {
      +      "description": "Total fees in fiat, all itemised (incl. the 1% service commission)",
      +      "type": "number"
      +    },
      +    "youReceive": {
      +      "description": "Amount received after all fees, e.g. '44.6 EUR'",
      +      "type": "string"
      +    },
      +    "youSend": {
      +      "description": "Amount the sender pays, e.g. '50 USDC'",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "side",
      +    "rate",
      +    "youSend",
      +    "youReceive",
      +    "totalFee",
      +    "feeBreakdown"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.4/5.0
Behavior5/5

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

The description adds significant behavioral context beyond the annotations (readOnlyHint, idempotentHint, openWorldHint). It discloses that the quote is an 'executable estimate, not a locked rate' and explicitly states it provides the net amount after fees. This helps an agent understand the dynamic nature of the quote and that it is not a binding offer.

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 extremely concise: two sentences and a quick note about 'side'. It front-loads the core value proposition ('free quote before paying: exchange rate and net amount') and immediately addresses the estimate nature. Every sentence adds unique value, with no filler.

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?

Given the presence of an output schema (handling return values) and strong annotations, the description covers the key behavioral aspects: net-of-fees display, estimate disclaimer, and side direction. It does not explain conditional parameter requirements (e.g., cryptoAmount required for SELL), but the schema descriptions compensate. Slightly incomplete for a fully contextual description, but certainly adequate.

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

Parameters3/5

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

The input schema already covers all 5 parameters with descriptions, achieving 100% schema description coverage. The description redundantly explains the 'side' parameter (SELL/BUY) but does not add new information beyond the schema. Baseline score of 3 is appropriate given that the schema carries the burden.

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 clearly states the tool's purpose: providing a free quote with exchange rate and net amount after fees, distinguishing between SELL and BUY directions. It uses specific verbs ('get a free quote', 'executable estimate') and resource ('quote'), which differentiates it from sibling tools like 'create_offramp_session' or 'get_order_status'.

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 implies usage before paying ('free quote before paying') and clarifies it is an estimate ('not a locked rate'). However, it does not explicitly state when not to use this tool or suggest alternative sibling tools for other scenarios, such as creating a session. Still, the context is clear enough for an agent to infer primary usage.

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.