Skip to main content
Glama

Last Price

Server Details

Compute and verify prices from an agent, metered per call. Works keyless on a demo tenant.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 30 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 10 tools

Disambiguation4/5

Each tool has a distinct role in the pricing lifecycle: compute, verify, report outcome, get receipt, plus auth and discovery. The main overlap is the gateway pattern, where call_tool and search_tools partially duplicate what the directly-listed tools already do, and list_functions vs search_tools both perform listing operations, which could cause a minor misselection.

Naming Consistency4/5

Nine of ten tools follow a clean verb_noun snake_case pattern (compute_price, get_receipt, verify_price, report_outcome, register_agent, use_api_key, list_functions, search_tools, call_tool). The single deviation is pricing_conversation, a noun phrase that breaks the verb-first convention.

Tool Count5/5

Ten tools is well-scoped for a pricing service, and the set deliberately gates a much larger 300+ tool surface behind search_tools and call_tool rather than exposing everything. Each listed tool earns its place covering a distinct lifecycle stage.

Completeness4/5

The core lifecycle is well covered: compute, verify, report outcome, retrieve receipts, discovery, and two auth paths. There is a small gap around listing usage events and receipt formats, which are only reachable via the gateway or an external HTTP endpoint rather than a dedicated listed tool.

Available Tools

10 tools
call_toolA
Destructive
Inspect

Run any Last Price tool by name, including one this connection does not list. Find the name and its arguments with search_tools first. What it does, and whether it changes anything, is what that tool says.

NameRequiredDescriptionDefault
nameYesThe tool to run, e.g. "list_webhooks".
argumentsNoThe arguments for that tool, as its input schema from search_tools describes. Defaults to {}.

Output Schema

NameRequiredDescription
messageNo

TDQS

A4.4/5.0
Behavior4/5

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

With annotations already declaring destructiveHint=true and openWorldHint=true, the description adds useful context that behavior and side effects are determined by the invoked tool, not by call_tool itself. It also discloses that unlisted tools can be invoked, though it does not elaborate on auth, rate limits, or failure behavior.

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?

Three short sentences, front-loaded with the core action and then the required discovery workflow. Every sentence carries useful information without repetition.

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?

For a complex open-world meta-tool with rich annotations and an output schema, the description covers the key workflow and delegated behavior. It is mostly complete, though it could say more about invalid tool names or validation errors.

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 schema already documents name and arguments. The description adds meaningful nuance by saying the name may refer to a tool this connection does not list, which is not captured by the schema.

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 gives a specific verb and resource: it runs any Last Price tool by name, including tools not listed by the connection. It also clearly distinguishes this executor from discovery via search_tools.

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?

It explicitly tells the agent to use search_tools first to find the tool name and arguments, which is strong usage guidance. It does not state when not to use this tool or name other alternatives beyond search_tools.

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

compute_priceAInspect

Compute a price. Returns the price, the function that produced it, the metered cost and a trace of each stage. Send currency plus unit_cost (what the work costs you) or current_price. Missing inputs return an error naming them. For a competitor offer, put competitor_price, competitor_currency and competitive_action in metadata. To pay for this one call with x402, pass payment (call without it to read the price). A result with valid_until (RFC 3339) holds only until then.

NameRequiredDescriptionDefault
geoNoOptional geography hint, e.g. US.
payerNoOptional. Who pays, as distinct from who calls: an agent wallet, a person by card, or a company billed later.
intentNoOptional. The spending limit the buyer approved, e.g. a card network mandate. The result says whether the price fits it.
channelNoOptional. The sales channel, e.g. an agent marketplace. With a rate saved by set_channel_rates, the price covers the channel's cut.
paymentNoOptional. The signed x402 payment, base64, as sent in an X-PAYMENT or PAYMENT-SIGNATURE header; or, where the answer offers MPP tempo, the whole Payment-Authorization value ("Payment " and the credential). Omit it to read what the call costs and how to pay; nothing is charged until you send it.
routingNoOptional. Which functions may answer this call, by UUID from list_functions. If none qualifies, the call is refused before any charge.
currencyYesThree-letter ISO currency code, e.g. USD.
metadataNoOptional context. Competitive pricing: competitor_price, competitor_currency and competitive_action (match, or undercut with undercut_pct); confirm the products are comparable. Or market_query (the job in plain words) to look up market prices instead.
max_priceNoOptional maximum acceptable price.
min_priceNoOptional minimum acceptable price. A competitive offer needs this or a declared unit_cost and target_margin_pct.
unit_costNoWhat the work costs you. It lets lastprice/cost-plus price with no current_price, which is the usual case when pricing a task you are about to run. Routing picks a function that can use it; to require cost-plus, pass its UUID from list_functions as function_id.
buyer_typeNoOptional. Who the price is for: an AI agent or a person. Recorded with the quote only.
no_exploreNoIf true, give this price exactly as computed, without the small per-call variation a workspace may run so learned pricing can learn what buyers will pay (see get_price_exploration).
product_idNoOptional identifier of what is being priced.
buyer_agentNoOptional. The buying agent, e.g. chatgpt. A label recorded with the quote only.
function_idNoOptional explicit pricing function UUID to use.
product_typeNoOptional category. Defaults to "custom".
current_priceNoThe current or reference price. Optional: functions that price relative to an incumbent need it, but lastprice/cost-plus prices from unit_cost instead.
outcome_termsNoOptional, for a price charged per outcome: when the outcome counts as failed and what is owed then. The result echoes the terms normalised, with complete false until success_definition, resolve_by and on_timeout are all set.
idempotency_keyNoOptional. A new value (e.g. a UUID) for each call you mean to make; send the SAME value if you retry after a timeout or error you cannot interpret, and the call is computed and charged once. Ignored without a credential.
learned_routingNoOptional. With routing_preference cheapest, fastest, round_robin or weighted, let the router learn from your own calls which function serves you best (see get_learned_routing). Ignored with a function_id.
customer_segmentNoOptional segment, e.g. enterprise.
target_margin_pctNoMargin on price for cost-plus, not markup on cost: price = unit_cost / (1 - margin). Defaults to 30.
routing_preferenceNoHow to route across pricing functions. Defaults to "default".
include_explanationNoIf true, ask for an explanation and confidence with the price.
include_buyer_envelopeNoIf true, with metadata.category set, the result adds buyer_envelope: what buyers' spend limits allowed in that category (pooled over 5 or more buyers) and where this price sits. It never changes the price.

