Skip to main content
Glama

Call a marketplace service

call_service

Invoke a listed FiatDock service. PAID listings go THROUGH the gateway (POST /s/:id) so the non-custodial payment is enforced — ONE x402 payment: the full price, straight to the seller's wallet (the gateway commission is currently waived). TO BUY: call once WITHOUT payment to get the 402 challenge and step-by-step instructions, sign it with your own wallet, then call again with the same id/args plus payment set to the base64 x402 payload — the gateway settles on-chain directly to the seller and returns their response. No wallet? npx fiatdock-mcp with AGENT_PRIVATE_KEY signs automatically. FREE / first-party listings are forwarded to their real MCP endpoint directly (no payment). Pass the service's expected request body as args.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesListing id (svc_…) to invoke, from search_services
argsNoJSON payload to send to the service (e.g. an MCP JSON-RPC request body) — shape is defined by that service
paymentNoBase64 x402 v2 PaymentPayload signed by YOUR wallet, satisfying every entry in the 402's `accepts`. Omit on the first call to receive the challenge; send it on the second call to complete the purchase. Sent to the gateway as the X-PAYMENT header — FiatDock never holds the funds.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYestrue when the underlying service returned a 2xx
resultNoThe service's response body — parsed JSON when it returned JSON, otherwise the raw text
statusYesHTTP status returned by the service (or the gateway)
serviceYesListing id that was invoked
routedThroughGatewayYestrue if PAID (settled via /s/:id — 100% to the seller (the gateway commission is currently waived)); false if FREE/first-party direct

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / routedThroughGateway / description
      Previous value: -"true if PAID (settled 99% seller / 1% FiatDock via /s/:id); false if FREE/first-party direct"New value: +"true if PAID (settled via /s/:id — 100% to the seller (the gateway commission is currently waived)); false if FREE/first-party direct"
  2. Changed1 schema field changed
    • addedInput schema / properties / payment
      Added value: +{
      +  "description": "Base64 x402 v2 PaymentPayload signed by YOUR wallet, satisfying every entry in the 402's `accepts`. Omit on the first call to receive the challenge; send it on the second call to complete the purchase. Sent to the gateway as the X-PAYMENT header — FiatDock never holds the funds.",
      +  "type": "string"
      +}
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

The description richly discloses behavior beyond the annotations: the non-custodial payment flow, the two-call 402 challenge protocol, on-chain settlement to the seller's wallet, the direct forwarding of free listings, and the wallet/signing requirement. There is no contradiction with the annotations, which only indicate non-read-only, open-world behavior.

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 dense and uses imperative framing with step-by-step guidance, which makes it efficient for an agent. It is longer than strictly necessary—phrases like 'the gateway commission is currently waived' are peripheral—but the structure is front-loaded with the core action and each sentence carries operational weight.

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?

Given the tool's complexity (two-phase payment, signing, gateway vs. direct forwarding), the description is complete: it covers auth, payment, argument passing, listing ID provenance, and the no-wallet automation path. The output schema covers return values, so nothing critical is missing.

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?

The input schema already provides 100% description coverage and detailed parameter docs, so the baseline is 3. The description adds value by weaving the parameters into the operational flow—explaining when `payment` must be omitted/present, how it maps to the X-PAYMENT header, and how `args` is the service-defined request body. This is a helpful amplification rather than mere repetition.

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: 'Invoke a listed FiatDock service.' It then clearly distinguishes paid vs. free/first-party execution paths, so an agent understands both the core action and the two modes of behavior.

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 gives explicit step-by-step instructions: call once without `payment` to receive the 402 challenge, then call again with `payment` to complete the purchase. It also clarifies that free/first-party listings are forwarded directly without payment, which is a clear usage condition. However, it never names sibling alternatives like `call_x402` or `search_services`, leaving some tool-selection nuance implied rather than stated.

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.