A

WooCommerce MCP

MCP server for managing WooCommerce stores — products, orders, customers, coupons, shipping, taxes, webhooks, settings, and system administration

Overall Score94/100

Score Breakdown

Server Info

Package
@amitgurbani/mcp-server-woocommerce
Registry
npm
Maintainer
Community
Category
E-commerce
Tags
wordpressstoreorders
Last Scanned
7 Apr 2026

Findings

3 issues

Authentication & Identity

LOWImplements MCP OAuth spec for per-user authentication

Supports both stdio and HTTP transports (selected via MCP_TRANSPORT=http). WooCommerce API auth uses consumer key/secret env vars. HTTP transport supports two auth modes: (1) bearer token via MCP_AUTH_TOKEN, or (2) OAuth 2.1 via Auth0 with JWT validation using mcp-auth library. HTTP mode implements StreamableHTTPServerTransport with session management. Serves /.well-known/oauth-protected-resource for MCP client discovery. SSE supported via GET /mcp endpoint.

Remediation

Document the required OAuth scopes for each tool.

Tool Schema Quality

HIGHRequired fields missing on 1 write operations

Write tools without required field declarations: cleanup_orphaned_media.

Remediation

Add required arrays to all write/delete tool schemas.

Maintenance & Trust

LOWCommunity-maintained by Amit Gurbani

No official vendor backing.

Remediation

Seek vendor verification.

Tools

