Skip to main content
Glama

Services purchase

services_purchase

Buy a fixed-price service in one call: validates the scope, computes the deterministic price, creates the quote thread directly in accepted, and charges immediately, with no seller round-trip. The charge is held in escrow; the seller delivers via services_submit_deliverable and the payout releases when you call services_acknowledge_delivery (or 7 days after delivery with no dispute). Same delegation/envelope enforcement as services_accept_quote. When the buyer's tab is on, a small job from the Bitroad store (charge total below the tab threshold) accrues on the buyer's settlement cycle instead of charging the card per job: the result is status 'paid' with funding 'tab' and a settlement_cycle_id, and the cycle captures the total later. Otherwise funding is 'immediate'.

Input Schema

NameRequiredDescriptionDefault
scopeYesScope-of-work values; must conform to the listing's scope_schema. The metered field drives the computed price.
payment_method_idNoUUID of a saved payment method to charge. Omitted = envelope-bound card, else the principal's default.
requested_summaryNoFree-text description of the work being requested.
confirmation_tokenNoToken from the confirmation_required kickback; must match to complete the charge.
service_listing_idYesUUID of the fixed-price service listing to buy.
__outcomeForTestingNoTest-only: force a simulated card outcome. Never set in production.
acknowledged_confirmationYesSet true when retrying after a confirmation_required kickback, together with confirmation_token.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations: states that the charge happens immediately, is held in escrow, releases on services_acknowledge_delivery or 7 days after delivery absent dispute, and describes the tab-vs-immediate funding branch with the resulting status/funding/settlement_cycle_id fields. It also mentions the confirmation_required kickback and the sibling tool that completes delivery, which is exactly the context the readOnly/destructive hints cannot convey.

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 its consequences, and each sentence carries new information. The tab-funding sentence is dense with 'status paid / funding tab / settlement_cycle_id' detail but is genuinely differentiating, so it is not padding.

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?

With no output schema, the description usefully explains the return-status vocabulary (paid/funding immediate vs tab). Remaining gaps for a money-moving, non-idempotent tool: no statement about retry safety or what happens on decline/insufficient funds beyond the confirmation kickback mention.

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 the schema already documents service_listing_id, scope (including that the metered field drives price), payment_method_id resolution order, and confirmation_token/acknowledged_confirmation retry pairing. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

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 resource ('Buy a fixed-price service in one call') and immediately bounds the scope: it validates, prices, creates the accepted quote, and charges with 'no seller round-trip'. That contrasts it cleanly with services_request_quote / services_accept_quote, which require seller interaction.

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 implies the selection rule (use when the listing is fixed-price and you want no seller round-trip) and names services_accept_quote as the behavioral sibling for delegation/envelope enforcement. It never explicitly says when NOT to use it (e.g. variable/metered-quoted work via services_request_quote), so an agent must infer the boundary from the phrase 'fixed-price'.

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.