WooCommerce MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Port for HTTP transport when TRANSPORT=http | 3000 |
| TRANSPORT | No | Transport mode: stdio or http | stdio |
| WOOCOMMERCE_STORE_URL | Yes | Your store's base URL, e.g., https://mystore.com | |
| WOOCOMMERCE_API_VERSION | No | API version, defaults to wc/v3 | wc/v3 |
| WOOCOMMERCE_CONSUMER_KEY | Yes | Consumer key from WooCommerce API keys | |
| WOOCOMMERCE_CONSUMER_SECRET | Yes | Consumer secret from WooCommerce API keys |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| woocommerce_list_productsA | Search and list products in the WooCommerce store catalog. Supports filtering by search term, SKU, status, type, category, tag, stock status, sale status, and price range. Does NOT return product variations for variable products - use woocommerce_list_product_variations for those. Args:
Returns: paginated list of products with id, name, sku, type, status, pricing, stock, and categories. Examples:
|
| woocommerce_get_productA | Retrieve full details for a single product by ID, including description, pricing, stock, images, categories, tags, attributes, and (for variable products) the list of variation IDs. Args:
Returns: Full product object. Error Handling:
|
| woocommerce_create_productA | Create a new product in the WooCommerce catalog. Args:
Returns: The newly created product object with its assigned ID. Examples:
Error Handling:
|
| woocommerce_update_productA | Update fields on an existing product. Only the fields you provide are changed; all other fields are left untouched. Args:
Returns: The updated product object. Examples:
Error Handling:
|
| woocommerce_delete_productA | Delete a product. By default this moves the product to the trash (recoverable); set force=true to permanently delete it. Args:
Returns: Confirmation with the deleted product's id, name, and status. Error Handling:
|
| woocommerce_list_product_variationsA | List all variations of a variable product (e.g. a T-shirt with Size/Color variations). Args:
Returns: paginated list of variations with id, sku, price, stock, and attribute options. Error Handling:
|
| woocommerce_get_product_variationA | Retrieve full details for a single product variation. Args:
Returns: Full variation object including attributes, pricing, and stock. Error Handling:
|
| woocommerce_create_product_variationA | Create a new variation for an existing variable product. The parent product must already have variation-enabled attributes defined (e.g. Size, Color). Args:
Returns: The newly created variation object. Examples:
Error Handling:
|
| woocommerce_update_product_variationA | Update fields on an existing product variation (pricing, stock, SKU). Only supplied fields are changed. Args:
Returns: The updated variation object. Error Handling:
|
| woocommerce_delete_product_variationA | Permanently delete a product variation. Args:
Returns: Confirmation of deletion. Error Handling:
|
| woocommerce_list_product_categoriesA | List product categorys defined in the store. Args:
Returns: paginated list of categorys with id, name, slug, and product count. |
| woocommerce_create_product_categoryA | Create a new product category. Args:
Returns: The newly created category object with its assigned ID. Error Handling:
|
| woocommerce_update_product_categoryA | Update fields on an existing product category. Args:
Returns: The updated category object. Error Handling:
|
| woocommerce_delete_product_categoryA | Permanently delete a product category. Products assigned to it are not deleted, just unassigned. Args:
Returns: Confirmation of deletion. Error Handling:
|
| woocommerce_list_product_tagsA | List product tags defined in the store. Args:
Returns: paginated list of tags with id, name, slug, and product count. |
| woocommerce_create_product_tagA | Create a new product tag. Args:
Returns: The newly created tag object with its assigned ID. Error Handling:
|
| woocommerce_update_product_tagA | Update fields on an existing product tag. Args:
Returns: The updated tag object. Error Handling:
|
| woocommerce_delete_product_tagA | Permanently delete a product tag. Products assigned to it are not deleted, just unassigned. Args:
Returns: Confirmation of deletion. Error Handling:
|
| woocommerce_list_ordersA | Search and list store orders, with filters for status, customer, date range, and product. Args:
Returns: paginated list of orders with id, number, status, total, currency, customer, and line item count. Examples:
|
| woocommerce_get_orderA | Retrieve full details for a single order, including line items, billing/shipping addresses, payment info, shipping/fee/coupon lines, and totals. Args:
Returns: Full order object. Error Handling:
|
| woocommerce_create_orderA | Create a new order with one or more line items. WooCommerce will calculate totals, tax, and stock reduction (for statuses that trigger it) automatically. Args:
Returns: The newly created order object with its assigned ID and calculated totals. Examples:
Error Handling:
|
| woocommerce_update_orderA | Update an existing order's status, addresses, or notes. To change line items, use the WooCommerce admin UI or pass a full 'line_items' array via a direct API call - this tool intentionally keeps line-item edits out of scope to avoid accidental stock/total recalculation mistakes. Args:
Returns: The updated order object. Examples:
Error Handling:
|
| woocommerce_delete_orderA | Delete an order. By default this moves the order to the trash (recoverable); set force=true to permanently delete it. Args:
Returns: Confirmation with the deleted order's id, number, and status. Error Handling:
|
| woocommerce_list_order_notesA | List the internal/customer notes attached to an order (e.g. fulfillment updates, payment gateway logs). Args:
Returns: list of notes with id, author, date, content, and whether it's customer-visible. |
| woocommerce_create_order_noteA | Add a note to an order. Customer-visible notes trigger an email to the customer; internal notes are only visible in the admin. Args:
Returns: The newly created note object. Examples:
|
| woocommerce_list_order_refundsA | List refunds issued against an order. Args:
Returns: list of refunds with id, amount, reason, and refunded line items. |
| woocommerce_create_order_refundA | Issue a refund against an order, either as a flat amount or itemized by line item. This is a DESTRUCTIVE, hard-to-reverse financial operation - confirm details with the user before calling. Args:
Returns: The created refund object. Examples:
Error Handling:
|
| woocommerce_list_customersA | Search and list registered customers (does not include guest checkout customers, who aren't stored as customer records). Args:
Returns: paginated list of customers with id, email, name, order count, and total spent. Examples:
|
| woocommerce_get_customerA | Retrieve full details for a single customer, including billing/shipping addresses, order count, and lifetime spend. Args:
Returns: Full customer object. Error Handling:
|
| woocommerce_create_customerA | Create a new registered customer account. Args:
Returns: The newly created customer object with its assigned ID. Error Handling:
|
| woocommerce_update_customerA | Update fields on an existing customer. Only supplied fields are changed. Args:
Returns: The updated customer object. Error Handling:
|
| woocommerce_delete_customerA | Permanently delete a customer account. Customers don't support trash; this cannot be undone. Existing orders remain but become unlinked from the account. Args:
Returns: Confirmation of deletion. Error Handling:
|
| woocommerce_list_couponsA | Search and list discount coupons defined in the store. Args:
Returns: paginated list of coupons with code, amount, discount type, usage count/limit, and expiry. |
| woocommerce_get_couponA | Retrieve full details for a single coupon, including restrictions (min/max spend, product/category restrictions, email restrictions). Args:
Returns: Full coupon object. Error Handling:
|
| woocommerce_create_couponA | Create a new discount coupon. Args:
Returns: The newly created coupon object with its assigned ID. Examples:
Error Handling:
|
| woocommerce_update_couponA | Update fields on an existing coupon. Only supplied fields are changed. Args:
Returns: The updated coupon object. Examples:
Error Handling:
|
| woocommerce_delete_couponA | Delete a coupon. By default this moves it to the trash (recoverable); set force=true to permanently delete it. Args:
Returns: Confirmation with the deleted coupon's id and code. Error Handling:
|
| woocommerce_get_sales_reportA | Retrieve aggregate sales totals (revenue, orders, items, tax, shipping, discounts, refunds) for a period or custom date range. Args:
Returns: Sales totals summary. If neither period nor date range is given, WooCommerce defaults to the current week. Examples:
|
| woocommerce_get_top_sellers_reportA | Retrieve the best-selling products (by quantity sold) for a period or custom date range. Args:
Returns: list of products with product_id, title, and quantity sold, ordered by quantity descending. Defaults to the current week if no period/range given. Examples:
|
| woocommerce_get_report_totalsA | Get a breakdown of total counts by status for a resource (e.g. how many orders are in each status, or total product/customer/coupon/review counts). Args:
Returns: list of {slug, name, total} entries, e.g. for orders: pending/processing/completed/etc counts. Examples:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jacques-Murray/woocommerce-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server