返回市场
WooCommerce MCP 服务器

WooCommerce MCP 服务器

作者:opestro4 星标更新:2025-04-03

项目介绍

WooCommerce MCP Server

这是一个用于将WooCommerce与Claude和其他AI助手集成的模型上下文协议(MCP)服务器。

概述

该服务器提供了让AI助手与WooCommerce商店进行交互的工具,使它们能够:

  • 获取最近的订单,可选过滤条件
  • 根据ID检索特定订单的详细信息

该服务器实现了模型上下文协议规范,使其与像桌面版Claude这样的MCP启用的AI助手兼容。

预备条件

  • Node.js v18或更高版本
  • 具有REST API访问权限的WooCommerce商店
  • WooCommerce API凭证(消费者密钥和秘密)

安装

  1. 克隆此仓库:
git clone https://github.com/techspawn/woocommerce-mcp-server.git
cd woocommerce-m
  1. 安装依赖项:
npm install

配置

您需要配置您的WooCommerce API凭证。您可以这样做:

  1. 在运行服务器时设置环境变量:
WOOCOMMERCE_URL=https://your-store.com \
WOOCOMMERCE_CONSUMER_KEY=your-consumer-key \
WOOCOMMERCE_CONSUMER_SECRET=your-consumer-secret \
node index.js
  1. 或者通过编辑index.js文件中的默认值:
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'
};

运行服务器

要直接运行服务器:

node index.js

或者使用npm脚本:

npm start

与桌面版Claude的集成

要将此服务器连接到桌面版Claude:

  1. 确保已安装Claude for Desktop

  2. 打开位于以下位置的Claude Desktop配置文件:

    • 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. 添加您的WooCommerce MCP服务器配置(如果文件不存在,请创建它):

{
  "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. 保存文件并重启桌面版Claude

可用工具

getRecentOrders

从您的WooCommerce商店获取最近的订单列表。

参数:

  • status(可选):按状态筛选订单(例如,“processing”,“completed”,“on-hold”)
  • limit(可选,默认值:5):返回的订单数量

getOrderById

根据ID检索特定订单的详细信息。

参数:

  • id:要检索的订单ID

使用JavaScript构建自己的MCP服务器

本节提供了一个使用JavaScript/Node.js创建自己的MCP服务器的指南。

1. 设置新项目

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

2. 安装依赖项

npm install @modelcontextprotocol/sdk axios zod

3. 创建服务器文件(index.js)

从基本结构开始:

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

// 初始化服务器
const server = new McpServer({
  name: "My MCP Service",
  version: "1.0.0",
});

// 定义并注册您的工具
server.tool(
  "myToolName",
  {
    // 使用Zod模式定义参数
    param1: z.string().describe("param1的描述"),
    param2: z.number().optional().describe("可选参数")
  },
  async ({ param1, param2 }) => {
    // 工具实现逻辑
    const result = `处理了${param1},值为${param2 || '无'}`;
    
    // 返回结果的预期格式
    return {
      content: [
        {
          type: "text",
          text: result
        }
      ]
    };
  }
);

// 连接服务器
const transport = new StdioServerTransport();
await server.connect(transport);

4. 使package.json兼容ES模块

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

5. 定义工具

MCP工具由三个部分组成:

  • 名称:工具的唯一标识符
  • 参数:输入参数的模式(使用Zod)
  • 处理器:异步函数,处理输入并返回结果

示例:

server.tool(
  "calculateTotal",
  {
    items: z.array(
      z.object({
        name: z.string(),
        price: z.number(),
        quantity: z.number().int().positive()
      })
    ).describe("要计算总价的商品数组")
  },
  async ({ items }) => {
    const total = items.reduce((sum, item) => sum + (item.price * item.quantity), 0);
    
    return {
      content: [
        {
          type: "text",
          text: `总价: $${total.toFixed(2)}`
        }
      ]
    };
  }
);

6. 本地测试

您可以使用stdio传输在本地测试您的MCP服务器:

node index.js

7. 调试技巧

  • 使用console.error()进行调试,而不是干扰stdio传输的console.log()
  • 在桌面版Claude的日志中检查错误
  • 确保您的工具处理器正确处理异常

资源

许可证

MIT