Output Schema

NameRequiredDescription
messageNo
currencyNo
confidenceNo
request_idNo
computed_priceNo

TDQS

A4/5.0
Behavior4/5

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

Beyond the annotations, it discloses that nothing is charged until payment is sent, that missing inputs return a named error, and that a result with valid_until is time-bounded. This adds real behavioral context for a non-read-only, open-world tool, though it doesn't discuss auth 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.

Conciseness4/5

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

It is front-loaded with purpose and return shape before moving to input modes, and each sentence addresses a distinct concern (inputs, competitor pricing, payment, validity). Slightly dense, but no filler given the tool's breadth.

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?

With an output schema handling return values and 100% param coverage, the description only needs to convey the operational modes, and it does: cost-plus vs relative pricing, competitive offers, payment flow, and quote expiry. Nothing essential to a correct call is missing.

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 the schema already documents all 26 parameters in depth. The description restates the core currency/unit_cost/current_price and metadata patterns but adds little semantics the schema doesn't already carry, making the baseline 3 appropriate.

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 opens with a specific verb+resource ('Compute a price') and immediately specifies the return shape: price, producing function, metered cost, and per-stage trace. It is clearly a computation tool, not a verification or receipt tool, though it never explicitly contrasts itself with siblings like verify_price or get_receipt.

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?

It gives concrete conditional guidance: send currency plus unit_cost or current_price, use metadata for competitor offers, omit payment to read the cost, and set no_explore to suppress per-call variation. It stops short of explicitly stating when to prefer a sibling tool over this one.

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

get_receiptA
Read-onlyIdempotent
Inspect

Get the receipt for one of your workspace's priced calls, by its usage event id (the id list_usage_events returns and report_outcome takes): what was priced, by which function and agent, when, the amount, how it was paid, and the outcome if one was reported. Receipts are made only when you ask, never sent for every call. For CSV or a printable page, call GET /api/receipts/{id} with format=csv or format=html. Needs a Last Price credential with price compute or billing read scope. Needs a claimed workspace: a sandbox key from self-registration is refused (403) until a person claims the workspace.

NameRequiredDescriptionDefault
usage_event_idYesThe priced call's usage event id, as list_usage_events returns it.

Output Schema

NameRequiredDescription
issuerNo
objectNo
messageNo
receiptNo
issued_atNo

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the read-only/idempotent annotations by disclosing required credential scopes (price compute or billing read), the 403 refusal for unclaimed sandbox keys, and the fact that receipts are materialized lazily rather than generated per call. These are the exact operational facts an agent needs before invoking it.

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?

Front-loaded with the core action and the id, then layers in laziness, export alternatives, and auth constraints. The enumerated receipt contents are slightly redundant given the output schema, but the overall density and ordering are efficient.

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?

With annotations, a full input schema, and an output schema already present, the description fills the remaining gaps: credential requirements, workspace-claim failure mode, lazy creation semantics, and the HTTP alternative for CSV/HTML. Nothing material is missing for a correct call.

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% for the single parameter, so the schema already defines usage_event_id. The description still adds meaning by tying that id to both list_usage_events and report_outcome, clarifying where to obtain a valid value.

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?

States a specific verb (Get) and resource (the receipt for a priced call), keys it to a usage event id, and enumerates what the receipt contains. It distinguishes itself from siblings by naming list_usage_events as the id source and report_outcome as another consumer of that id.

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?

Explains that receipts are created only on request, references the id-producing sibling, and points to GET /api/receipts/{id} when CSV or HTML is needed. It does not explicitly rule out alternatives like compute_price or verify_price, but the context for when to call it is clear.

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

list_functionsA
Read-onlyIdempotent
Inspect

List the pricing functions registered for the authenticated tenant.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
itemsNo
messageNo
functionsNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful scope by noting results are limited to the authenticated tenant, but does not mention ordering, pagination, or whether inactive functions are included. With annotations doing the heavy lifting, this is adequate but not rich.

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?

It is a single front-loaded sentence with no filler. Every phrase ("List", "pricing functions", "registered", "authenticated tenant") contributes to correct invocation.

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?

For a zero-parameter read-only listing tool with both annotations and an output schema, the description covers what is needed to call it correctly. It could optionally connect the output to siblings like call_tool, but that is not required for correct invocation.

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 tool takes zero parameters, so parameter semantics are inherently simple and the baseline is 4. The description correctly does not invent parameter details that do not exist.

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 states a specific verb ("List") and resource ("pricing functions") with a clear scope ("registered for the authenticated tenant"). An agent can distinguish this listing operation from siblings like compute_price, verify_price, and call_tool, which act on pricing functions rather than enumerate them.

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

Usage Guidelines3/5

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

The description implies the tool is for discovering available pricing functions, but it does not explicitly say when to use it versus alternatives such as search_tools or pricing_conversation. No exclusions or prerequisites are given, so usage must be inferred.

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

pricing_conversationAInspect

Ask Last Price what pricing inputs are missing. Start with request: {}, return its questions to the caller, then send continuation.request and answers. Prepare is free and does not compute. When ready, action compute uses the existing authenticated pricing API; configure a credential first. Never invent answers or treat a continuation as authorization.

NameRequiredDescriptionDefault
actionNoprepare (free) returns the questions still open; compute prices once nothing is missing.prepare
answersNoAnswers to the questions the last call asked, by field, e.g. {"currency":"USD","unit_cost":4}.
requestNoPartial REST PricingComputeRequest, including nested context, constraints, an explicit function selection and options. Reuse continuation.request on subsequent calls.

Output Schema

