WooCommerce MCP服务器
用于将WooCommerce与Claude和其他AI助手集成的模型上下文协议(MCP)服务器。
概述
该服务器为AI助手提供了与WooCommerce商店交互的工具,使他们能够:
- 使用可选筛选获取最近的订单
- 按ID检索特定订单的详细信息
服务器实现 模型上下文协议 规范,使其与Claude for Desktop等支持MCP的AI助手兼容。
先决条件
- Node.js v18或更高版本
- 使用REST API访问的WooCommerce商店
- WooCommerce API证书(消费者密钥和机密)
安装
- 克隆此存储库:
git clone https://github.com/techspawn/woocommerce-mcp-server.git
cd woocommerce-mcp-server- 安装依赖项:
npm install配置
您需要配置WooCommerce API凭据。您可以通过以下方式做到这一点:
- 运行服务器时设置环境变量:
WOOCOMMERCE_URL=https://your-store.com \
WOOCOMMERCE_CONSUMER_KEY=your-consumer-key \
WOOCOMMERCE_CONSUMER_SECRET=your-consumer-secret \
node index.js- 或者通过编辑中的默认值
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 for Desktop集成
要将此服务器连接到Claude for Desktop,请执行以下操作:
- 确保你有 Claude桌面版 安装
- 打开位于以下位置的Claude Desktop配置文件:
- 窗户: %USERPROFILE%\AppData\Roaming\Claude\claude_desktop_config.json - macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - Linux: ~/.config/Claude/claude_desktop_config.json
- 添加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"
}
}
}
}- 保存文件并重新启动Claude for Desktop
可用工具
getRecentOrders
从WooCommerce商店获取最近订单的列表。
参数:
status(可选):按状态筛选订单(例如,“处理中”、“已完成”、“待处理”)limit(可选,默认值:5):要退货的订单数
getOrderById
检索特定订单的详细信息。
参数:
id:要检索的订单ID
用JavaScript构建自己的MCP服务器
本节提供使用JavaScript/Node.js创建自己的MCP服务器的指南。
1.建立一个新项目
mkdir my-mcp-server
cd my-mcp-server
npm init -y2.安装依赖项
npm install @modelcontextprotocol/sdk axios zod3.创建服务器文件(index.js)
从基本结构开始:
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.使您的package.json ES模块兼容
{
"type": "module",
"scripts": {
"start": "node index.js"
}
}5.定义工具
MCP工具由三个部分定义:
- 名称:工具的唯一标识符
- 参数:输入参数的模式(使用Zod)
- Handler:异步函数,处理输入并返回结果
例子:
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.本地测试
您可以使用stdio传输在本地测试MCP服务器:
node index.js7.调试提示
- 使用
console.error()用于调试,而不是console.log()这会干扰stdio传输 - 检查Claude for Desktop中的日志是否有错误
- 确保您的工具处理程序正确处理异常
资源
许可证
麻省理工学院
