mcp-woocommerce
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
Metadata
Release files for mcp-woocommerce 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mcp_woocommerce-0.2.0.tar.gz | 46.7 kB | Without provenance | Details for mcp_woocommerce-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mcp_woocommerce-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for mcp_woocommerce-0.2.0-py3-none-any.whl |
Total release size: 64.9 kB
Release files / mcp_woocommerce-0.2.0.tar.gz
| Download URL | mcp_woocommerce-0.2.0.tar.gz |
|---|---|
| Size | 46.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c3f70df8a1bb5197f9b34c49221acab75469f786a01ae0a47fe8b82a622e51e1
|
|
BLAKE2b-256 checksum How to use checksums |
e725c60f4fc5250ea514637a14a477348ca0d2a1eddaf2a0cd6a24a922d4ace9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / mcp_woocommerce-0.2.0-py3-none-any.whl
| Download URL | mcp_woocommerce-0.2.0-py3-none-any.whl |
|---|---|
| Size | 18.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0f5699ce1398766f5f9f38aa5c150444790c45a9ddef3acbdf5784bdecaf4a55
|
|
BLAKE2b-256 checksum How to use checksums |
d79dff798dfc494d7b9bc7480f952ff944beb2f69c1aefa3ce9dd2998a86c424
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for mcp-woocommerce 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.