NameRequiredDescription
resultNo
statusNo
messageNo
questionsNo
assumptionsNo
explanationNo
continuationNo

TDQS

A3.7/5.0
Behavior4/5

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

Adds real value beyond the annotations: prepare is free and non-computing, compute hits an authenticated pricing API requiring a pre-configured credential, and there are safety rules ("never invent answers", "a continuation is not authorization"). This complements the readOnlyHint=false / idempotentHint=false flags rather than contradicting them.

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?

Four tight sentences, front-loaded with the prepare-first workflow before the compute path and the safety caveats. Minor deduction for introducing "continuation.request" as if already known, which makes the middle sentence require a second read.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the prepare→answers→compute loop is broadly covered. Gaps remain: no explanation of what a continuation object is, no error behavior, and no differentiation from the compute_price sibling in a set where overlap is likely.

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 goes further by explaining that request is a partial PricingComputeRequest to reuse via continuation.request and that answers are the responses to the questions the previous call returned. That workflow semantics is not derivable from the schema alone.

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 opening sentence gives a concrete verb and resource ("Ask Last Price what pricing inputs are missing") and the action split (prepare vs compute) is spelled out. It falls short of 5 because it never explicitly positions itself against siblings like compute_price or verify_price, so the agent must infer the boundary.

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

Usage Guidelines3/5

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

It does describe the intended call sequence (start with request: {}, return questions, then send continuation.request and answers) and the condition for compute ("when ready"). But it gives no guidance on when to pick this tool over compute_price or verify_price, and no guidance on failure/precondition handling beyond "configure a credential first."

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

register_agentAInspect

Sign up with no key and no human: creates a sandbox workspace of your own and returns its API key (shown once), its daily limits and a claim link a person can open to take the workspace into their account. Pass name (2 to 64 characters, such as your-system/role-name), and optionally contact_email and intended_use. On the hosted MCP server this session goes on using the new key, so the tools that need a credential work at once with no header to add; elsewhere send the returned key as the x-api-key header. Public: needs no credential.

NameRequiredDescriptionDefault
nameYesWhat to call this agent, such as your-system/role-name: letters, digits, spaces and . _ : @ / + -
intended_useNoWhat the agent will price, in a sentence.
contact_emailNoWhere a person can reach whoever runs this agent. Never used to send mail until a person claims the workspace.

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false), the description discloses that the API key is shown once, that a claim link is returned, that daily limits are provided, and how credential propagation differs on hosted vs external MCP. These are important behavioral details for a setup/authentication tool.

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 and dense, covering creation, output, credential behavior, and parameters in a few sentences. It has some redundancy, e.g. 'no key and no human' is repeated at the end as 'needs no credential', and the name constraints duplicate the schema.

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 registration tool with no output schema, the description is complete: it explains what is created, what values are returned, how the credential is used afterward, and the parameter expectations. Nothing essential for invoking it correctly is missing.

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 coverage is 100%, so all three parameters are already documented in the input schema. The description repeats the name length/character constraints and notes that contact_email and intended_use are optional, but adds little meaning beyond the schema.

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 states a specific verb and resource: 'creates a sandbox workspace of your own and returns its API key'. It distinguishes this from credential-requiring siblings by saying it needs 'no key and no human', and names the concrete outputs (key, daily limits, claim link).

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?

It explains that the tool is public and needs no credential, and that on the hosted MCP server the session continues using the new key while elsewhere the key must be sent as x-api-key. That is clear context, but it never explicitly says when to prefer this over a credential-bearing flow such as use_api_key.

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

report_outcomeAInspect

Report whether a price from compute_price was used: once the buyer has accepted or turned down a price, report it. Pass receipt.id from that result as usage_event_id, or omit it to report the last price compute_price returned on this connection or tools instance, once (the hosted MCP endpoint remembers nothing, so pass it there). Outcomes are what later routing and confidence learn from. With outcome pricing on, a rejection within the call's outcome window gives back part of what it cost; the result says what was refunded. Needs a Last Price credential. Report only what actually happened. Needs a claimed workspace: a sandbox key from self-registration is refused (403) until a person claims the workspace.

NameRequiredDescriptionDefault
outcomeYesWhether the price was used.
evidence_urlNoOptional evidence: an https link to the record.
evidence_noteNoOptional evidence: a short note on why.
quality_scoreNoOptional: how good the price was, 0 to 1.
usage_event_idNoThe usage event of the priced call: receipt.id on the compute_price result. Pass it whenever you priced more than one thing. Omitted, the last compute_price result on this connection is reported, once.
evidence_referenceNoOptional evidence: an order, ticket or invoice id in your own system.

Output Schema

NameRequiredDescription
eventNo
messageNo
quote_expiredNo
outcome_windowNo
quote_expired_seconds_agoNo

TDQS

A4.4/5.0
Behavior5/5

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

Adds context the annotations cannot carry: a Last Price credential is required, a self-registered sandbox key is refused with 403 until the workspace is claimed, the hosted MCP endpoint is stateless so the id must be passed there, and rejections inside the outcome window trigger a partial refund. The one-shot 'report once' semantics also qualify the idempotentHint=false annotation.

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?

Front-loads the action and its trigger, then stacks the credential, statelessness, refund and workspace requirements in short declarative sentences. Dense but every sentence carries an operational constraint.

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?

An output schema exists, so return values need no explanation, yet the description still flags that the result reports any refund. Auth, workspace claim, statelessness and the accept/reject trigger are all covered for a non-read-only, non-idempotent write tool.

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 earns above that by explaining where usage_event_id comes from ('receipt.id on the compute_price result') and what omission means ('the last price compute_price returned on this connection'). The optional evidence and quality_score parameters are left to the schema.

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?

States a specific verb and resource ('Report whether a price from compute_price was used') and ties the event directly to the compute_price result. It never mentions verify_price or get_receipt, so the boundary against those siblings is only implicit.

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?

