Production-grade MCP server for the WooCommerce REST API -- 73 tools for products, variations, attributes, orders, customers, coupons, reviews, reports, shipping, payments, webhooks, batch operations, inventory, and system management.
Why This Exists
WooCommerce powers 36% of all e-commerce (5M+ active stores) but has zero comprehensive MCP servers. This fills that gap with 73 production-ready tools covering the entire WooCommerce REST API v3 with full CRUD on every core resource.
Features
- 73 tools across 18 categories -- the most comprehensive WooCommerce MCP server available
- Full CRUD for products, variations, attributes, attribute terms, categories, tags, reviews, orders, customers, coupons, and webhooks
- Inventory management -- list out-of-stock and low-stock products
- Batch operations -- bulk update products and orders in a single call
- Reports & analytics -- sales reports, top sellers, order/product totals
- Store configuration -- settings, tax classes, shipping classes, currencies, countries
- Webhook management -- create, update, list, delete webhooks for real-time events
- System diagnostics -- WooCommerce/WordPress versions, plugins, server environment
- Error-safe -- every tool wrapped with error handling, never crashes on API failures
- Simple auth -- consumer key + secret via environment variables
Quick Start
Install
pip install mcp-woocommerce
Configure
Set your WooCommerce REST API credentials as environment variables:
export WOOCOMMERCE_URL="https://yourstore.com"
export WOOCOMMERCE_KEY="ck_your_consumer_key"
export WOOCOMMERCE_SECRET="cs_your_consumer_secret"
Generate API keys at: WordPress Admin > WooCommerce > Settings > Advanced > REST API
Run
mcp-woocommerce
Or run as a module:
python -m mcp_woocommerce
Use with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"woocommerce": {
"command": "mcp-woocommerce",
"env": {
"WOOCOMMERCE_URL": "https://yourstore.com",
"WOOCOMMERCE_KEY": "ck_your_consumer_key",
"WOOCOMMERCE_SECRET": "cs_your_consumer_secret"
}
}
}
}
Use with Claude Code
claude mcp add woocommerce -- mcp-woocommerce
Then set environment variables in your shell before running Claude Code.
Tools (73)
Store (1)
| Tool |
Description |
ping |
Validate connection and get store info |
Products (8)
| Tool |
Description |
list_products |
List products with filters (status, category, search, on_sale) |
get_product |
Full product details (pricing, inventory, images, attributes) |
create_product |
Create a product (simple, variable, grouped, external) |
update_product |
Update product fields (price, stock, status, etc.) |
delete_product |
Delete or trash a product |
search_products |
Search by name or SKU |
list_low_stock_products |
List products by stock status (out-of-stock, on-backorder) |
Product Categories (4)
| Tool |
Description |
list_product_categories |
List categories with hierarchy |
create_product_category |
Create a category (with optional parent for subcategories) |
update_product_category |
Update category name, description, slug, parent |
delete_product_category |
Delete a category |
Product Variations (5)
| Tool |
Description |
list_product_variations |
List all variations for a variable product |
get_product_variation |
Full variation details (pricing, stock, attributes) |
create_product_variation |
Create a variation with attributes and pricing |
update_product_variation |
Update variation price, stock, status |
delete_product_variation |
Delete a variation |
Product Attributes (5)
| Tool |
Description |
list_product_attributes |
List all attributes (e.g. Color, Size) |
get_product_attribute |
Get attribute details with its terms |
create_product_attribute |
Create an attribute (select or text type) |
update_product_attribute |
Update attribute name, slug, ordering |
delete_product_attribute |
Delete an attribute from all products |
Attribute Terms (4)
| Tool |
Description |
list_attribute_terms |
List terms for an attribute (e.g. Red, Blue for Color) |
create_attribute_term |
Add a term to an attribute |
update_attribute_term |
Update a term's name, slug, description |
delete_attribute_term |
Delete a term |
Product Tags (3)
| Tool |
Description |
list_product_tags |
List tags with optional search |
create_product_tag |
Create a product tag |
delete_product_tag |
Delete a product tag |
Product Reviews (4)
| Tool |
Description |
list_product_reviews |
List reviews (filter by product or status) |
get_product_review |
Full review details |
create_product_review |
Create a review with rating |
delete_product_review |
Delete a review |
Orders (10)
| Tool |
Description |
list_orders |
List orders with filters (status, customer, date range) |
get_order |
Full order details (items, billing, shipping, payment) |
create_order |
Create an order with line items |
update_order_status |
Change order status (pending, processing, completed, etc.) |
update_order |
Edit order billing/shipping addresses and customer note |
delete_order |
Delete or trash an order |
list_order_notes |
Get all notes on an order |
create_order_note |
Add staff or customer-facing notes |
create_refund |
Issue a refund |
list_refunds |
List all refunds for an order |
Customers (6)
| Tool |
Description |
list_customers |
List customers with filters (role, search) |
get_customer |
Full customer details with addresses and order stats |
create_customer |
Create a new customer |
update_customer |
Update customer info, billing/shipping addresses |
delete_customer |
Delete a customer (with optional order reassignment) |
search_customers |
Search by name or email |
Coupons (5)
| Tool |
Description |
list_coupons |
List coupons with search |
get_coupon |
Full coupon details (restrictions, limits, usage) |
create_coupon |
Create percent, fixed cart, or fixed product coupons |
update_coupon |
Update coupon amount, expiry, limits, etc. |
delete_coupon |
Delete a coupon |
Reports (4)
| Tool |
Description |
get_sales_report |
Sales totals by period (week, month, year, custom range) |
get_top_sellers |
Top-selling products by period |
get_order_totals |
Order counts by status |
get_product_totals |
Product counts by type |
Settings (1)
| Tool |
Description |
get_store_settings |
Read store settings by group (general, products, tax, etc.) |
Shipping & Payments (5)
| Tool |
Description |
list_shipping_zones |
Shipping zones with their methods |
list_payment_gateways |
Payment gateways with enabled status |
list_tax_rates |
All configured tax rates |
list_tax_classes |
Tax classes (standard, reduced, zero rate) |
list_shipping_classes |
Product shipping classes |
Webhooks (4)
| Tool |
Description |
list_webhooks |
List all webhooks |
create_webhook |
Create webhooks for order/product/customer events |
update_webhook |
Update webhook URL, topic, status |
delete_webhook |
Delete a webhook |
Batch Operations (2)
| Tool |
Description |
batch_update_products |
Bulk update multiple products in one call |
batch_update_orders |
Bulk update multiple orders in one call |
Data (2)
| Tool |
Description |
list_currencies |
All supported currencies with codes and symbols |
list_countries |
All countries with states/provinces |
System (1)
| Tool |
Description |
get_system_status |
WooCommerce/WordPress versions, plugins, server environment |
Authentication
WooCommerce uses consumer key + consumer secret for REST API auth. This server uses HTTP Basic Authentication over HTTPS.
- Go to WordPress Admin > WooCommerce > Settings > Advanced > REST API
- Click Add key
- Set permissions to Read/Write
- Copy the consumer key (
ck_...) and consumer secret (cs_...)
Important: Your store must use HTTPS for Basic Auth to work securely.
Requirements
- Python 3.10+
- WooCommerce 3.5+ with REST API v3
- HTTPS enabled on your store
License
MIT