Skip to main content
Glama
WooCommerce MCP Server

WooCommerce MCP Server

Propose: change order status

propose_order_status
Destructive

Propose a new order status, such as on-hold to processing, with a required reason for human approval before any change is applied.

Instructions

Propose a new status for an order (e.g. on-hold → processing). Requires human approval.

Input Schema

NameRequiredDescriptionDefault
reasonYes
statusYes
order_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so mutation risk is covered. The description adds genuine context by stating the call only proposes and needs human approval (i.e., it does not apply immediately), but says nothing about transition validity, conflicts with existing proposals, or what happens on rejection.

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?

Two short sentences, front-loaded with the action and followed by the approval constraint; no filler. The parenthetical example earns its place by clarifying the kind of change intended.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter mutation tool with no output schema and zero schema description coverage, the description is too thin. An agent still lacks the purpose of 'reason', the meaning of the status enum values, and any notion of what a returned proposal looks like or how to reference it later.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning, and it largely does not. The example hints at the status field and the name implies order_id, but the required 'reason' parameter is never mentioned and the seven-value status enum is not explained.

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?

States a specific verb and resource ('Propose a new status for an order') and illustrates it with a concrete transition (on-hold → processing). It is clearly distinct from sibling propose_* tools by naming the resource (order status), but it never explicitly contrasts itself with apply_proposal or propose_refund.

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

Usage Guidelines3/5

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

'Requires human approval' implies this is the right tool when a change must go through review rather than direct mutation, which is useful routing context. However, there is no explicit guidance on when to pick this over apply_proposal, or whether a separate approval step must already exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.