Gives a clear triggering condition ('once the buyer has accepted or turned down a price, report it') and a constraint ('Report only what actually happened'), plus when to pass vs omit usage_event_id. It stops short of naming alternatives such as verify_price or what to do if no price was ever computed.

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

search_toolsA
Read-onlyIdempotent
Inspect

Find the Last Price tool for a task. This connection lists only the tools that reach a price; the server has over 300 more (pricing functions, routing, experiments, webhooks, billing, orders, the marketplace and more). Pass query, a few words for the job, and get back the best matching tools with their full input schemas. Then call one with call_tool, or by its name. With no query it lists every tool name.

NameRequiredDescriptionDefault
limitNoHow many tools to return. Defaults to 5.
queryNoWhat you want to do, in a few words, e.g. "create a webhook" or "experiment results".

Output Schema

NameRequiredDescription
hintNo
queryNo
toolsNo
messageNo

TDQS

A4.1/5.0
Behavior4/5

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

Beyond the readOnly/idempotent annotations, the description discloses non-obvious behavior: the search is scoped to a subset of a 300+ tool server, matches are returned with full input schemas, and an empty query degrades to a full name listing. It does not mention ranking behavior, result ordering, or any rate limits, but for a read-only lookup the important behavioral traits are surfaced.

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?

Three sentences, front-loaded with the purpose, then scope, then the call pattern – no filler. The parenthetical list of the 300+ hidden tool categories is somewhat long but earns its place by telling the agent how much is behind this gateway.

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?

With an output schema present, the description needn't describe return values, and it still covers what an agent must know: what the search covers, how to phrase the query, what comes back (full input schemas), and how to act on results via call_tool. Nothing needed to invoke it correctly 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?

Schema coverage is 100%, so both fields are already documented, making 3 the baseline. The description adds real semantic value for `query` by framing it as 'a few words for the job' and by explaining the no-query case, which is a behavioral branch the schema does not convey. `limit` is left entirely to the schema, which is acceptable given its self-explanatory description.

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 states a specific verb and resource ('Find the ... tool for a task', 'get back the best matching tools with their full input schemas') and distinguishes itself from the sibling call_tool, which it explicitly names as the follow-up step. The scope note ('lists only the tools that reach a price; the server has over 300 more') makes the search domain concrete, though the phrase 'Last Price tool' is product jargon that takes a beat to parse.

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?

It gives clear sequencing: pass a short query to get matches, then invoke one via call_tool or by name, and with no query it returns every tool name. That covers the main use pattern and names the alternative tool. It stops short of saying when *not* to use it (e.g., when the tool name is already known), which keeps it from a 5.

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

use_api_keyA
Idempotent
Inspect

Use a Last Price API key you already hold (a saved file, LASTPRICE_API_KEY) in this MCP connection, when it was opened without one: pass api_key. On the hosted MCP server this session then runs as that key's agent, so the tools that need a credential work at once with no header to add; it lasts until the session ends or the key is revoked or rotated. The key is checked, never echoed back. A connection that already has a credential keeps it. Public: needs no other credential.

NameRequiredDescriptionDefault
api_keyYesYour Last Price API key: lp_ and 40 lowercase hex characters.

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses that the key becomes the session's identity, that the effect is session-scoped and ends on session end/revocation/rotation, that the key is validated but never echoed, and that existing credentials take precedence. That is exactly the lifecycle and side-effect information an agent needs for a stateful auth operation with destructiveHint=false but readOnlyHint=false.

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?

Compact and front-loaded — the precondition and the action come first, then consequences, then the security note. The first sentence is an awkward colon-spliced run-on, but no sentence is 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?

For a single required parameter with full schema coverage and no output schema, the description covers scope, duration, and credential precedence, which is what an agent needs to decide and act. It does not say what happens on an invalid or revoked key at call time, a minor gap given the schema pattern already screens format.

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% and already specifies the lp_ + 40-hex pattern, so the baseline is 3. The description adds real value by telling the agent where the value comes from (a saved file or LASTPRICE_API_KEY env var the caller already holds), which the schema does not say.

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?

States a specific action — authenticating the current MCP session with a Last Price API key the caller already holds — and names the concrete condition (connection was opened without one). No sibling tool in the list does anything comparable, so there is no ambiguity to resolve.

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

Usage Guidelines5/5

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

Gives both the trigger (session opened without a credential) and the exclusion (a connection that already has a credential keeps it, so this call is unnecessary). It also notes the endpoint is public and needs no other credential, removing a common precondition question.

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

verify_priceAInspect

Ask whether a price makes sense for its context, rather than what the price should be. Returns a verdict (fair, too_high, too_low, or unknown), the band it was judged against, a signed deviation from the reference, a confidence, and the evidence behind it. A verdict of "unknown" means the price could not be judged, which is not the same as fair. Pass quote_valid_until from the compute_price result the price came from, and where quote expiry is switched on the answer says quote_expired when that quote is stale. Where paid verdicts are switched on, a caller with no key can pay for one verdict with x402: pass payment, a signed payment for the price and terms listed under payments.x402.verify_price in /.well-known/agents.json; a verdict of unknown is not charged. Where buyers' spend limits are switched on and metadata.category names a category, the evidence includes buyer_budget: what buyers' own spend checks allowed for it (buyer_envelope), reported and never counted in the verdict.

