Skip to main content
Glama

Pre-flight: cheapest listed model for your needs (paid: 0.003 RLUSD / 0.003 USDC on Base / 0.003 RLUSD on Base via x402)

decide_cheapest_model
Read-only

Paid: 0.003 RLUSD per call via x402 on XRPL mainnet (xrpl:0), or 0.003 USDC on Base (eip155:8453). Pay per call, solves one question: Which listed models.dev prices meet these filters, lowest first? Raw lowest and next-vendor prices with reasons, exclusions, and status-page readings. Without payment this returns isError with the x402 PaymentRequired object (fresh invoiceId); retry with the signed payload in _meta["x402/payment"] or the payment_signature argument. Unpaid calls cost nothing.

Input Schema

NameRequiredDescriptionDefault
vendorNoComma list of allowed vendors
capabilityNoComma list, all required: reasoning, coding, vision-input, image-output, audio, free-tier, tools, structured-output
min_contextNoMinimum context length in tokens
include_freeNoAllow zero-price / :free entries (default false)
exclude_vendorNoComma list of vendors to skip
max_input_per_1mNoMax input price, USD per 1M tokens
max_job_cost_usdNoMax cost of 10k input + 1k output tokens, USD
max_output_per_1mNoMax output price, USD per 1M tokens
payment_signatureNoOptional. Base64 x402 PAYMENT-SIGNATURE value (signed RLUSD or USDC PaymentPayload) for hosts that cannot set _meta["x402/payment"]. Omit on the first call to receive the payment requirements.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the annotations, the description discloses the payment rails and prices, that an unpaid call returns isError with a fresh x402 PaymentRequired object and invoiceId, how to retry via _meta["x402/payment"] or payment_signature, and that unpaid calls cost nothing. The fresh-invoiceId-per-call behavior also explains concretely why the tool is not idempotent, which the annotations only assert as a flag.

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 prose is dense and mostly waste-free, with every sentence carrying information about pricing, scope, or the payment retry loop. The ordering is suboptimal, though: a full sentence on payment rails precedes the statement of what the tool actually answers, so the purpose is not front-loaded.

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?

There is no output schema, and the description compensates by describing the return shape (raw lowest and next-vendor prices, reasons, exclusions, status-page readings). For a nine-parameter filtered-ranking tool the remaining gap is small: it does not say how unset filters behave or how ties beyond 'next vendor' are broken.

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?

Schema description coverage is 100%, so every one of the nine parameters is already documented, including the comma-list format for vendor/capability and the units for the price ceilings. The description adds no further parameter meaning (no defaults beyond include_free, no interaction rules between filters), so the baseline 3 applies.

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

Purpose4/5

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

The description names a specific verb and resource implicitly but concretely: it answers "Which listed models.dev prices meet these filters, lowest first?" and returns raw lowest plus next-vendor prices with reasons and exclusions. That is enough to separate it from a bare list_models call, but it never names a sibling (list_models, get_price_index) as an alternative, so differentiation is by scope description rather than explicit contrast.

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?

Usage context is clear: it is a paid, per-call query over models.dev listings, and the description explains that an unpaid call is not an error condition to fix but the first step of the x402 handshake. It lacks any when-not guidance (e.g., when to use list_models or get_price_index instead), which keeps it below a 5.

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.

Resources