Skip to main content
Glama

Inventory Planner MCP by usefulapi

Edit a draft purchase order

inventoryplanner_update_draft_purchase_order
DestructiveIdempotent

WRITE: change the reference, expected date or notes of a purchase order that is still a draft (PATCH /api/v1/purchase-orders/{id}). The order is read first and refused unless its status is "draft". It never changes the status, sends the order, or touches line items or received quantities.

Input Schema

NameRequiredDescriptionDefault
notesNo
referenceNo
expected_dateNoExpected delivery date, e.g. 2026-11-15 or 2026-11-15T10:00:00+01:00.
purchase_order_idYesInventory Planner id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations give destructiveHint=true/idempotentHint=true/readOnlyHint=false but say nothing about scope. The description adds real behavioral detail beyond them: the order is read first, the call is refused unless status is 'draft', and the blast radius is bounded to three fields with no status change, no sending, no line-item or received-quantity mutation. That materially refines the agent's risk model.

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 tight sentences, front-loaded with the WRITE marker and the endpoint before any qualifiers. Every clause carries load: mutable fields, precondition, and exclusions. No 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 4-parameter mutation with no output schema, the description covers purpose, precondition, and mutation boundaries well. It stops short of saying what the call returns or whether partial success/field-level errors are possible, but nothing essential to invoking 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 50% (only expected_date and purchase_order_id are documented inline). The description compensates by enumerating the three writable fields — reference, expected date, notes — matching the optional properties and clarifying that other fields are not editable. It does not add format or constraint detail 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?

States a specific verb (WRITE: change), the exact resource (draft purchase order), and the three mutable fields, plus the HTTP verb and path (PATCH /api/v1/purchase-orders/{id}). It is immediately distinguishable from the create/get/list siblings, which either make new orders or read them.

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 precondition 'refused unless its status is "draft"' tells the agent exactly when this tool applies, and the exclusion list ('never changes the status, sends the order, or touches line items') steers away from adjacent operations. It does not explicitly name alternative tools (e.g. create_draft_purchase_order), so it falls short of a full routing statement.

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.