io.github.wppoland/woocommerce-mcp
Read-only MCP server for WordPress + WooCommerce products, orders, sales, and posts.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
@wppoland/woocommerce-mcpclaude mcp add woocommerce-mcp -e 'WP_URL=<WP_URL>' -e 'WC_CONSUMER_KEY=<your wc_consumer_key>' -e 'WC_CONSUMER_SECRET=<your wc_consumer_secret>' -- npx -y @wppoland/woocommerce-mcp@0.1.1
{
"mcpServers": {
"woocommerce-mcp": {
"command": "npx",
"args": [
"-y",
"@wppoland/woocommerce-mcp@0.1.1"
],
"env": {
"WP_URL": "<WP_URL>",
"WC_CONSUMER_KEY": "<your wc_consumer_key>",
"WC_CONSUMER_SECRET": "<your wc_consumer_secret>"
}
}
}
}
Environment variables
WP_URLrequired Base URL of the WordPress / WooCommerce store (HTTPS)WC_CONSUMER_KEYsecret WooCommerce REST API consumer key (Read permission)WC_CONSUMER_SECRETsecret WooCommerce REST API consumer secret (Read permission)
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
woocommerce-mcp
A small, read-only Model Context Protocol server for WordPress + WooCommerce. It lets Claude (or any MCP client) answer questions about a live store — products, orders, sales, and blog posts — over the official REST APIs. No writes, no plugins to install on the store: it talks to the existing WordPress/WooCommerce REST endpoints.
Built and maintained by WPPoland, a senior WordPress developer working with WordPress since 2006. If you need this wired into a real store stack, we build WooCommerce ERP and API integrations and enterprise e-commerce architecture (headless, integrations, AI-ready data).
Tools
| Tool | What it does | Needs WooCommerce keys |
|---|---|---|
list_products | List / search products (name, sku, price, stock, permalink) | yes |
get_product | Full details for one product by id | yes |
list_orders | Recent orders, newest first, optional status filter | yes |
sales_report | Sales totals for a period (week / month / last_month / year) | yes |
search_posts | Search published blog posts (public WP REST API) | no |
Everything is read-only. The server never creates, edits, or deletes anything in the store.
Install & build
From npm (package name is scoped - the unscoped woocommerce-mcp name is locked on the registry):
npm install -g @wppoland/woocommerce-mcp
# or: npx @wppoland/woocommerce-mcp
From source:
git clone https://github.com/wppoland/woocommerce-mcp.git
cd woocommerce-mcp
npm install
npm run build
Configure
Set three environment variables:
| Var | Required | Example |
|---|---|---|
WP_URL | yes | https://shop.example.com |
WC_CONSUMER_KEY | for wc_* tools | ck_xxx |
WC_CONSUMER_SECRET | for wc_* tools | cs_xxx |
Create the WooCommerce keys in WooCommerce → Settings → Advanced → REST API → Add key with Read permission. search_posts works without keys against any public WordPress site.
The keys are sent to your own store over HTTPS as REST query auth. Use HTTPS, and give the key Read access only.
Use with Claude Desktop / Claude Code
Add to your MCP client config (e.g. claude_desktop_config.json):
{
"mcpServers": {
"woocommerce": {
"command": "node",
"args": ["/absolute/path/to/woocommerce-mcp/dist/index.js"],
"env": {
"WP_URL": "https://shop.example.com",
"WC_CONSUMER_KEY": "ck_xxx",
"WC_CONSUMER_SECRET": "cs_xxx"
}
}
}
}
Then ask things like "What were last month's WooCommerce sales?" or "List the 5 most recent orders that are on hold."
Docs on wppoland.com
- WooCommerce MCP open source (read-only): release and ops guide - npm scope, registry, Glama, and how we ship updates without write tools
Articles (off-site)
Field notes published on DEV (not duplicates of wppoland.com pages):
- A read-only MCP server for WooCommerce: what AI agents actually need from a store
- Syncing a wholesaler's API into WooCommerce without overselling or melting the server
- Twelve months after migrating wppoland.com from WordPress to Astro on Cloudflare Pages
Show HN: discussion
Verify
npm run check # builds, then asserts all five tools register (no network/credentials needed)
Notes
- Node 18+ (uses the built-in
fetch). - Logs go to stderr so they never corrupt the stdio MCP protocol on stdout.
- API errors are surfaced with the store's message; credentials are never echoed.
License
MIT © WPPoland
Frequently asked questions
What is io.github.wppoland/woocommerce-mcp?
Read-only MCP server for WordPress + WooCommerce products, orders, sales, and posts.
How do I install io.github.wppoland/woocommerce-mcp?
It runs on your machine. In Claude Code: claude mcp add woocommerce-mcp -e 'WP_URL=<WP_URL>' -e 'WC_CONSUMER_KEY=<your wc_consumer_key>' -e 'WC_CONSUMER_SECRET=<your wc_consumer_secret>' -- npx -y @wppoland/woocommerce-mcp@0.1.1. For other clients, paste the JSON configuration from this page into their MCP settings.
Does io.github.wppoland/woocommerce-mcp need an API key?
Yes. It expects WP_URL, WC_CONSUMER_KEY, WC_CONSUMER_SECRET, which you set in its configuration.
Is io.github.wppoland/woocommerce-mcp open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains io.github.wppoland/woocommerce-mcp?
It is published by wppoland. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.