NameRequiredDescriptionDefault
geoNoOptional geography hint, e.g. US.
channelNoOptional. The sales channel, e.g. an agent marketplace. With a rate saved by set_channel_rates, the price covers the channel's cut.
paymentNoOptional. The signed x402 payment, base64, as sent in an X-PAYMENT or PAYMENT-SIGNATURE header; or, where the answer offers MPP tempo, the whole Payment-Authorization value ("Payment " and the credential). Omit it to read what the call costs and how to pay; nothing is charged until you send it.
currencyNoThree-letter ISO currency code, e.g. USD. Defaults to USD.
metadataNoOptional free-form context.
max_priceNoOptional hard ceiling. Binding: a verdict will never relax it.
min_priceNoOptional hard floor. Binding: a verdict will never relax it.
buyer_typeNoOptional. Who the price is for: an AI agent or a person. Recorded with the quote only.
product_idNoOptional identifier of what is being priced.
buyer_agentNoOptional. The buying agent, e.g. chatgpt. A label recorded with the quote only.
product_typeNoOptional category of what is being priced.
current_priceNoOptional incumbent price. Not required: asking whether a price is sensible does not presuppose an existing one.
outcome_termsNoOptional, for a price charged per outcome: when the outcome counts as failed and what is owed then. The result echoes the terms normalised, with complete false until success_definition, resolve_by and on_timeout are all set.
proposed_priceYesThe price to judge. This is the subject of the call.
customer_segmentNoOptional segment, e.g. enterprise.
quote_valid_untilNoOptional. The valid_until of the compute_price result this price came from (RFC 3339). Where quote expiry is switched on, a time already past is answered with quote_expired: true.

Output Schema

NameRequiredDescription
messageNo
verdictNo
currencyNo
confidenceNo
proposed_priceNo
reference_priceNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnly/openWorld/idempotent/destructive; the description goes well beyond them by disclosing the billing model (one verdict per payment, unknown verdicts are never charged), the expiry behavior (quote_expired on stale quotes), the conditional buyer_budget evidence and that it never affects the verdict, and the semantic difference between 'unknown' and 'fair'. The readOnlyHint=false is consistent with the disclosed fact that it can charge and records quote metadata.

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?

Purpose and return values are front-loaded, and each subsequent clause maps to a distinct concern (judgment semantics, expiry, payment, buyer_budget). It is dense but not padded; the payment sentence stacks several nested clauses and could be split, which is the main structural cost.

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 16-parameter tool with nested objects and an output schema, the description covers the parts that structured fields cannot: the meaning of each verdict including the unknown case, when charging occurs, expiry handling, and the informational-only status of buyer_budget. Return-value detail is already carried by the output schema, so nothing material is left for the agent to guess.

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 earns more by explaining cross-tool provenance for quote_valid_until and the wire format/endpoint for payment (payments.x402.verify_price in /.well-known/agents.json), plus the metadata.category trigger for buyer_budget. It leaves other high-value parameters such as max_price/min_price and outcome_terms entirely to the schema, so it does not fully compensate.

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?

