Skip to main content
Glama

Create a draft purchase order

create_purchase_order
Destructive

Creates a draft purchase order with its supplier, receiving warehouse, lines and charges. Nothing is sent to the supplier. Returns the PO id, number and sku_url.

Input Schema

NameRequiredDescriptionDefault
dry_runNoValidate only; saves nothing.
currency_idNo
supplier_idNoThe supplier id. Alternatively give supplier_name.
currency_codeNoISO currency code, e.g. USD.
supplier_nameNo
supplier_notesNo
financial_linesNoCharges: [{description, quantity, amount, financial_line_type_id}].
idempotency_keyNoA repeat with this key replays the first result.
payment_term_idNo
purchase_order_dateYesISO date.
purchase_order_linesNoLines: [{product_id or sku, quantity, amount (unit cost), description}].
purchase_order_numberNo
estimated_delivery_dateNoISO date.
destination_warehouse_idNoReceiving warehouse id; omit only for a dropship PO.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.5/5.0
Behavior4/5

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

Annotations declare the safety profile (destructiveHint=true, idempotentHint=false, openWorldHint=false), and the description adds genuinely useful context on top: it is a draft only and nothing leaves the system, which is consistent with openWorldHint=false. It also pre-empts the missing output schema by stating the return payload (id, number, sku_url). It does not, however, reconcile the draft-only framing with destructiveHint=true.

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?

Two tight sentences: the draft scope is front-loaded, the 'nothing is sent' guarantee follows immediately, and the return values close it out. No filler or restatement of the title.

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?

For a 14-parameter mutation with no output schema, the description covers the draft semantics and return values but is thin on the mechanics the schema does not spell out, such as the dry_run vs idempotency_key interaction and the dropship exception on destination_warehouse_id. It is serviceable but not complete for the tool's complexity.

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?

With 14 parameters and 64% schema description coverage, the schema does most of the work and the description adds only a high-level grouping (supplier, warehouse, lines, charges) that maps to existing parameters. No format, dropship, or dry-run detail is added beyond the schema, so this is baseline-adequate rather than compensating.

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?

Names a specific verb (creates) and resource (draft purchase order) and enumerates the main payload parts: supplier, receiving warehouse, lines and charges. It is clear what the tool does, but it never distinguishes itself from siblings such as submit_purchase_order or create_sales_order, which a 5 would require.

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

Usage Guidelines2/5

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

'Nothing is sent to the supplier' hints at a two-phase draft-then-submit flow, but the description never names submit_purchase_order or states when to prefer one over the other. There is no explicit when-to-use or when-not-to-use guidance, leaving the agent to infer the routing.

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.