Foundry: prepaid AI compute in USDF
Server Details
Prepaid AI compute in USDF: models, quotes and chat with a receipt; pay per call (x402) or by key
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 10 tools
Most tools have clearly distinct purposes (search vs call the agents market, list_models vs list_tools, quote vs quote_tool). However, chat, agents_market_call, and x402_pay all involve paying a seller for a call, and their boundaries rely on dense descriptions rather than obvious naming, so a few could be confused at a glance.
Several names follow a verb_noun pattern (list_models, list_tools, agents_market_call, agents_market_search, x402_pay), but others are bare nouns (balance, chat, quote, receipt). The convention is mixed yet still readable and inferable.
Ten tools is well-scoped for a compute/payment gateway, with each tool earning its place across the discovery, quoting, calling, and receipt lifecycle.
The surface covers discovery (list_models, list_tools, agents_market_search), pricing (quote, quote_tool, balance), execution (chat, agents_market_call, x402_pay), and verification (receipt), which is a fairly full lifecycle. Minor gaps exist, such as no listing of a key's past receipts or a way to fund/top up a balance.
Available Tools
10 toolsagents_market_callCall a listingAInspect
Calls a listing of the agents market by its id (svc_..., from agents_market_search), paid from this key's USDF balance (never free credit) within the key's and its agent's limits and at most max_price: what one call costs and nothing on top; a call its seller does not answer 2xx costs nothing, or no more than what its seller kept of it. Every listing is called the same way, and answers 503 market_calls_unarmed while calls to the market are not switched on. Needs Authorization: Bearer sk_.... Returns the seller's answer and the receipt. The input goes to the seller, whose own policy governs what it keeps.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The listing's id (svc_...), from agents_market_search | |
| input | No | What the call sends: JSON for a POST listing, an object of plain values (its query) for a GET one | |
| max_price | Yes | The most this call may cost in USDF ("0.05"): required, as a seller may change its price; the listing's price is in agents_market_search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Far exceeds the annotations (readOnly=false, openWorld=true, idempotent=false): it discloses the billing source (USDF balance, never free credit), the cost cap semantics (at most max_price, nothing on top), that a non-2xx unanswered call costs nothing or only what the seller kept, the 503 market_calls_unarmed gating, and the required Bearer auth. This is exactly the behavioral context a paid, open-world call needs.
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?
Front-loads the action and keeps nearly every clause load-bearing (cost, error, auth, return). The first sentence is long and clause-dense, verging on run-on, which slightly hurts scannability.
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 output schema, the description still states the return value ('the seller's answer and the receipt') and covers auth, cost, and error paths. Limits handling ('within the key's and its agent's limits') is mentioned but its failure behavior is not spelled out, a minor gap for this 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 100%, so the baseline is 3, but the description adds meaning beyond the schema: input is forwarded to the seller whose own policy governs it, and id is explicitly tied to agents_market_search output. The max_price rationale (seller price changes) also deepens the required-parameter understanding.
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?
States a specific verb and resource ('Calls a listing of the agents market by its id') and pins the id's provenance to the agents_market_search sibling, so an agent can separate it from search/quote tools without opening a schema. The scope is unambiguous.
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?
It clearly signals the prerequisite (the svc_... id comes from agents_market_search) and why max_price is mandatory (a seller may change its price). It does not explicitly route to the quote/quote_tool siblings for pre-call pricing, so the when-to-use-vs-alternatives guidance is 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.
agents_market_searchSearch the agents marketARead-onlyInspect
Agents, APIs and tools priced per call, in one market, every listing in the same shape: its id (svc_...), name, description, tags, site and logo, how it is called (GET or POST), what one call costs in USDF from this key's balance, input and output examples, and the data policy. Ordered by popularity (default), price or newest. No key needed to search; agents_market_call calls one.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Words to find in the name, description, tags or host | |
| tag | No | Only listings with this tag | |
| sort | No | popular (default), price (cheapest first) or new | |
| limit | No | ||
| offset | No | ||
| max_price | No | The most a call may cost in USDF ("0.01") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered; the description adds genuine context: searches need no key, prices are quoted in USDF drawn from this key's balance, and results are sorted by popularity/price/newest. It omits pagination and rate-limit behavior, which keeps it at 4 rather than 5.
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?
The long opening clause front-loads the resource and its return shape, followed by two short sentences on ordering and the sibling alternative. The field enumeration is dense but earns its place since no output schema exists, though it is on the verbose side.
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 output schema, the description usefully enumerates the fields each listing returns (id, name, tags, cost, I/O examples, data policy) and the sort/default and no-key behaviors. It is missing pagination guidance for limit/offset, which is the main gap for a 6-parameter search tool.
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 67%, so the schema documents most parameters itself. The description restates the sort options and the id format but adds no meaning for q, tag, limit, offset or max_price beyond what the schema already provides, so the baseline 3 is warranted.
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 establishes the resource — a single market of agents, APIs and tools priced per call — and names the sibling (agents_market_call) that invokes one, so an agent can separate search from call. The verb 'search' is only implied from the name/title rather than stated, keeping it just short of 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?
It gives an explicit routing rule — 'No key needed to search; agents_market_call calls one' — which tells the agent when to search vs. invoke. It also notes the default ordering (popularity). It stops short of 5 because it never states when not to use search or how the other siblings (list_tools, list_models) differ.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
balanceBalanceARead-onlyInspect
The calling key's available balance, the account's balance and held amount, and the key's budget left, in USDF (Authorization: Bearer sk_...). With address instead, no key: that wallet's USDF and USDG on the chain now and its USDF allowance to Permit2, which x402 pays from.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | A wallet address (0x...): its USDF and USDG on the chain, with no key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description goes beyond that by disclosing the required auth header format (Authorization: Bearer sk_...), the fact that the address mode is unauthenticated, and the x402/Permit2 payment context that gives the returned allowance meaning.
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 default keyed behavior before the `address` alternative, with no redundant filler. It is dense — the parenthetical auth header interrupts the balance list — but every clause carries information.
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?
There is no output schema, so the description carries the return-value burden and does so by enumerating both modes' outputs (available balance, account balance, held amount, budget left, chain balances, allowance). For a single-optional-param read tool with annotations present, this is essentially 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 already 100%, so the baseline is 3, but the description adds real meaning: the `address` parameter switches to a keyless mode and changes both the semantics and the returned fields (on-chain USDF/USDG, Permit2 allowance) rather than just trimming the response.
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 names the specific resources returned: the calling key's available balance, the account balance and held amount, the key's budget remaining in USDF, plus a second mode returning a wallet's on-chain USDF/USDG and Permit2 allowance. That is precise enough to distinguish it from payment siblings like quote or x402_pay, though it never names a sibling explicitly.
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?
It gives a clear conditional for choosing the `address` mode over the keyed mode ('With `address` instead, no key'), which is useful mode-selection guidance. It does not explain when an agent should call balance at all versus siblings such as receipt, so overall usage guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chatChat completionAInspect
Runs a chat completion through the metered gateway and returns the text with its receipt (tokens, price, cost, balance, settlement). Needs Authorization: Bearer sk_... and spends from that key's balance; a hold for the maximum cost is placed first. Not streamed. Output is capped at 4096 tokens. A call without a progress token answers within 55 s of arriving. With a progress token, progress is sent every 15 s and the call may run 10 minutes, so the client must reset its timeout on progress (resetTimeoutOnProgress: true in the TypeScript SDK) or wait that long. At its deadline, or when the client's connection closes, a call is cut: the text produced so far is returned with finish_reason "length" and billed on the provider's usage report where the provider gives one, otherwise on an estimate never above max_tokens; for a model whose reasoning is not streamed, at the held output budget. Cancellation messages are not supported: a call the client stops waiting for without disconnecting runs to completion or its deadline and is billed. With no key, the call is paid with x402 in USDF (Permit2) or USDG (EIP-3009), as POST /x402/v1/chat/completions: without a payment it returns isError with the payment requirements (x402Version, resource, accepts) as structuredContent; sign one accept and call again with the payment in _meta["x402/payment"], the payment argument or the PAYMENT-SIGNATURE header. The quote is the call's maximum cost at the published price (prompt at one token per byte, output at max_tokens, capped as above, no minimum), paid up front; the call is charged what it uses at that price and the rest is refunded in the asset paid, the gateway paying the gas. A paid call runs to its end or its deadline whether or not the client waits and returns the receipt and _meta["x402/payment-response"]; at the deadline the text so far is returned with finish_reason "length" and a note, charged what it used and the rest refunded. A call no provider accepted before its deadline, or whose provider failed or ended with nothing, is refunded in full in the asset paid; so is one cut by the deadline after the provider accepted it, with nothing produced. A call with less than 20 s left before its deadline is refused before the payment is settled (deadline_too_close), nothing charged. MPP clients pay the same quote: the payment-required result also carries _meta["org.paymentauth/payment-required"] with evm charge challenges (USDG by EIP-3009 authorization, USDF by Permit2); call again with the credential in _meta["org.paymentauth/credential"], and the paid result carries _meta["org.paymentauth/receipt"].
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Model id from list_models | |
| payment | No | With no key: the x402 payment for this call's quote, as the PAYMENT-SIGNATURE value (base64 JSON) or the payload object; _meta["x402/payment"] and the PAYMENT-SIGNATURE header are read too | |
| messages | Yes | Chat messages in the OpenAI format: objects with a role (system, user, assistant or tool) and content (text, or an array of content parts) | |
| max_tokens | No | Output token budget, a positive integer; defaults to the model's default_max_output, capped at max_output | |
| temperature | No | Sampling temperature, 0 to 2 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations present, the bar is only that the description add behavior beyond them, and this one is exceptionally forthcoming: an up-front hold for maximum cost, non-streamed output, a 4096-token cap, the 55 s / 15 s / 10 min timing model, truncation to finish_reason 'length', refund and gas behavior, the 20 s deadline_too_close refusal, and that cancellation messages are unsupported and stopped-but-not-disconnected calls are still billed. The declared non-read-only, non-idempotent, open-world profile is consistent with this 'metered, spending, stateful' account.
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?
The first sentence is well front-loaded, but the body is a single dense paragraph mixing key-auth, x402, MPP, refunds and deadlines. It is not padded with fluff, yet the truncation-to-'length' rule is effectively restated for the x402 case, and the material would be far more usable as structured bullets. Size is defensible for the complexity but structure is poor.
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?
There is no output schema, so the description must cover returns, and it does: text plus a receipt with tokens, price, cost, balance and settlement, plus _meta x402/payment-response and org.paymentauth/receipt. For a tool involving metered payment, proofs and deadline-driven refunds, the failure modes an agent could hit are all covered.
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 100%, so a 3 is the baseline. The description exceeds it by explaining the payment parameter's mechanics beyond the schema text: sign one accept and resubmit via _meta["x402/payment"], the payment argument, or the PAYMENT-SIGNATURE header, and by tying max_tokens to the hold, the 4096 cap, and the output-price calculation.
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 opening sentence gives a specific verb and resource: 'Runs a chat completion through the metered gateway and returns the text with its receipt (tokens, price, cost, balance, settlement).' That is unambiguous and far better than a tautology. However, it never explicitly routes the agent relative to siblings like quote, receipt or x402_pay, so the differentiation is left implicit.
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 rich conditional usage: with a Bearer key it spends the key's balance, with no key it switches to the x402 flow, and it spells out the progress-token timeout semantics and the deadline/cancellation conditions. What is missing is guidance on when to call this tool versus the sibling quote/receipt/x402_pay tools, so context selection is 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.
list_modelsList modelsARead-onlyInspect
Models the gateway serves with their prices (USD per 1M tokens, the same figure in USDF), context window, output limits and whether a route is available right now. No key needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description still adds two useful facts beyond them: no API key is required, and the tool reports whether a route is available 'right now', implying live rather than cached state. It stops short of describing pagination or rate 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?
A single dense sentence that front-loads the resource and then lists the fields returned; every clause carries information. The parenthetical price explanation is slightly heavy but earns its place.
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 output schema, the description carries the burden of explaining return values, and it does so completely: pricing units, context window, output limits, and route availability. Nothing an agent needs to invoke or interpret the call is missing.
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 takes zero parameters, so the baseline is 4; the description instead spends its words on return-field semantics (USD per 1M tokens vs USDF), which is appropriate for a parameterless call.
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 gives a specific resource ('models the gateway serves') and enumerates the returned fields (prices in USD/USDF, context window, output limits, route availability), so the agent knows exactly what it gets. It does not, however, distinguish itself from the sibling list_tools, which an agent could easily confuse with this one.
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?
No when-to-use or when-not-to-use guidance is offered, and no alternative such as list_tools or quote is named. The only usage-adjacent fact is 'No key needed', which clarifies auth requirements but not selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_toolsList toolsARead-onlyInspect
Tools callable through POST /v1/tools/{id} on the same balance and key as chat, with their price (USDF base units: 1 unit = $0.000001; cost plus 5% at most) and each tool's input schema, ordered by title: every tool listed can be called now. q narrows the list to tools whose id, title or description has it; a page holds at most 200, the next named by page.next. No key needed.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Words a tool's id, title or description has | |
| cursor | No | page.next of the page before |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint and a closed-world hint; the description adds materially more: no authentication required, the pricing model (USDF base units, cost plus at most 5%), the page size ceiling of 200, and the page.next cursor mechanism. That is exactly the auth, cost, and pagination context an agent cannot get from the annotations.
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?
It is a single dense sentence-cluster, but front-loads the important facts (endpoint, pricing, callability) before q and pagination. Every clause carries information, though the semicolon-chained phrasing is packed tightly enough to slow parsing slightly.
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 output schema, the description must describe return values and it does: price, per-tool input schema, title ordering, and page.next for continuation. Auth, cost, and pagination are all covered, so nothing needed to call it correctly is missing.
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 100%, so q and cursor are already documented, establishing a baseline of 3. The description only marginally extends this by tying cursor to 'page.next' and clarifying that q matches id, title, or description; it adds no format or edge-case detail beyond the schema.
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 names a specific verb and resource ('Tools callable through POST /v1/tools/{id}') and elaborates the returned payload: price in USDF base units, each tool's input schema, and ordering by title. An agent can distinguish this catalogue lister from siblings like list_models, agents_market_search, or quote_tool without opening any schema.
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?
It gives real invocation context ('No key needed', 'every tool listed can be called now') and explains what q narrows, but never states when to choose this over agents_market_search or quote_tool, nor any exclusion. Usage is implied by the 'callable now' framing rather than stated as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quoteQuote a requestARead-onlyInspect
The hold the chat tool places before running a request, in USDF and USD (output capped at 4096 tokens). It is an estimate, not a ceiling: a completed request is billed the provider's reported usage, normally less. Pass prompt or messages. No key needed; a request for attested hardware (a :private model id or provider.private), and any request from a Private-tier key, is quoted on its attested routes, at the model's price.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Model id from list_models | |
| prompt | No | Prompt text, sent as one user message | |
| messages | No | Chat messages in the OpenAI format: objects with a role (system, user, assistant or tool) and content (text, or an array of content parts) | |
| provider | No | Routing asks as on the REST API, for example {"private": true} for attested hardware this gateway verified, at the model's price | |
| max_tokens | No | Output token budget, a positive integer; defaults to the model's default_max_output, capped at max_output |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=true/openWorldHint=false, yet the description adds substantial context: it is an estimate and not a billing ceiling, actual billing follows provider-reported usage and is normally less, no key is required, and attested/private routing is quoted at the model's price on verified routes. This is exactly the kind of cost/auth behavior an agent needs beyond the structured hints.
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 dense sentences with no filler; the pricing semantics are front-loaded. Slight deductions for the roundabout opening noun phrase and the repeated 'at the model's price' clause, which make it less scannable than it could be.
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 output schema, the description still conveys the return's essence (dual USDF/USD figures, 4096-token cap) and the pricing model. However, it does not describe the shape of the returned quote or how the two currencies relate, leaving a modest gap for a tool whose whole job is producing a structured price estimate.
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?
With 100% schema coverage the baseline is 3, but the description adds real meaning: 'Pass prompt or messages' clarifies the two mutually optional input paths, and the 'output capped at 4096 tokens' note relates to the token budget. The 4096 cap sits somewhat awkwardly next to the schema's max_tokens default/cap wording, creating mild ambiguity about which budget is meant.
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 defines the tool as 'the hold the chat tool places before running a request' and clarifies 'It is an estimate, not a ceiling', so an agent can infer this returns a pre-flight cost quote in USDF/USD for a chat request. It is distinguishable from siblings like chat, balance and receipt, though the purpose is expressed through a metaphor rather than a direct verb+resource statement.
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?
It states when this applies (before running a request, mirroring the chat flow) and gives input guidance ('Pass prompt or messages', 'No key needed'). It also names the conditions under which special routing pricing applies (attested hardware via ':private' or provider.private, Private-tier keys), but it never explicitly contrasts with an alternative tool or states when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_toolQuote a tool callARead-onlyInspect
The hold a call to a tool takes for this input before it runs (its worst case), in USDF base units and USD, with the tool's price. Checks the input as the call would; runs nothing and holds nothing. No key needed.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | Yes | Tool id from list_tools | |
| input | No | The input the call would send, as in the tool's input schema |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description adds genuinely new context by stating it performs no side effects ('runs nothing and holds nothing'), that the returned amount is a worst-case hold, and that 'No key needed' (no auth required). That is more than the annotations provide.
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 short sentences with no filler; the output content comes first and the no-side-effects/auth notes follow. The opening clause is syntactically tangled, but the piece is appropriately sized 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?
With no output schema, the description steps in to describe what is returned (worst-case hold in USDF base units and USD, plus the tool's price), and it resolves the auth and side-effect questions. It does not say what happens when the input fails validation, but nothing else an agent needs to call it is missing.
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 100% with only two parameters, so the schema already documents 'tool' (id from list_tools) and 'input'. The description adds only that the input is checked as the call would be, which is marginal beyond the schema, so baseline 3 applies.
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 makes clear this returns the hold/price a tool call would incur for a given input, in USDF base units and USD, with the tool's price. The garbled first sentence ('The hold a call to a tool takes for this input') is awkward to parse, but the resource and effect are unambiguous and it distinguishes itself from siblings that actually execute (agents_market_call, x402_pay) and from 'receipt'/'balance'.
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?
It implies pre-flight usage by noting it 'checks the input as the call would; runs nothing and holds nothing', which tells the agent to quote before executing. However it never explicitly names an alternative (e.g., use this before agents_market_call) or states when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
receiptReceiptARead-onlyInspect
The receipt for a request made with the calling key: usage, price sheet version, cost, and once settled the batch, its transaction and the rows behind the onchain digest (Authorization: Bearer sk_...). With no key, the public receipt of any request id, x402 ones included: its line in the usage log as fields, the payment, the settlement and the proof's URL (GET /x402/v1/receipts/{id}).
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | Yes | The id returned with the completion (also the x-request-id header) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds real value beyond that: it discloses the auth requirement (Authorization: Bearer sk_...), the two authorization modes, and the settlement-dependent nature of the response (transaction and rows appear once the batch is settled).
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?
Sized reasonably for the information it carries, but it is structured as one long run-on sentence with two parallel colon-lists, making it hard to parse. The keyed-vs-public distinction is buried rather than 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?
With no output schema present, the description usefully compensates by enumerating what the response contains (usage line, payment, settlement, proof URL) and covers both authenticated and public access. It is nearly complete for a one-parameter read tool, lacking only explicit routing to sibling tools.
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 100% and the single required parameter is already documented in the schema, so the baseline is 3. The description adds marginal meaning by tying the id to the endpoint template GET /x402/v1/receipts/{id} ('any request id'), but provides no extra format or sourcing detail.
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 names the specific resource (a request's receipt) and enumerates its contents (usage, price sheet version, cost, settlement, transaction, onchain digest), and it distinguishes two modes: keyed vs public receipt. It is clearly more than a restatement of the name, though it never uses a plain verb and leans on heavy jargon.
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?
It implies usage conditions - provide the calling key for your own request's receipt, or omit it to fetch the public receipt of any request id including x402 ones. That conditional is useful, but there is no explicit when-to-use-this-vs-alternatives guidance referencing siblings such as x402_pay or quote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x402_payPay an x402 URLAInspect
Calls a URL that asks for an x402 payment and pays it for you: the gateway pays the seller in USDC from its own float on Base or Solana and charges this key in USDF cost plus 5% at most, no minimum (the seller's amount and a fee of at most 5% of it; never free credit), within the key's and its agent's limits. Needs Authorization: Bearer sk_.... Returns the seller's answer with the payment and its receipt; a payment is charged only once the chain shows it, and one that never settles costs nothing. quote: true answers what it would cost and pays nothing. Third-party tools to call this way are listed under marketplace in list_tools (GET /v1/tools?source=marketplace).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The seller's URL (https) | |
| body | No | The request body: text, or JSON sent as application/json | |
| quote | No | Answer the price and pay nothing | |
| method | No | Default GET, or POST when a body is given | |
| headers | No | Headers for the seller (the payment headers are the gateway's) | |
| network | No | Pay on this network only | |
| max_price | No | The most to pay in USDF, the fee included ("0.05") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses the funding mechanism (gateway's USDC float on Base or Solana), the billing model (USDF cost plus at most 5%, no minimum, within key/agent limits), the auth requirement (Bearer sk_...), and the settlement risk model (charged only once the chain shows it; an unsettled payment is free). The readOnlyHint=false annotation is consistent with this spend operation.
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?
Front-loads the core action, then layers in payment, auth, and settlement details. It is information-dense and slightly rambling in its parenthetical asides, but nearly every clause carries distinct behavioral value.
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?
Despite having no output schema, it describes the return value (the seller's answer with the payment and its receipt), covers auth, fee exposure, network selection, and cancellation semantics. Nothing an agent needs to call this financial operation safely is missing.
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?
With 100% schema description coverage, the schema already documents all seven parameters, including quote and max_price. The description corroborates the fee ceiling and network options but adds little parameter meaning beyond what the schema states, so the baseline of 3 applies.
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?
States a specific verb and resource (calls a URL demanding an x402 payment and pays it), naming the capital source, networks, and billing currency. It is clearly separable from siblings like quote, quote_tool, and receipt, and even notes the intra-call escape hatch (quote: true pays nothing).
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?
Gives clear context for when to invoke it (a URL that asks for an x402 payment) and points at list_tools (?source=marketplace) to discover suitable third-party endpoints, plus the quote: true mode for price checks without paying. It stops short of explicitly saying when NOT to use it versus the standalone quote/quote_tool siblings.
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.
10 tool updates
- First observed
agents_market_call - First observed
agents_market_search - First observed
balance - First observed
chat - First observed
list_models - First observed
list_tools - First observed
quote - First observed
quote_tool - First observed
receipt - First observed
x402_pay
Related MCP Connectors
Pay-per-use IBM Granite AI via x402: chat, code, embeddings, forecasting. USDC on Base or Solana.
Pay-per-use AI and data tools via x402: image, video, music, voice, search, crypto. USDC.
Pay-per-call AI gateway: models, speech, web search, on-chain reads and NLP tools, via x402.
17-model LLM gateway + 350+ data/KYB/sanctions tools. Pay-per-call USDC via x402, no API key.
Related MCP Servers
AlicenseAqualityDmaintenancePre-trade DeFi intelligence for AI agents. 20 paid x402 endpoints, USDC on Base.2390 npm1MIT- AlicenseNot gradedqualityAmaintenanceCrypto-native LLM gateway with OpenAI-compatible API and per-token USDC payments on Solana via the x402 protocol.7,873 npmMIT

@bridgenode/mcpofficial
AlicenseAqualityCmaintenanceEnables AI agents to make pay-as-you-go AI inference requests through x402 with automatic Solana USDC payments, no API keys or registration, while enforcing configurable spending limits.3466 npm1MIT No Attribution- AlicenseNot gradedqualityCmaintenanceEnables AI agents to resolve tokens, get quotes, check for honeypots/rug pulls, build swaps, and retrieve receipts via x402 micropayments.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.