WooCommerce MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

WooCommerce MCP Server

A Model Context Protocol (MCP) server for WooCommerce integration, compatible with Windows, macOS, and Linux.

Overview

This MCP server enables interaction with WooCommerce stores through the WordPress REST API. It provides comprehensive tools for managing all aspects of products, orders, customers, shipping, taxes, discounts, and store configuration using JSON-RPC 2.0 protocol.

Installation

  1. Clone the repository
  2. Install dependencies:
npm install
  1. Build the project:
npm run build

Configuration

Add the server to your MCP settings file with environment variables for credentials:

{ "mcpServers": { "woocommerce": { "command": "node", "args": ["path/to/build/index.js"], "env": { "WORDPRESS_SITE_URL": "https://your-wordpress-site.com", "WOOCOMMERCE_CONSUMER_KEY": "your-woocommerce-consumer-key", "WOOCOMMERCE_CONSUMER_SECRET": "your-woocommerce-consumer-secret", "WORDPRESS_USERNAME": "your-wordpress-username", "WORDPRESS_PASSWORD": "your-wordpress-password" } } } }

Environment Variables

Required for WooCommerce API access:

  • WORDPRESS_SITE_URL: Your WordPress site URL (WooCommerce is a WordPress plugin)
  • WOOCOMMERCE_CONSUMER_KEY: WooCommerce REST API consumer key
  • WOOCOMMERCE_CONSUMER_SECRET: WooCommerce REST API consumer secret

Required only for WordPress API methods:

  • WORDPRESS_USERNAME: WordPress username with appropriate permissions
  • WORDPRESS_PASSWORD: WordPress password for authentication

You can also provide these credentials in the request parameters if you prefer not to use environment variables.

Authentication Options

WooCommerce Authentication

WooCommerce API access requires consumer keys that you can generate in your WordPress dashboard under WooCommerce → Settings → Advanced → REST API.

WordPress Authentication

For WordPress-specific methods (like managing posts), you need to provide:

  • Username/password credentials for basic authentication
  • The WordPress REST API must be enabled on your site

API Methods

The server supports both WordPress and WooCommerce API methods. Here's a list of available methods grouped by category:

WordPress Content Management

These methods require WordPress username/password credentials and are independent of the WooCommerce API.

MethodDescription
create_postCreate a new WordPress post
get_postsRetrieve WordPress posts
update_postUpdate an existing WordPress post
get_post_metaGet post metadata
update_post_metaUpdate post metadata
create_post_metaCreate post metadata
delete_post_metaDelete post metadata

WooCommerce Products

MethodDescription
get_productsRetrieve a list of products
get_productGet a single product by ID
create_productCreate a new product
update_productUpdate an existing product
delete_productDelete a product
get_product_metaGet product metadata
create_product_metaCreate/update product metadata
update_product_metaUpdate product metadata (alias for create)
delete_product_metaDelete product metadata

Product Categories

MethodDescription
get_product_categoriesRetrieve product categories
get_product_categoryGet a single product category
create_product_categoryCreate a new product category
update_product_categoryUpdate a product category
delete_product_categoryDelete a product category

Product Tags

MethodDescription
get_product_tagsRetrieve product tags
get_product_tagGet a single product tag
create_product_tagCreate a new product tag
update_product_tagUpdate a product tag
delete_product_tagDelete a product tag

Product Attributes

MethodDescription
get_product_attributesRetrieve product attributes
get_product_attributeGet a single product attribute
create_product_attributeCreate a new product attribute
update_product_attributeUpdate a product attribute
delete_product_attributeDelete a product attribute
get_attribute_termsRetrieve attribute terms
get_attribute_termGet a single attribute term
create_attribute_termCreate a new attribute term
update_attribute_termUpdate an attribute term
delete_attribute_termDelete an attribute term

Product Variations

MethodDescription
get_product_variationsRetrieve product variations
get_product_variationGet a single product variation
create_product_variationCreate a new product variation
update_product_variationUpdate a product variation
delete_product_variationDelete a product variation

Product Reviews

MethodDescription
get_product_reviewsRetrieve product reviews
get_product_reviewGet a single product review
create_product_reviewCreate a new product review
update_product_reviewUpdate a product review
delete_product_reviewDelete a product review

WooCommerce Orders

MethodDescription
get_ordersRetrieve a list of orders
get_orderGet a single order by ID
create_orderCreate a new order
update_orderUpdate an existing order
delete_orderDelete an order
get_order_metaGet order metadata
create_order_metaCreate/update order metadata
update_order_metaUpdate order metadata (alias for create)
delete_order_metaDelete order metadata

Order Notes

MethodDescription
get_order_notesRetrieve order notes
get_order_noteGet a single order note
create_order_noteCreate a new order note
delete_order_noteDelete an order note

Order Refunds

MethodDescription
get_order_refundsRetrieve order refunds
get_order_refundGet a single order refund
create_order_refundCreate a new order refund
delete_order_refundDelete an order refund

WooCommerce Customers

