这是一个用于将WooCommerce与Claude和其他AI助手集成的模型上下文协议(MCP)服务器。
该服务器提供了让AI助手与WooCommerce商店进行交互的工具,使它们能够:
该服务器实现了模型上下文协议规范,使其与像桌面版Claude这样的MCP启用的AI助手兼容。
git clone https://github.com/techspawn/woocommerce-mcp-server.git
cd woocommerce-m
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:
确保已安装Claude for Desktop
打开位于以下位置的Claude Desktop配置文件:
%USERPROFILE%\AppData\Roaming\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.json~/.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"
}
}
}
}
getRecentOrders从您的WooCommerce商店获取最近的订单列表。
参数:
status(可选):按状态筛选订单(例如,“processing”,“completed”,“on-hold”)limit(可选,默认值:5):返回的订单数量getOrderById根据ID检索特定订单的详细信息。
参数:
id:要检索的订单ID本节提供了一个使用JavaScript/Node.js创建自己的MCP服务器的指南。
mkdir my-mcp-server
cd my-mcp-server
npm init -y
npm install @modelcontextprotocol/sdk axios zod
从基本结构开始:
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);
{
"type": "module",
"scripts": {
"start": "node index.js"
}
}
MCP工具由三个部分组成:
示例:
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)}`
}
]
};
}
);
您可以使用stdio传输在本地测试您的MCP服务器:
node index.js
console.error()进行调试,而不是干扰stdio传输的console.log()MIT