woocommerce-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WC_URL | Yes | Store address, the WordPress root, for example https://shop.example | |
| WC_ALLOW_WRITES | No | Set to true to enable the two write tools: update_stock and update_order_status. Default: off. | false |
| WC_CONSUMER_KEY | Yes | Consumer key from the WooCommerce REST API page | |
| WC_CONSUMER_SECRET | Yes | Consumer secret from the WooCommerce REST API page |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_ordersB | Recent orders, newest first. Filter by status (pending, processing, on-hold, completed, cancelled, refunded, failed, or several comma-separated), a date range (YYYY-MM-DD or ISO 8601), and a customer (numeric customer id, or an email or name to search for). |
| get_orderA | One order in full: line items, addresses, totals, shipping, refunds and the customer note. |
| list_productsA | Products with price and stock. Filter by a search term, an exact SKU, stock_status (instock, outofstock, onbackorder) or a category (id or name). |
| get_productB | One product with price, stock and categories. For a variable product the variations are included with their own SKU, price and stock. |
| list_customersA | Registered customers, optionally matching a name, email or username. Guest checkouts are not customers; find those through list_orders. |
| low_stock_reportA | Published products whose tracked stock is at or below the threshold, plus anything marked out of stock. Walks the whole catalog. Set include_variations to also check each variable product's variations, at the cost of one extra request per variable product. |
| sales_summaryA | Order count, revenue, refunds, average order value and the best-selling products between two dates (YYYY-MM-DD, inclusive). Counts orders in the given statuses. Walks every matching order, so a wide range takes several requests. |
| update_stockA | Set a product's stock quantity and turn on stock management for it. Pass variation_id to set one variation of a variable product. Needs WC_ALLOW_WRITES=true. |
| update_order_statusA | Change an order's status (pending, processing, on-hold, completed, cancelled, refunded, failed). WooCommerce runs its usual side effects, such as emailing the customer. Setting refunded only relabels the order; it does not send money back. Needs WC_ALLOW_WRITES=true. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| store | Store overview: versions, currency, timezone and whether writes are enabled. |
TDQS
Scored across 9 tools
List/get pairs on orders and products are clearly distinct, and the two update tools target different resources. The only real overlap is low_stock_report versus list_products with a stock_status filter, but the threshold-scanning semantics and extra options keep them separable.
Core tools follow a clean verb_noun pattern (list_orders, get_product, update_stock, update_order_status). The two report tools (low_stock_report, sales_summary) break the verb-first convention, but they remain short, readable, and unambiguous.
Nine tools is well within the ideal band and each one maps to a concrete WooCommerce operation (orders, products, customers, stock, sales reporting). Nothing feels padded or redundant.
Read coverage is decent (orders, products, customers, sales), but the surface is thin on writes: no create_order, no update_product for name/price/attributes, and no get_customer detail lookup. Agents hitting those tasks will dead-end.