States a specific verb and subject ('ask whether a price makes sense for its context') and immediately distinguishes itself from the price-generating sibling by the clause 'rather than what the price should be.' It also enumerates the exact return shape (verdict, band, deviation, confidence, evidence), so an agent knows precisely what it gets back and how it differs from compute_price.

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 compute_price vs. verify_price split is explicit, and the description supplies concrete routing instructions: pass quote_valid_until from the compute_price result that produced the price, and use the x402 payment path only when paid verdicts are enabled and no key is present. What's absent is a direct statement of when not to call it (e.g., when no price exists yet, use compute_price first), which is only implied by the quote_valid_until sentence.

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.

  1. 2 tool updates
    • Addedregister_agent
    • Addeduse_api_key
  2. 2 tool updates
    • Removedregister_agent
    • Removeduse_api_key
  3. 2 tool updates
    • Addedregister_agent
    • Addeduse_api_key
  4. 2 tool updates
    • Removedregister_agent
    • Removeduse_api_key
  5. 2 tool updates
    • Addedregister_agent
    • Addeduse_api_key
  6. 337 tool updates
    • Removedaccept_counter
    • Removedactivate_order
    • Removedadd_commerce_observation
    • Removedadd_order_line
    • Removedadd_storefront_dns_record
    • Removedadd_storefront_domain
    • Removedadd_team_member
    • Removedallocate_variant_traffic
    • Removedapply_analyst_proposal
    • Removedapprove_commerce_proposal
    • Removedapprove_payout_run
    • Removedarchive_notifications
    • Removedask_pricing_analyst
    • Removedbrowse_catalog
    • Removedbuy_day_pass
    • Removedcalculate_tax
    • Addedcall_tool
    • Removedcancel_credit_bundle_subscription
    • Removedcancel_ucp_checkout
    • Removedchange_team_member_role
    • Removedcheck_agent_readiness
    • Removedcheck_purchase
    • Removedcheck_variant_significance
    • Removedclose_spend_session
    • Removedcomplete_ucp_checkout
    • Changedcompute_price11 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / buyer_agent / description
        Previous value: -"Optional. The buying agent, e.g. chatgpt or agent.example.com. A label recorded with the quote only (while its release flag is on); never sent to the pricing function."New value: +"Optional. The buying agent, e.g. chatgpt. A label recorded with the quote only."
      • changedInput schema / properties / channel / description
        Previous value: -"Optional. The sales channel the price is for, such as a shopping agent or an agent marketplace. When your workspace saved a rate for it with set_channel_rates and channel pricing is on, the price is raised so you keep the same amount after the channel's cut."New value: +"Optional. The sales channel, e.g. an agent marketplace. With a rate saved by set_channel_rates, the price covers the channel's cut."
      • changedInput schema / properties / include_buyer_envelope / description
        Previous value: -"If true, and metadata.category names a category, the result carries buyer_envelope: what buyers' own spend checks allowed in that category (p25 to p75, the median, and how often checks were refused over a limit, pooled over 5 or more buyer workspaces; no numbers below 5) and where this price sits. A limit, not a valuation: it never changes the price. Where it is not switched on for the workspace it is ignored."New value: +"If true, with metadata.category set, the result adds buyer_envelope: what buyers' spend limits allowed in that category (pooled over 5 or more buyers) and where this price sits. It never changes the price."
      • changedInput schema / properties / intent / description
        Previous value: -"Optional. The spending limit the buyer approved, such as a card network or payment rail mandate. Where this is switched on for the workspace, the result says whether the price fits it, with the reasons when not, and a signed quote binds the same so an issuer or buyer can check it."New value: +"Optional. The spending limit the buyer approved, e.g. a card network mandate. The result says whether the price fits it."
      • changedInput schema / properties / learned_routing / description
        Previous value: -"Optional. With routing_preference cheapest, fastest, round robin or weighted, let the router learn which of the functions that strategy chooses from serves your workspace best (from your own routed calls), falling back to the strategy while there is too little data. Ignored for any other preference or a function_id, and until learned routing is released for your workspace. get_learned_routing with strategy shows what it learned."New value: +"Optional. With routing_preference cheapest, fastest, round_robin or weighted, let the router learn from your own calls which function serves you best (see get_learned_routing). Ignored with a function_id."
      • changedInput schema / properties / metadata / description
        Previous value: -"Optional context. For competitive pricing: competitor_price, competitor_currency and competitive_action (match or undercut); undercut requires undercut_pct. Confirm product comparability before calling. Or send market_query (the job, in plain words) instead of competitor_price: where market prices are switched on, the market is looked up first and the answer carries market_prices (low, median, high and the pages); with competitive_action and no competitor_price, the lowest market price is used to undercut and the median to match (market_reference: low, median or high chooses)."New value: +"Optional context. Competitive pricing: competitor_price, competitor_currency and competitive_action (match, or undercut with undercut_pct); confirm the products are comparable. Or market_query (the job in plain words) to look up market prices instead."
      • changedInput schema / properties / outcome_terms / description
        Previous value: -"Optional, for a price charged per outcome. When the outcome counts as failed and what is owed then. Where outcome terms are switched on for the workspace, the result carries outcome_terms: these terms normalised, the deadline as a time, the amount owed on timeout, and which terms are missing (complete is false without success_definition, resolve_by and on_timeout). Sending it marks the price as an outcome price; so does metadata.unit \"outcome\"."New value: +"Optional, for a price charged per outcome: when the outcome counts as failed and what is owed then. The result echoes the terms normalised, with complete false until success_definition, resolve_by and on_timeout are all set."
      • changedInput schema / properties / payer / description
        Previous value: -"Optional. Who pays, as distinct from who calls: the agent from its own wallet, a person by card, or a company billed later. Where this is switched on it reaches buyer-aware pricing as metadata.payer and the answer echoes it."New value: +"Optional. Who pays, as distinct from who calls: an agent wallet, a person by card, or a company billed later."
      • changedInput schema / properties / routing / description
        Previous value: -"Optional. Which functions may answer this one call, by UUID from list_functions. A call these leave with no function is refused, naming why, before anything runs or is charged. Where routing preferences are not yet on for your workspace they are ignored."New value: +"Optional. Which functions may answer this call, by UUID from list_functions. If none qualifies, the call is refused before any charge."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "computed_price": {
        +      "type": "number"
        +    },
        +    "confidence": {
        +      "type": "number"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "request_id": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Removedcompute_prices_batch
    • Removedconfirm_purchase
    • Removedcontribute_price_data
    • Removedcontribute_price_data_batch
    • Removedcreate_card_topup
    • Removedcreate_child_workspace
    • Removedcreate_commerce_connector
    • Removedcreate_commerce_policy
    • Removedcreate_contact
    • Removedcreate_credit
    • Removedcreate_credit_bundle_plan
    • Removedcreate_customer
    • Removedcreate_dispute
    • Removedcreate_experiment
    • Removedcreate_function
    • Removedcreate_hosted_model
    • Removedcreate_invoice
    • Removedcreate_marketplace_listing
    • Removedcreate_order
    • Removedcreate_payment
    • Removedcreate_routing_policy
    • Removedcreate_scrape_job
    • Removedcreate_storefront
    • Removedcreate_ucp_checkout
    • Removedcreate_webhook
    • Removedcreate_workspace
    • Removeddecide_approval
    • Removeddecide_learned_price_change
    • Removeddecide_rosetta_review
    • Removeddelete_commerce_policy
    • Removeddelete_contact
    • Removeddelete_credit
    • Removeddelete_customer
    • Removeddelete_feature_contract
    • Removeddelete_function
    • Removeddelete_invoice
    • Removeddelete_marketplace_listing
    • Removeddelete_order
    • Removeddelete_price_guardrails
    • Removeddelete_routing_policy
    • Removeddelete_scrape_job
    • Removeddelete_storefront
    • Removeddelete_webhook
    • Removeddescribe_item_so_far
    • Removeddisconnect_connected_app
    • Removeddiscover_offers
    • Removeddraw_session_spend
    • Removedestimate_task_cost
    • Removedexecute_commerce_proposals
    • Removedfind_market_prices
    • Removedfreeze_rosetta_adapter
    • Removedgenerate_monetization_code
    • Removedget_agent_behaviour_test_run
    • Removedget_agent_behaviour_tests
    • Removedget_agent_capabilities
    • Removedget_agent_protocol
    • Removedget_agent_value_receipt
    • Removedget_aitune_profiling
    • Removedget_aitune_system_stats
    • Removedget_alert_preferences
    • Removedget_analyst_brief
    • Removedget_analyst_settings
    • Removedget_approval
    • Removedget_billing_settings
    • Removedget_buyer_aware_pricing
    • Removedget_card_topup
    • Removedget_changelog
    • Removedget_channel_rates
    • Removedget_commerce_policy
    • Removedget_contact
    • Removedget_contact_by_external_id
    • Removedget_cost_analytics
    • Removedget_credit
    • Removedget_credit_balance
    • Removedget_customer
    • Removedget_customer_by_external_id
    • Removedget_customer_intel
    • Removedget_customer_overview
    • Removedget_cut_advisor_settings
    • Removedget_dispute
    • Removedget_experiment_definition
    • Removedget_experiment_results
    • Removedget_experiment_stopping
    • Removedget_feature_contract
    • Removedget_feature_launch_plan
    • Removedget_forge_status
    • Removedget_frontier_model
    • Removedget_function
    • Removedget_function_health
    • Removedget_function_review
    • Removedget_github_app_connection
    • Removedget_hosted_model
    • Removedget_instrumentation_setup
    • Removedget_invoice
    • Removedget_jale_token_balance
    • Removedget_learned_elasticity_curve
    • Removedget_learned_pricing
    • Removedget_learned_routing
    • Removedget_llm_usage
    • Removedget_marketplace_earnings
    • Removedget_negotiation
    • Removedget_offer_settings
    • Removedget_offer_terms
    • Removedget_order
    • Removedget_payment
    • Removedget_payout_run
    • Removedget_payout_schedule
    • Removedget_price_check
    • Removedget_price_exploration
    • Removedget_price_guardrails
    • Removedget_pricing_analysis
    • Removedget_prompt_class_benchmarks
    • Removedget_public_leaderboard
    • Removedget_purchase_intent
    • Changedget_receipt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "issued_at": {
        +      "type": "string"
        +    },
        +    "issuer": {
        +      "type": "object"
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "object": {
        +      "enum": [
        +        "receipt"
        +      ],
        +      "type": "string"
        +    },
        +    "receipt": {
        +      "properties": {
        +        "amount": {
        +          "type": "number"
        +        },
        +        "currency": {
        +          "type": "string"
        +        },
        +        "payment": {
        +          "type": "string"
        +        },
        +        "usage_event_id": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Removedget_reel
    • Removedget_rosetta_health
    • Removedget_routing_experiment
    • Removedget_routing_policy
    • Removedget_sales_playbook
    • Removedget_spend_policy
    • Removedget_spend_session
    • Removedget_storefront
    • Removedget_stripe_connection
    • Removedget_ucp_checkout
    • Removedget_ucp_profile
    • Removedget_ucp_quote
    • Removedget_usage
    • Removedget_usage_breakdown
    • Removedget_wallet_balance
    • Removedget_workspace_settings
    • Removedget_x402_price_index
    • Removedget_x402_voucher_status
    • Removedgrant_credit_bundle_plan
    • Removedinfer_feature_contract
    • Removedingest_with_rosetta
    • Removedinvite_team_member
    • Removedissue_invoice_with_stripe
    • Removedlist_account_sessions
    • Removedlist_aitune_backends
    • Removedlist_approvals
    • Removedlist_audit_events
    • Removedlist_canonical_schemas
    • Removedlist_child_workspaces
    • Removedlist_commerce_audit_events
    • Removedlist_commerce_catalog
    • Removedlist_commerce_connectors
    • Removedlist_commerce_observations
    • Removedlist_commerce_policies
    • Removedlist_commerce_proposals
    • Removedlist_connected_apps
    • Removedlist_contacts
    • Removedlist_costs
    • Removedlist_credit_bundle_plans
    • Removedlist_credit_bundle_subscriptions
    • Removedlist_credits
    • Removedlist_customers
    • Removedlist_day_passes
    • Removedlist_demo_apps
    • Removedlist_disputes
    • Removedlist_experiment_calls
    • Removedlist_experiments
    • Removedlist_feature_launches
    • Changedlist_functions2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "functions": {
        +      "type": "array"
        +    },
        +    "items": {
        +      "type": "array"
        +    },
        +    "message": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Removedlist_hosted_demos
    • Removedlist_hosted_models
    • Removedlist_inference_providers
    • Removedlist_integrations
    • Removedlist_invitations
    • Removedlist_invoices
    • Removedlist_jale_contributions
    • Removedlist_learned_price_changes
    • Removedlist_llm_usage_events
    • Removedlist_marketplace_listings
    • Removedlist_my_marketplace_listings
    • Removedlist_negotiations
    • Removedlist_notifications
    • Removedlist_order_lines
    • Removedlist_orders
    • Removedlist_outcomes
    • Removedlist_payments
    • Removedlist_payout_runs
    • Removedlist_price_checks
    • Removedlist_pricing_pipelines
    • Removedlist_product_categories
    • Removedlist_receipts
    • Removedlist_reels
    • Removedlist_rosetta_review
    • Removedlist_routing_policies
    • Removedlist_scrape_job_runs
    • Removedlist_scrape_jobs
    • Removedlist_security_events
    • Removedlist_storefront_dns_records
    • Removedlist_storefront_domain_quotes
    • Removedlist_storefronts
    • Removedlist_team_members
    • Removedlist_ucp_checkouts
    • Removedlist_usage_events
    • Removedlist_usage_signal_filters
    • Removedlist_usage_signals
    • Removedlist_vendor_adapters
    • Removedlist_verification_strategies
    • Removedlist_webhook_deliveries
    • Removedlist_webhooks
    • Removedmake_offer
    • Removedmark_notifications_read
    • Removednegotiate_stop
    • Removednormalize_with_rosetta
    • Removedopen_monetization_pull_request
    • Removedopen_spend_session
    • Removedping_webhook
    • Removedplan_rosetta_mapping
    • Removedpredict_with_hosted_model
    • Removedpreview_offer
    • Removedpreview_scrape_job
    • Removedprice_from_capture
    • Changedpricing_conversation3 fields changed
      • addedInput schema / properties / action / description
        Added value: +"prepare (free) returns the questions still open; compute prices once nothing is missing."
      • addedInput schema / properties / answers / description
        Added value: +"Answers to the questions the last call asked, by field, e.g. {\"currency\":\"USD\",\"unit_cost\":4}."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "assumptions": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "continuation": {
        +      "properties": {
        +        "request": {
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "explanation": {
        +      "type": "string"
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "questions": {
        +      "items": {
        +        "properties": {
        +          "field": {
        +            "type": "string"
        +          },
        +          "question": {
        +            "type": "string"
        +          },
        +          "reason": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "result": {
        +      "properties": {
        +        "computed_price": {
        +          "type": "number"
        +        },
        +        "confidence": {
        +          "type": "number"
        +        },
        +        "currency": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "status": {
        +      "enum": [
        +        "needs_input",
        +        "ready",
        +        "completed",
        +        "unable_to_assess"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Removedpromote_experiment_winner
    • Removedpromote_hosted_model_version
    • Removedpropose_experiment_variant
    • Removedquery_jale_pool
    • Removedquote_storefront_domain
    • Removedread_my_inbox
    • Removedread_payable_invoice
    • Removedread_quote_reply
    • Removedrecommend_jale_price
    • Removedreconcile_purchase
    • Removedrecord_cost
    • Removedrefund_payment
    • Removedregister_agent
    • Removedreject_commerce_proposal
    • Removedreject_forge_candidate
    • Removedreject_payout_run
    • Removedremove_offer_product
    • Removedremove_storefront_dns_record
    • Removedremove_storefront_domain
    • Removedremove_team_member
    • Changedreport_outcome2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "event": {
        +      "properties": {
        +        "id": {
        +          "type": "string"
        +        },
        +        "outcome": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "outcome_window": {
        +      "type": "object"
        +    },
        +    "quote_expired": {
        +      "type": "boolean"
        +    },
        +    "quote_expired_seconds_ago": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Removedreport_problem
    • Removedrequest_payout_run
    • Removedretry_payout_run
    • Removedrevoke_invitation
    • Removedrollback_hosted_model
    • Removedrun_agent_behaviour_tests
    • Removedrun_commerce_cycle
    • Removedrun_function_health_probe
    • Removedrun_function_review
    • Removedrun_pricing_chain
    • Removedrun_reference_pipeline
    • Removedrun_scrape_job
    • Removedsave_instrumentation_setup
    • Removedsearch_storefront_domains
    • Addedsearch_tools
    • Removedseed_commerce_sample
    • Removedsend_invoice
    • Removedset_agent_protocol
    • Removedset_analyst_settings
    • Removedset_buyer_aware_pricing
    • Removedset_channel_rates
    • Removedset_commerce_connector_active
    • Removedset_experiment_bandit
    • Removedset_feature_contract
    • Removedset_learned_pricing
    • Removedset_offer_product
    • Removedset_offer_settings
    • Removedset_payout_schedule
    • Removedset_price_exploration
    • Removedset_price_guardrails
    • Removedset_product_category
    • Removedset_spend_policy
    • Removedsettle_purchase
    • Removedsettle_session_draw
    • Removedsimulate_agent_cut
    • Removedstart_aitune_profiling
    • Removedsuggest_frontier_price
    • Removedsync_commerce_connector
    • Removedsync_commerce_orders
    • Removedsync_salesforce
    • Removedtest_commerce_policy
    • Removedtest_datadog_keys
    • Removedtest_function
    • Removedtop_up_balance
    • Removedtrain_hosted_model
    • Removedtranslate_with_rosetta
    • Removedunarchive_notifications
    • Removedupdate_alert_preferences
    • Removedupdate_billing_settings
    • Removedupdate_commerce_policy
    • Removedupdate_contact
    • Removedupdate_credit_bundle_plan
    • Removedupdate_customer
    • Removedupdate_dispute
    • Removedupdate_function
    • Removedupdate_invoice
    • Removedupdate_marketplace_listing
    • Removedupdate_order
    • Removedupdate_routing_policy
    • Removedupdate_sales_playbook
    • Removedupdate_scrape_job
    • Removedupdate_storefront
    • Removedupdate_ucp_checkout
    • Removedupdate_webhook
    • Removedupdate_workspace_settings
    • Removedupload_hosted_model_version
    • Removeduse_api_key
    • Removedverify_agent_protocol
    • Removedverify_instrumentation_setup
    • Changedverify_price5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / buyer_agent / description
        Previous value: -"Optional. The buying agent, e.g. chatgpt or agent.example.com. A label recorded with the quote only (while its release flag is on); never sent to the pricing function."New value: +"Optional. The buying agent, e.g. chatgpt. A label recorded with the quote only."
      • changedInput schema / properties / channel / description
        Previous value: -"Optional. The sales channel the price is for, such as a shopping agent or an agent marketplace. When your workspace saved a rate for it with set_channel_rates and channel pricing is on, the price is raised so you keep the same amount after the channel's cut."New value: +"Optional. The sales channel, e.g. an agent marketplace. With a rate saved by set_channel_rates, the price covers the channel's cut."
      • changedInput schema / properties / outcome_terms / description
        Previous value: -"Optional, for a price charged per outcome. When the outcome counts as failed and what is owed then. Where outcome terms are switched on for the workspace, the result carries outcome_terms: these terms normalised, the deadline as a time, the amount owed on timeout, and which terms are missing (complete is false without success_definition, resolve_by and on_timeout). Sending it marks the price as an outcome price; so does metadata.unit \"outcome\"."New value: +"Optional, for a price charged per outcome: when the outcome counts as failed and what is owed then. The result echoes the terms normalised, with complete false until success_definition, resolve_by and on_timeout are all set."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "confidence": {
        +      "type": "number"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "proposed_price": {
        +      "type": "number"
        +    },
        +    "reference_price": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Removedverify_signed_quote
    • Removedverify_storefront_domain
    • Removedverify_webhook_signature
  7. 2 tool updates
    • Addedregister_agent
    • Addeduse_api_key
  8. 2 tool updates
    • Removedregister_agent
    • Removeduse_api_key
  9. 2 tool updates
    • Addedregister_agent
    • Addeduse_api_key
  10. 2 tool updates
    • Removedregister_agent
    • Removeduse_api_key
  11. 2 tool updates
    • Addedregister_agent
    • Addeduse_api_key
  12. 2 tool updates
    • Removedregister_agent
    • Removeduse_api_key
  13. 2 tool updates
    • Addedregister_agent
    • Addeduse_api_key
  14. 2 tool updates
    • Removedregister_agent
    • Removeduse_api_key
  15. 2 tool updates
    • Addedregister_agent
    • Addeduse_api_key
  16. 2 tool updates
    • Removedregister_agent
    • Removeduse_api_key
  17. 2 tool updates
    • Addedregister_agent
    • Addeduse_api_key
  18. 2 tool updates
    • Removedregister_agent
    • Removeduse_api_key
  19. 2 tool updates
    • Addedregister_agent
    • Addeduse_api_key
  20. 2 tool updates
    • Removedregister_agent
    • Removeduse_api_key

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources