npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@plugix/mcp-woocommerce

v0.1.0

Published

MCP Server for WooCommerce - Products, Orders, WordPress integration

Readme

@plugix/mcp-woocommerce

MCP server for WooCommerce store management and e-commerce operations.

Features

  • get_products - List products with filters (category, status, stock)
  • get_orders - List orders with filters (status, customer, date range)
  • get_customers - List customers with search and filters
  • get_categories - List product categories
  • update_product - Update product details (with confirmation)
  • create_product - Create new products (with confirmation)
  • update_stock - Update stock levels (with confirmation)
  • get_reports - Sales and top sellers reports

Installation

npm install @plugix/mcp-woocommerce

Or run directly:

npx @plugix/mcp-woocommerce

Configuration

Set environment variables:

# Plugix API connection
API_URL=wss://api.plugix.ai
API_TOKEN=plx_live_your_token_here

# WooCommerce credentials
WOOCOMMERCE_URL=https://your-store.com
WOOCOMMERCE_CONSUMER_KEY=ck_your_consumer_key
WOOCOMMERCE_CONSUMER_SECRET=cs_your_consumer_secret

# Optional
INSTANCE_ID=my-store-1
INSTANCE_NAME=My WooCommerce Store

Getting WooCommerce API Keys

  1. In WordPress admin, go to WooCommerce > Settings > Advanced > REST API
  2. Click Add key
  3. Set Description (e.g., "Plugix MCP Server")
  4. Set User (admin user recommended)
  5. Set Permissions to Read/Write
  6. Click Generate API key
  7. Copy the Consumer key and Consumer secret

Usage

Development

npm run dev

Production

npm run build
npm start

Docker

docker build -t plugix-mcp-woocommerce .
docker run --env-file .env plugix-mcp-woocommerce

Claude Desktop Integration

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "woocommerce": {
      "command": "npx",
      "args": ["@plugix/mcp-woocommerce"],
      "env": {
        "API_URL": "wss://api.plugix.ai",
        "API_TOKEN": "plx_live_your_token",
        "WOOCOMMERCE_URL": "https://your-store.com",
        "WOOCOMMERCE_CONSUMER_KEY": "ck_xxx",
        "WOOCOMMERCE_CONSUMER_SECRET": "cs_xxx"
      }
    }
  }
}

Tools Reference

get_products

List products with optional filters.

Parameters:

| Name | Type | Description | |------|------|-------------| | category | number | Filter by category ID | | search | string | Search term for product name or SKU | | status | string | Filter: draft, pending, private, publish | | stock_status | string | Filter: instock, outofstock, onbackorder | | per_page | number | Products per page (default: 20, max: 100) | | page | number | Page number (default: 1) |

Example:

{
  "name": "get_products",
  "arguments": {
    "status": "publish",
    "stock_status": "instock",
    "per_page": 50
  }
}

get_orders

List orders with optional filters.

Parameters:

| Name | Type | Description | |------|------|-------------| | status | string | Filter: pending, processing, on-hold, completed, cancelled, refunded, failed | | customer | number | Filter by customer ID | | after | string | Orders after this date (ISO 8601) | | before | string | Orders before this date (ISO 8601) | | per_page | number | Orders per page (default: 20, max: 100) | | page | number | Page number (default: 1) |

Example:

{
  "name": "get_orders",
  "arguments": {
    "status": "processing",
    "after": "2024-01-01T00:00:00Z"
  }
}

get_customers

List customers with optional filters.

Parameters:

| Name | Type | Description | |------|------|-------------| | search | string | Search by name or username | | email | string | Filter by exact email | | per_page | number | Customers per page (default: 20, max: 100) | | page | number | Page number (default: 1) |

get_categories

List product categories.

Parameters:

| Name | Type | Description | |------|------|-------------| | parent | number | Filter by parent ID (0 for top-level) | | hide_empty | boolean | Hide categories with no products | | per_page | number | Categories per page (default: 100) |

update_product

Update an existing product. Requires confirmation.

Parameters:

| Name | Type | Required | Description | |------|------|----------|-------------| | id | number | Yes | Product ID | | name | string | No | New product name | | description | string | No | New description (HTML allowed) | | short_description | string | No | New short description | | regular_price | string | No | New regular price | | sale_price | string | No | New sale price | | status | string | No | Product status | | confirmed | boolean | Yes | Must be true to update |

Example:

{
  "name": "update_product",
  "arguments": {
    "id": 123,
    "description": "<p>Updated product description</p>",
    "regular_price": "29.99",
    "confirmed": true
  }
}

create_product

Create a new product. Requires confirmation.

Parameters:

| Name | Type | Required | Description | |------|------|----------|-------------| | name | string | Yes | Product name | | type | string | No | simple, variable, grouped, external (default: simple) | | sku | string | No | Product SKU | | regular_price | string | No | Regular price | | description | string | No | Description (HTML allowed) | | short_description | string | No | Short description | | categories | array | No | Array of category objects: [{"id": 1}] | | status | string | No | Status (default: draft) | | confirmed | boolean | Yes | Must be true to create |

Example:

{
  "name": "create_product",
  "arguments": {
    "name": "New Product",
    "regular_price": "49.99",
    "description": "<p>Product description here</p>",
    "categories": [{"id": 15}],
    "confirmed": true
  }
}

update_stock

Update product stock quantity. Requires confirmation.

Parameters:

| Name | Type | Required | Description | |------|------|----------|-------------| | id | number | Yes | Product ID | | stock_quantity | number | Yes | New stock quantity | | stock_status | string | No | instock, outofstock, onbackorder | | confirmed | boolean | Yes | Must be true to update |

Example:

{
  "name": "update_stock",
  "arguments": {
    "id": 123,
    "stock_quantity": 50,
    "confirmed": true
  }
}

get_reports

Get sales reports and analytics.

Parameters:

| Name | Type | Required | Description | |------|------|----------|-------------| | type | string | Yes | Report type: sales, top_sellers | | period | string | No | week, month, last_month, year | | date_min | string | No | Start date (YYYY-MM-DD) | | date_max | string | No | End date (YYYY-MM-DD) |

Example:

{
  "name": "get_reports",
  "arguments": {
    "type": "sales",
    "period": "month"
  }
}

WooCommerce API Permissions

The API keys need the following permissions:

  • Products: Read/Write (for get_products, update_product, create_product, update_stock)
  • Orders: Read (for get_orders)
  • Customers: Read (for get_customers)
  • Reports: Read (for get_reports)

For read-only access, create keys with Read permission only.

Testing

npm test

License

MIT