101 total
NameDescriptionRisk
list_productsSearch and filter the product catalog. Supports filtering by status, category, tag, type, price range, and search term. Use fields param to request only needed fields.read
get_productGet full details of a single product by ID. Returns more fields than list_products including description, tags, brands, and variations. Use fields param to request only needed fields.read
create_productCreate a new WooCommerce product. For variable products, set type='variable' and include attributes array, then use create_variation to add variants.write
update_productUpdate an existing product. Only include fields you want to change. Note: setting images replaces all existing images.write
delete_productDelete a product. Moves to trash by default; set force=true to permanently delete. Does not delete associated media.admin
list_variationsList all variations of a variable product with pricing, stock, and attribute details.read
get_variationGet full details of a single product variation.read
create_variationCreate a variation for a variable product. Requires product_id and attributes to define the variation combination.write
update_variationUpdate a product variation. Only include fields you want to change.write
batch_update_variationsBatch update multiple variations at once. Useful for bulk price changes or stock updates.write
list_ordersSearch and filter orders. Supports filtering by status, customer, date range, and search term. Use fields param to request only needed fields.read
get_orderGet full details of a single order including billing, shipping, line items, and payment info. Use fields param to request only needed fields.read
create_orderCreate a new order. Requires line_items with product_id and quantity. Use variation_id for variable product variants.write
update_orderUpdate an order. Commonly used to change status (e.g. pending -> processing -> completed). See get_order_totals for valid statuses.write
delete_orderDelete an order. Moves to trash by default; set force=true to permanently delete.admin
list_customersSearch and filter customers by name, email, or role. Returns order count and total spent per customer. Use fields param to request only needed fields.read
get_customerGet full customer details including billing and shipping addresses, order history stats. Use fields param to request only needed fields.read
create_customerCreate a new customer account. Email is required and must be unique. Use fields param to request only needed fields.write
update_customerUpdate customer details such as name, email, or addresses. Only include fields you want to change. Use fields param to request only needed fields.write
list_categoriesList product categories with hierarchy (parent/child). Supports search and pagination.read
get_categoryGet full details of a product category.read
create_categoryCreate a product category. Set parent to nest under an existing category.write
update_categoryUpdate a product category.write
delete_categoryDelete a product category. Products in this category are not deleted.admin
list_tagsList product tags. Supports search and pagination.read
get_tagGet details of a product tag.read
create_tagCreate a product tag.write
update_tagUpdate a product tag.write
delete_tagDelete a product tag.admin
list_brandsList product brands. Supports search and pagination.read
get_brandGet details of a product brand.read
create_brandCreate a product brand.write
update_brandUpdate a product brand.write
delete_brandDelete a product brand.admin
list_attributesList global product attributes (e.g. Color, Size).read
get_attributeGet details of a global product attribute.read
create_attributeCreate a global product attribute (e.g. Color, Size).write
delete_attributeDelete a global product attribute and all its terms.admin
list_attribute_termsList terms (values) for a global product attribute.read
create_attribute_termCreate a term (value) for a global product attribute.write
delete_attribute_termDelete a term from a global product attribute.admin
batch_update_attribute_termsBatch create, update, or delete attribute terms.write
list_order_notesList notes for an order (internal and customer-facing).read
create_order_noteAdd a note to an order. Set customer_note=true to make it visible to the customer.write
delete_order_noteDelete a note from an order.admin
list_order_refundsList all refunds for an order. Shows refund amounts, reasons, and who processed them. Use fields param to request only needed fields.read
create_order_refundCreate a refund for an order. Can refund full or partial amount. Set api_refund=true (default) to automatically refund via payment gateway, or false for manual refund.write
delete_order_refundDelete a refund record from an order. This removes the refund entry but does not reverse the payment — use with caution.admin
list_couponsList coupons with optional filtering by code or search term.read
get_couponGet full details of a coupon.read
create_couponCreate a discount coupon with amount, type, usage limits, and product/category restrictions.write
update_couponUpdate a coupon. Only include fields you want to change.write
delete_couponDelete a coupon. Set force=true to permanently delete.admin
list_product_reviewsList product reviews with optional filtering by product, status, or reviewer.read
get_product_reviewGet full details of a product review.read
update_product_reviewUpdate a product review (status, content, rating).write
delete_product_reviewDelete a product review.admin
list_tax_classesList all tax classes (e.g. Standard, Reduced Rate, Zero Rate).read
create_tax_classCreate a new tax class.write
delete_tax_classDelete a tax class. Only empty classes (no rates) can be deleted.admin
list_tax_ratesList tax rates with optional filtering by class.read
get_tax_rateGet full details of a tax rate.read
create_tax_rateCreate a tax rate for a country/state with rate percentage and applicable tax class.write
update_tax_rateUpdate an existing tax rate.write
delete_tax_rateDelete a tax rate.admin
list_shipping_zonesList all shipping zones.read
get_shipping_zoneGet details of a shipping zone.read
create_shipping_zoneCreate a shipping zone with name and order priority.write
update_shipping_zoneUpdate a shipping zone.write
delete_shipping_zoneDelete a shipping zone and its methods.admin
list_shipping_zone_methodsList shipping methods in a zone.read
add_shipping_zone_methodAdd a shipping method to a zone (flat_rate, free_shipping, local_pickup).write
update_shipping_zone_methodUpdate a shipping method in a zone.write
delete_shipping_zone_methodDelete a shipping method from a zone.admin
list_shipping_classesList shipping classes used to group products for shipping rate calculation.read
create_shipping_classCreate a shipping class.write
delete_shipping_classDelete a shipping class.admin
list_payment_gatewaysList all available payment gateways and their status.read
get_payment_gatewayGet details of a payment gateway including settings.read
update_payment_gatewayUpdate a payment gateway (enable/disable, change settings).admin
list_setting_groupsList all WooCommerce setting groups. Groups include: general, products, tax, shipping, checkout, account, email, advanced. Use group ID with get_settings to see options.read
get_settingsGet all settings in a group. Common groups: 'general' (store address, currency), 'products' (measurements, reviews), 'tax' (tax options), 'shipping' (shipping options).read
update_settingUpdate a single setting value. Use get_settings first to find the setting ID and valid options. Example: group_id='general', setting_id='woocommerce_currency', value='INR'.admin
list_webhooksList webhooks. Webhooks send POST requests to a URL when store events occur (e.g. order.created, product.updated).read
get_webhookGet full details of a webhook by ID including secret and API version.read
create_webhookCreate a webhook. Topic format: 'resource.event' (e.g. 'order.created', 'product.updated', 'coupon.deleted'). Resources: order, product, customer, coupon. Events: created, updated, deleted, restored.write
update_webhookUpdate a webhook. Use to change delivery URL, topic, status (pause/resume), or secret.write
delete_webhookDelete a webhook. Set force=true to permanently delete.admin
get_system_statusGet WooCommerce system status including environment, database, active plugins, theme, settings, and security info.read
list_system_toolsList available system tools (e.g. clear_transients, recount_terms, db_update_routine). These are maintenance utilities.read
run_system_toolRun a system maintenance tool. Common tools: clear_transients, clear_template_cache, recount_terms, db_update_routine, install_pages.admin
get_sales_reportGet sales report with totals for a date range.read
get_order_totalsGet order count by status.read
get_product_totalsGet product count by type.read
get_customer_totalsGet customer count by role.read
get_top_sellersGet top selling products for a date range.read
list_countriesList all countries with states/provinces.read
list_currenciesList all supported currencies with symbols and rates.read
list_mediaList media files (images) from the WordPress media library.read
delete_mediaDelete a media file from the WordPress media library.admin
cleanup_orphaned_mediaFind and optionally delete media files not referenced by any product.admin

Deploy WooCommerce MCP securely

CompleteFlow adds per-user authentication, permission scoping, and audit logging to any MCP server out of the box.

Deploy on CompleteFlow