Sponsored by Deepsite.site

WooCommerce MCP Server

Created By
opestro9 months ago
Content

WooCommerce MCP Server

A Model Context Protocol (MCP) server for integrating WooCommerce with Claude and other AI assistants.

Overview

This server provides tools for AI assistants to interact with a WooCommerce store, allowing them to:

  • Fetch recent orders with optional filtering
  • Retrieve detailed information about specific orders by ID

The server implements the Model Context Protocol specification, making it compatible with MCP-enabled AI assistants like Claude for Desktop.

Prerequisites

  • Node.js v18 or higher
  • A WooCommerce store with REST API access
  • WooCommerce API credentials (consumer key and secret)

Installation

  1. Clone this repository:
git clone https://github.com/techspawn/woocommerce-mcp-server.git
cd woocommerce-mcp-server
  1. Install dependencies:
npm install

Configuration

You need to configure your WooCommerce API credentials. You can do this by:

  1. Setting environment variables when running the server:
WOOCOMMERCE_URL=https://your-store.com \
WOOCOMMERCE_CONSUMER_KEY=your-consumer-key \
WOOCOMMERCE_CONSUMER_SECRET=your-consumer-secret \
node index.js
  1. Or by editing the default values in the index.js file:
const woocommerceConfig = {
  url: process.env.WOOCOMMERCE_URL || 'https://your-store.com',
  consumerKey: process.env.WOOCOMMERCE_CONSUMER_KEY || 'your-consumer-key',
  consumerSecret: process.env.WOOCOMMERCE_CONSUMER_SECRET || 'your-consumer-secret',
  version: 'wc/v3'
};

Running the Server

To run the server directly:

node index.js

Or using the npm script:

npm start

Integration with Claude for Desktop

To connect this server to Claude for Desktop:

  1. Make sure you have Claude for Desktop installed

  2. Open your Claude Desktop configuration file located at:

    • Windows: %USERPROFILE%\AppData\Roaming\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  3. Add your WooCommerce MCP server configuration (create the file if it doesn't exist):

{
  "mcpServers": {
    "woocommerce": {
      "command": "node",
      "args": [
        "/ABSOLUTE/PATH/TO/woocommerce-mcp-server/index.js"
      ],
      "env": {
        "WOOCOMMERCE_URL": "https://your-store.com",
        "WOOCOMMERCE_CONSUMER_KEY": "your-consumer-key",
        "WOOCOMMERCE_CONSUMER_SECRET": "your-consumer-secret"
      }
    }
  }
}
  1. Save the file and restart Claude for Desktop

Available Tools

getRecentOrders

Fetches a list of recent orders from your WooCommerce store.

Parameters:

  • status (optional): Filter orders by status (e.g., "processing", "completed", "on-hold")
  • limit (optional, default: 5): Number of orders to return

getOrderById

Retrieves detailed information about a specific order.

Parameters:

  • id: The order ID to retrieve

Building Your Own MCP Server with JavaScript

This section provides a guide to creating your own MCP server using JavaScript/Node.js.

1. Set up a new project

mkdir my-mcp-server
cd my-mcp-server
npm init -y

2. Install dependencies

npm install @modelcontextprotocol/sdk axios zod

3. Create your server file (index.js)

Start with the basic structure:

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

// Initialize server
const server = new McpServer({
  name: "My MCP Service",
  version: "1.0.0",
});

// Define and register your tools
server.tool(
  "myToolName",
  {
    // Define parameters using Zod schemas
    param1: z.string().describe("Description of param1"),
    param2: z.number().optional().describe("Optional parameter")
  },
  async ({ param1, param2 }) => {
    // Tool implementation logic here
    const result = `Processed ${param1} with value ${param2 || 'none'}`;
    
    // Return result in the expected format
    return {
      content: [
        {
          type: "text",
          text: result
        }
      ]
    };
  }
);

// Connect the server
const transport = new StdioServerTransport();
await server.connect(transport);

4. Make your package.json ES module compatible

{
  "type": "module",
  "scripts": {
    "start": "node index.js"
  }
}

5. Define tools

MCP tools are defined with three components:

  • Name: A unique identifier for the tool
  • Parameters: Schema for input parameters (using Zod)
  • Handler: Async function that processes the inputs and returns results

Example:

server.tool(
  "calculateTotal",
  {
    items: z.array(
      z.object({
        name: z.string(),
        price: z.number(),
        quantity: z.number().int().positive()
      })
    ).describe("Array of items to calculate total for")
  },
  async ({ items }) => {
    const total = items.reduce((sum, item) => sum + (item.price * item.quantity), 0);
    
    return {
      content: [
        {
          type: "text",
          text: `Total: $${total.toFixed(2)}`
        }
      ]
    };
  }
);

6. Testing locally

You can test your MCP server locally using the stdio transport:

node index.js

7. Debugging tips

  • Use console.error() for debugging, not console.log() which interferes with stdio transport
  • Check the logs in Claude for Desktop for errors
  • Ensure your tool handlers properly handle exceptions

Resources

License

MIT

Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
Serper MCP ServerA Serper MCP Server
Tavily Mcp
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
DeepChatYour AI Partner on Desktop
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright McpPlaywright MCP server
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
Context7Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
WindsurfThe new purpose-built IDE to harness magic
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
ChatWiseThe second fastest AI chatbot™
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Amap Maps高德地图官方 MCP Server
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
CursorThe AI Code Editor