Confirm order delivery
orders_confirm_deliveryConfirm that an order was delivered after explicit customer confirmation.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes | ||
| confirmed | Yes |
orders_confirm_deliveryConfirm that an order was delivered after explicit customer confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes | ||
| confirmed | Yes |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the agent knows this mutates state and is safe to repeat. The description adds the customer-confirmation precondition, but it never explains what actually changes on the order (status transition?), whether the action is reversible, or what permission it requires.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. It is arguably truncated rather than wasteful, but the structure itself is efficient and the action is stated first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, state-changing order operation with no output schema and 0% parameter documentation, one sentence is not enough. An agent cannot tell what the confirmation does to the order, whether it triggers downstream effects (refunds, payouts, review requests), or what the boolean flag gates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both parameters, so the description must carry the semantic load and it carries none — neither 'orderId' nor 'confirmed' is mentioned in prose. The schema's const:true on 'confirmed' is self-documenting structurally, but an agent gets no explanation of why the flag exists or what orderId should reference beyond its UUID format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Confirm that an order was delivered'), which is unambiguous and distinct from read-side siblings like orders_get or orders_get_tracking. It does not, however, explicitly contrast itself with orders_decide_replacement or orders_request_cancellation, the other order-state mutators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'after explicit customer confirmation' gives a real precondition for when this tool is appropriate, which is more than most definitions offer. But it names no alternatives and never says when NOT to call it (e.g. what to do if the customer has not confirmed, or before a delivery date has passed).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.