Skip to main content
Glama

Stillleaf: Memorial program correction, printing and delivery

Send a purchase order

submit_purchase_order
Idempotent

Send the buyer's purchase order for an issued offer or a placed order: number, revision, lines, total, currency and payment terms. It is matched against the accepted terms; differences are recorded and shown in inspect_offer thread.purchasing as exceptions, never silently accepted. A changed purchase order is the same number with a higher revision. This does not accept the offer and pays nothing.

Input Schema

NameRequiredDescriptionDefault
idYesThe request or offer id from your receipt or customer link
poYes
nameYesName of the person making this for the buyer
tokenYesPrivate token from your receipt or customer link; keep it for later visits
organizationNoThe buyer's organization
terms_sha256YesExact terms_sha256 from inspect_offer; the act is refused if the terms have changed since

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / id / description
      Added value: +"The request or offer id from your receipt or customer link"
  2. Added

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false), the description discloses the key behavior: the PO is reconciled against accepted terms, differences are recorded as exceptions visible in inspect_offer rather than silently accepted, and revision semantics govern changes. With annotations already covering safety and idempotency, this adds meaningful context; only the refusal-on-stale-terms condition lives in the schema rather than the description.

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 with the purpose stated first, followed by the reconciliation behavior and the two negative guarantees. The field enumeration in sentence one slightly overlaps the schema, but it earns its place by framing what makes up a PO.

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 six-parameter nested mutation with no output schema, the description covers purpose, the matching/consequence model, and where to see the outcome (inspect_offer thread.purchasing). It does not describe what a successful submission returns or whether multiple POs may be sent against one offer, which are the remaining gaps.

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 83%, so the baseline is already high, but the description adds real meaning: it enumerates the PO content the caller must supply (number, revision, lines, total, currency, payment terms) and explains that a changed PO reuses the number with a higher revision, which clarifies how 'revision' is meant to be used in practice.

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 ('send the buyer's purchase order') and scopes it to 'an issued offer or a placed order', which separates it cleanly from accept_offer, counter_offer and release_payment in the sibling list. An agent can identify both the action and its object without opening the schema.

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 usage context (send a PO against an issued offer or placed order) and explicit exclusions ('does not accept the offer and pays nothing'), which steers the agent away from accept_offer and release_payment. It also routes exception review to inspect_offer thread.purchasing. It stops short of an explicit when-to-use versus when-not-to-use contrast with every sibling, so a 4 rather than 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