WooCommerce MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WOOCOMMERCE_KEY | Yes | Your WooCommerce REST API consumer key (starts with ck_). | |
| WOOCOMMERCE_URL | Yes | The URL of your WooCommerce store (e.g., https://yourstore.com). | |
| WOOCOMMERCE_SECRET | Yes | Your WooCommerce REST API consumer secret (starts with cs_). |
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
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Validate WooCommerce connection and get store info (name, URL, currency, version, timezone). |
| list_productsB | List products. Filter by status (publish, draft, pending, private), category ID, search term, or on_sale flag. Orderby: date, id, title, price, popularity, rating. |
| get_productA | Get full details for a product including pricing, inventory, categories, images, and attributes. |
| create_productC | Create a product. Type: simple, grouped, external, variable. Categories: comma-separated IDs. |
| update_productA | Update a product. Only provide fields you want to change. Set sale_price to empty string to remove sale. |
| delete_productA | Delete a product. Set force=True for permanent deletion (bypass trash). |
| search_productsC | Search products by name or SKU. |
| list_product_categoriesB | List product categories. Set parent=0 for top-level only. |
| list_ordersB | List orders. Filter by status (pending, processing, on-hold, completed, cancelled, refunded, failed), customer ID, or date range (ISO 8601). |
| get_orderB | Get full details for an order including line items, shipping, billing, and payment info. |
| create_orderC | Create an order. line_items: JSON array of {product_id, quantity} objects. Example: '[{"product_id": 42, "quantity": 2}]' |
| update_order_statusB | Update an order's status. Status: pending, processing, on-hold, completed, cancelled, refunded, failed. |
| list_order_notesB | List all notes on an order (internal staff notes and customer-facing notes). |
| create_order_noteB | Add a note to an order. Set customer_note=True to make it visible to the customer. |
| create_refundB | Create a refund for an order. Amount as string (e.g. '25.00'). |
| list_customersC | List customers. Filter by role (all, administrator, customer) or search by name/email. Orderby: id, include, name, registered_date. |
| get_customerB | Get full details for a customer including billing/shipping addresses and order stats. |
| create_customerB | Create a new customer. Only email is required. |
| search_customersC | Search customers by name or email. |
| list_couponsB | List coupons. Optionally search by code. |
| get_couponB | Get full details for a coupon. |
| create_couponC | Create a coupon. discount_type: percent, fixed_cart, fixed_product. Amount as string (e.g. '10' for 10% or $10). |
| delete_couponB | Delete a coupon. force=True for permanent deletion. |
| get_sales_reportB | Get sales report. Period: week, month, last_month, year. Or provide date_min/date_max (YYYY-MM-DD). |
| get_top_sellersB | Get top-selling products. Period: week, month, last_month, year. |
| get_order_totalsB | Get order counts by status (pending, processing, completed, etc.). |
| get_product_totalsB | Get product counts by type (simple, variable, grouped, external). |
| list_shipping_zonesB | List all shipping zones with their methods. |
| list_payment_gatewaysB | List all payment gateways with their enabled status and settings. |
| list_tax_ratesB | List all tax rates. |
| list_webhooksB | List all webhooks. |
| create_webhookC | Create a webhook. Topics: order.created, order.updated, order.deleted, product.created, product.updated, product.deleted, customer.created, customer.updated, coupon.created, coupon.updated, etc. |
| delete_webhookC | Delete a webhook. |
| get_system_statusB | Get WooCommerce system status — versions, database, active plugins, server environment, and store diagnostics. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 34 tools
Most tools have distinct purposes targeting specific resources and actions, but there is some overlap between list_customers and search_customers, and list_products and search_products, which could cause minor confusion in tool selection. However, descriptions clarify their differences.
Tool names follow a highly consistent verb_noun pattern throughout, such as create_coupon, get_customer, list_orders, and update_order_status. There are no deviations in naming conventions, making the set predictable and easy to navigate.
With 34 tools, the count is on the high side for a typical MCP server, bordering on heavy. While it covers many aspects of WooCommerce, it may feel overwhelming, but it's not extreme and aligns with the platform's broad scope.
The tool set provides comprehensive coverage of the WooCommerce domain, including CRUD operations for key resources (coupons, customers, orders, products, webhooks), reporting, system status, and administrative functions. There are no obvious gaps that would hinder agent workflows.