MethodDescription
get_customersRetrieve a list of customers
get_customerGet a single customer by ID
create_customerCreate a new customer
update_customerUpdate an existing customer
delete_customerDelete a customer
get_customer_metaGet customer metadata
create_customer_metaCreate/update customer metadata
update_customer_metaUpdate customer metadata (alias for create)
delete_customer_metaDelete customer metadata

Shipping

MethodDescription
get_shipping_zonesRetrieve shipping zones
get_shipping_zoneGet a single shipping zone
create_shipping_zoneCreate a new shipping zone
update_shipping_zoneUpdate a shipping zone
delete_shipping_zoneDelete a shipping zone
get_shipping_methodsRetrieve shipping methods
get_shipping_zone_methodsGet shipping methods for a zone
create_shipping_zone_methodCreate a new shipping method for a zone
update_shipping_zone_methodUpdate a shipping method for a zone
delete_shipping_zone_methodDelete a shipping method from a zone
get_shipping_zone_locationsGet locations for a shipping zone
update_shipping_zone_locationsUpdate locations for a shipping zone

Taxes

MethodDescription
get_tax_classesRetrieve tax classes
create_tax_classCreate a new tax class
delete_tax_classDelete a tax class
get_tax_ratesRetrieve tax rates
get_tax_rateGet a single tax rate
create_tax_rateCreate a new tax rate
update_tax_rateUpdate a tax rate
delete_tax_rateDelete a tax rate

Discounts/Coupons

MethodDescription
get_couponsRetrieve coupons
get_couponGet a single coupon
create_couponCreate a new coupon
update_couponUpdate a coupon
delete_couponDelete a coupon

Payment Gateways

MethodDescription
get_payment_gatewaysRetrieve payment gateways
get_payment_gatewayGet a single payment gateway
update_payment_gatewayUpdate a payment gateway

Reports

MethodDescription
get_sales_reportRetrieve sales reports
get_products_reportRetrieve products reports
get_orders_reportRetrieve orders reports
get_categories_reportRetrieve categories reports
get_customers_reportRetrieve customers reports
get_stock_reportRetrieve stock reports
get_coupons_reportRetrieve coupons reports
get_taxes_reportRetrieve taxes reports

Settings

MethodDescription
get_settingsRetrieve all settings
get_setting_optionsRetrieve options for a setting
update_setting_optionUpdate a setting option

System Status

MethodDescription
get_system_statusRetrieve system status
get_system_status_toolsRetrieve system status tools
run_system_status_toolRun a system status tool

Data

MethodDescription
get_dataRetrieve store data
get_continentsRetrieve continents data
get_countriesRetrieve countries data
get_currenciesRetrieve currencies data
get_current_currencyGet the current currency

Method Parameters

All methods follow a similar parameter structure. Here are some examples:

Common Parameters for All Methods

  • siteUrl: (optional if set in env) WordPress site URL

Additional Parameters for WooCommerce Methods

  • consumerKey: (optional if set in env) WooCommerce consumer key
  • consumerSecret: (optional if set in env) WooCommerce consumer secret

Additional Parameters for WordPress Methods

  • username: (optional if set in env) WordPress username
  • password: (optional if set in env) WordPress password

Example Usage

WordPress API Example

{ "jsonrpc": "2.0", "id": 1, "method": "create_post", "params": { "siteUrl": "https://your-wordpress-site.com", "username": "your-wordpress-username", "password": "your-wordpress-password", "title": "My New Blog Post", "content": "This is the content of my new blog post.", "status": "publish" } }

WooCommerce Products Example

{ "jsonrpc": "2.0", "id": 1, "method": "get_products", "params": { "perPage": 20, "page": 1, "filters": { "category": 19, "status": "publish" } } }

Create Product Example

{ "jsonrpc": "2.0", "id": 1, "method": "create_product", "params": { "productData": { "name": "Premium T-Shirt", "type": "simple", "regular_price": "29.99", "description": "Comfortable cotton t-shirt, available in various sizes.", "short_description": "Premium quality t-shirt.", "categories": [ { "id": 19 } ], "images": [ { "src": "http://example.com/wp-content/uploads/2022/06/t-shirt.jpg" } ] } } }

Product Metadata Example

{ "jsonrpc": "2.0", "id": 1, "method": "create_product_meta", "params": { "productId": 456, "metaKey": "_custom_product_field", "metaValue": { "special_attribute": "value", "another_attribute": 42 } } }

Order Metadata Example

{ "jsonrpc": "2.0", "id": 1, "method": "create_order_meta", "params": { "orderId": 789, "metaKey": "_delivery_instructions", "metaValue": "Leave package at the back door" } }

Security Note

For WooCommerce REST API access, you need to generate API keys. You can create them in your WordPress dashboard under WooCommerce → Settings → Advanced → REST API.

Requirements

  • Node.js 20.0.0 or higher
  • WordPress site with WooCommerce plugin installed
  • WooCommerce REST API keys

License

MIT License - See LICENSE file for details