mcpField
W
WooCommerce MCP

WooCommerce MCP

本地服务
sadrmanesh.github.io商业与营销15 天前更新

关于 WooCommerce MCP

WooCommerce MCP 通过 REST API 将 MCP 客户端连接到一个或多个 WooCommerce 商店。它涵盖商品、订单管理和分析等操作,并要求写入操作先预览再确认,还可记录审计日志。

主要功能

  1. 01管理商品、订单、退款和库存
  2. 02处理客户、优惠券和 Webhook
  3. 03查看销售与低库存分析
  4. 04预览并确认写入操作
  5. 05记录写入尝试审计日志
  6. 06通过 stdio 或 streamable HTTP 提供 MCP

适用场景

  1. 01浏览商品并处理订单
  2. 02查看销售和库存水平
  3. 03制定促销并划分客户群
  4. 04通过预览和审计应用商店变更

MCP 相关

该 MCP 服务向客户端开放 WooCommerce 工具、资源和提示词。它可通过 stdio 在本地运行,也可通过 streamable HTTP 远程运行,并支持 bearer token 或 OAuth 2.0 身份验证。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sadrmanesh-woocommerce": {
"command": "npx",
"args": [
"-y",
"@sadrmanesh/woocommerce-mcp"
],
"env": {
"WOOCOMMERCE_URL": "<WOOCOMMERCE_URL>",
"WOOCOMMERCE_CONSUMER_KEY": "<WOOCOMMERCE_CONSUMER_KEY>",
"WOOCOMMERCE_CONSUMER_SECRET": "<WOOCOMMERCE_CONSUMER_SECRET>",
"WOOCOMMERCE_READ_ONLY": "<WOOCOMMERCE_READ_ONLY>",
"WOOCOMMERCE_REDACT_PII": "<WOOCOMMERCE_REDACT_PII>",
"WOOCOMMERCE_TOOLS_DENY": "<WOOCOMMERCE_TOOLS_DENY>"
}
}
}
}
启动命令npx -y @sadrmanesh/woocommerce-mcp
需要配置的环境变量
WOOCOMMERCE_URLStore origin, such as https://store.example.com
WOOCOMMERCE_CONSUMER_KEY密钥WooCommerce REST API consumer key (ck_...)
WOOCOMMERCE_CONSUMER_SECRET密钥WooCommerce REST API consumer secret (cs_...)
WOOCOMMERCE_READ_ONLYRefuse every write tool. Set to false to allow writes
WOOCOMMERCE_REDACT_PIIMask customer names, emails, phones, and addresses in results
WOOCOMMERCE_TOOLS_DENYComma-separated tool names or patterns to hide, such as delete_*

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@sadrmanesh/woocommerce-mcp0.6.0

工具

47

收录的工具列表 · 更新于 1 周前

此工具无需参数。

详细介绍

woocommerce-mcp

CI License: MIT Node.js Docs npm DOI MCP Registry Glama MCP server score Listed on mcpservers.org WooCommerce MCP on mcprush M8ven Score M8ven Verified

一个用于通过 WooCommerce REST API 操作一个或多个 WooCommerce 商店的模型上下文协议服务。MCP 客户端可以浏览商品目录、处理和履行订单、发起退款、批量调整价格和库存、开展促销活动、细分客户、响应 Webhook,并查看销售分析。每项更改都会在应用前预览,也可以写入审计日志。

它可通过 stdio 在本地运行,也可通过可流式传输的 HTTP 作为远程服务运行,并支持 bearer token 或 OAuth 2.0 身份验证;此外还以 Docker 镜像的形式发布在 GitHub Container Registry 上。

文档: https://sadrmanesh.github.io/woocommerce-mcp/ · 工具浏览器: Hugging Face Space

延伸阅读: Dev.to 上的面向 Agent 的安全写入工具:在 WooCommerce MCP 服务中预览、确认、审计和处理过期预览 · LinkedIn 上的预览、确认、审计 · 更新:Dev.to 上的一周读者反馈:我的四款 AI 商业工具有哪些变化 · LinkedIn 上的读者反馈让我学到什么:如何构建适用于商业场景、可安全用于生产环境的 AI 工具

该项目已列入官方 MCP Registry,条目为 io.github.sadrmanesh/woocommerce-mcp,也已列入 Glama 和 mcpservers.org。

Glama 上的 woocommerce-mcp MCP 服务 WooCommerce MCP 服务

目录

亮点

  • 多店铺。 可配置任意数量的店铺,并在每次调用时通过 store 选择一个。每个店铺都有自己的凭据和只读开关。
  • 默认安全。 店铺默认为只读,除非你允许写入。之后,写入工具会返回确切 REST 请求的预览;只有再次调用并设置 confirm: true 时才会执行。如果自预览以来参数或用于计算变更的店铺数据发生变化,确认将被拒绝。dryRun: true 始终只生成预览。
  • 签名审批(可选)。 设置 WOOCOMMERCE_APPROVAL_SECRET 后,确认操作还需要一个短时有效、仅可使用一次的令牌。该令牌必须由 Agent 无法触及的人员针对该预览准确签名,例如使用 woocommerce-mcp approve <previewId> 进行签名。Agent 不能批准自己的写入操作。
  • 审计日志。 每次写入尝试记录一行 JSON:已执行、已预览、已拒绝或失败,并包含工具、店铺、参数、调用方以及预览 ID;每项已确认的写入都可通过该 ID关联到对应预览。
  • 退款和批量操作。 支持部分退款和按商品行退款、最多更新 100 个产品的批量操作,以及百分比或固定金额调价。
  • 分析。 按日、周或月统计销售额,包含退款、平均订单金额、热销产品和付款方式;还提供涵盖变体商品的低库存报告。
  • 促销和客户。 提供优惠券效果、定时促销,以及 VIP、回头客和高风险等客户细分。
  • 履约。 支持订单备注、配送跟踪,以及通过单个步骤完成履约并向客户发送邮件。
  • Webhooks。 管理店铺 Webhooks 并接收签名投递内容,可通过 MCP 资源读取。
  • 配送和税费。 读取配送区域、配送方式、税率和税类。
  • 隐私与控制。 可选的个人身份信息(PII)脱敏功能,以及按部署或店铺设置工具允许列表和拒绝列表。
  • 降低店铺负担。 按店铺限流、使用退避和抖动机制重试,并可选择启用读取缓存。
  • 支持远程部署。 支持 Streamable HTTP,可使用静态 bearer 令牌(完全权限或只读权限),或 RFC 7662 令牌内省;支持 RFC 9728 受保护资源元数据、Host 和 Origin 检查,以及健康检查端点。
  • MCP 资源和提示词。 通过 URI 读取产品和订单,并启动常见工作流,例如销售简报或补货计划。
  • 可观测性。 可为每次工具调用和 WooCommerce 请求记录 OpenTelemetry 跟踪。
  • 经过充分测试。 使用严格的 TypeScript、对每项输入进行 Zod 验证,并针对模拟的 WooCommerce API 进行测试。

快速开始

需要 Node.js 20 或更高版本。

npm install -g @sadrmanesh/woocommerce-mcp

或者运行 GitHub Container Registry 中的 Docker 镜像(支持 linux/amd64 和 linux/arm64,标签为 X.Y.Z、X.Y 和 latest)。Docker Hub 上也提供相同镜像,地址为 Docker Hub,名称为 sadrmanesh/woocommerce-mcp:

docker run --rm -i -e MCP_TRANSPORT=stdio \
  -e WOOCOMMERCE_URL -e WOOCOMMERCE_CONSUMER_KEY -e WOOCOMMERCE_CONSUMER_SECRET \
  ghcr.io/sadrmanesh/woocommerce-mcp:0.6.0

npm 软件包也发布在 GitHub Packages 上;.npmrc 配置请参阅安装选项。npmjs.com 仍是主要注册表。

或者从代码检出目录运行:

git clone https://github.com/sadrmanesh/woocommerce-mcp.git
cd woocommerce-mcp
npm install
npm run build
cp .env.example .env

在 WooCommerce > Settings > Advanced > REST API 下创建 REST API 密钥。店铺为只读时使用 Read 密钥,只有启用写入时才使用 Read/Write 密钥。WordPress 固定链接不能设置为 "Plain",否则 /wp-json/ 将无法解析。

WOOCOMMERCE_URL=https://store.example.com \
WOOCOMMERCE_CONSUMER_KEY=ck_... \
WOOCOMMERCE_CONSUMER_SECRET=cs_... \
woocommerce-mcp

随后,该进程会通过 stdin 和 stdout 提供 MCP 服务。日志会输出到 stderr。在代码检出目录中运行 npm start 时,会从工作目录加载 .env,且不会覆盖已设置的环境变量。

连接 MCP 客户端

大多数宿主程序都接受如下所示的 mcpServers 映射。密钥应放在 env 中,绝不要放在 args 中。Docker、Smithery 和 MCP Registry 的安装说明见 docs/install.md。

stdio
{
  "mcpServers": {
    "woocommerce": {
      "command": "npx",
      "args": ["-y", "@sadrmanesh/woocommerce-mcp"],
      "env": {
        "WOOCOMMERCE_URL": "https://store.example.com",
        "WOOCOMMERCE_CONSUMER_KEY": "ck_your_consumer_key",
        "WOOCOMMERCE_CONSUMER_SECRET": "cs_your_consumer_secret"
      }
    }
  }
}

从检出目录启动时,使用 "command": "node" 和 "args": ["/absolute/path/to/woocommerce-mcp/dist/index.js"]。

Streamable HTTP
MCP_TRANSPORT=http MCP_HTTP_AUTH_TOKENS="$(openssl rand -base64 32)" woocommerce-mcp
{
  "mcpServers": {
    "woocommerce": {
      "type": "http",
      "url": "https://mcp.example.com/mcp",
      "headers": { "Authorization": "Bearer <token>" }
    }
  }
}

未进行身份验证时,HTTP 端点仅绑定到环回地址。有关令牌、作用域和 OAuth 内省,请参阅 docs/security.md。

工具、资源和提示词

除 woocommerce_list_stores 外,每个工具都接受可选的 store ID。若未提供,则使用默认商店。

要在浏览器中查看所有工具及其完整输入架构,并构建 tools/call 请求,请打开 Hugging Face 上的工具探索器。

类别读取工具写入工具
商店list_stores
产品list_products、search_products、get_productcreate_product、update_product、bulk_update_products、bulk_adjust_prices
订单list_orders、get_order、list_order_notesupdate_order_status、add_order_note、delete_order_note
履约get_order_trackingfulfill_order
退款list_refunds、get_refundcreate_refund
客户list_customers、get_customer、customer_orders、customer_segmentsupdate_customer
库存get_stock、low_stock_reportupdate_stock
优惠券和销售list_coupons、get_coupon、coupon_performancecreate_coupon、update_coupon、delete_coupon、schedule_sale、end_sale
Webhooklist_webhooks、get_webhook、list_webhook_eventscreate_webhook、update_webhook、delete_webhook
配送和税费list_shipping_zones、list_shipping_methods、list_tax_rates、list_tax_classes
分析get_store_summary、sales_analytics

每个名称都以 woocommerce_ 开头,例如 woocommerce_customer_segments。总计 47 个工具:28 个读取工具和 19 个写入工具。

资源

URI内容
woocommerce://stores已配置的商店
woocommerce://stores/{store}/products/{id}一个产品
woocommerce://stores/{store}/orders/{id}一个订单
woocommerce://stores/{store}/events最近的 Webhook 投递
woocommerce://stores/{store}/events/{id}一次包含其负载的 Webhook 投递

提示词: sales_briefing、restock_plan、order_triage 和 price_change_review。

完整的参数和响应详情见 docs/tools.md。

安全写入

  1. 只读存储。 只有在 WOOCOMMERCE_READ_ONLY=false(单个存储)或 "readOnly": false(存储列表)时,存储才接受写入。否则,写入工具会在联系存储之前以 read_only 失败。

  2. 确认。 当 WOOCOMMERCE_REQUIRE_CONFIRMATION=true(默认值)时,首次调用会返回计划中的请求,且不会进行任何更改:

    {
      "status": "confirmation_required",
      "store": "default",
      "previewId": "pv_4f1c9a2e7b3d0856",
      "message": "The change was NOT applied. ...",
      "request": { "method": "PUT", "path": "orders/1015", "query": {}, "body": { "status": "completed" } }
    }
    

    使用相同参数再次调用该工具并设置 confirm: true,即可应用更改。即使关闭了确认,dryRun: true 也始终只会预览。每次预览都会附带一个 previewId;将其与 confirm: true 一并传回,如果参数自预览后发生了变化,服务会以 preview_mismatch 拒绝调用。

    对于根据存储数据计算写入内容的工具,例如将价格提高 10%,会在预览时解析数据:预览会在 preconditions 下列出读取的每条记录及其当前值(before)和将要写入的绝对值(after),而 previewId 会增加第二部分,用于对这些数据生成指纹。确认时,服务会再次读取相同数据;如果数据发生变化(例如期间价格被编辑),调用会以 stale_preview 拒绝,且不会发送任何内容。关于覆盖范围,请参阅过期预览。

  3. 权限范围。 通过经过身份验证的 HTTP 调用时,写入工具还需要 woocommerce:write 权限范围。只读令牌永远无法更改存储。

  4. 审计。 将 WOOCOMMERCE_AUDIT_LOG 设置为文件路径或 stderr:

    {"time":"2026-10-30T14:02:11.120Z","tool":"woocommerce_update_order_status","store":"default","outcome":"applied","arguments":{"id":1015,"status":"completed"},"client":"static:3f9a1c2b7d10","previewId":"pv_4f1c9a2e7b3d0856","previewMatch":true}
    
  5. 签名审批(可选)。 预览 ID 绑定的是确认的内容,而非确认者的身份:默认情况下,Agent 可以在同一轮中请求预览并确认。设置 WOOCOMMERCE_APPROVAL_SECRET 可要求每次确认都提供 approval 令牌。该令牌是针对确切的 previewId(包括状态部分)、工具、存储和过期时间生成的 HMAC-SHA256 签名,因此不能用于其他参数或已更改的存储。令牌只能使用一次,且默认 10 分钟后过期。人员审核预览后为其签名:

    woocommerce-mcp approve pv_e2a742fe51c807fc_a3510d17b8a51b93 --by "Naser"
    

    该命令会显示审计日志中预览的更改,询问是否确认,并打印令牌,随后 Agent 将令牌作为 approval 与 confirm: true 一并传回。缺少、无效、过期、不匹配或已使用的令牌会分别以 approval_required、approval_invalid、approval_expired、approval_mismatch 和 approval_replayed 拒绝。令牌格式已有文档说明,因此审批页面或 webhook 也可以生成签名。

    请注意:持有密钥的人都可以批准,因此请勿将其放入 MCP 客户端配置、提示词,或任何 Agent 可以使用 shell 的主机中。已使用的令牌按进程存储在内存中。不设置密钥时,行为与 0.5.0 完全相同。请参阅签名审批。

除非通过 apiRefund: true 请求支付网关退还款项,否则 woocommerce_create_refund 创建的退款会记为手动退款。

配置

以下是最常用的设置。所有变量(包括多店铺文件格式)都列在 docs/configuration.md 和 .env.example 中。

变量默认值说明
WOOCOMMERCE_URL店铺源地址,不含 /wp-json
WOOCOMMERCE_CONSUMER_KEY / _SECRETREST API 凭据
WOOCOMMERCE_READ_ONLYtrue允许对单个店铺执行写入
WOOCOMMERCE_STORES_FILE / WOOCOMMERCE_STORES多个店铺,使用 JSON 文件或内联 JSON
WOOCOMMERCE_DEFAULT_STORE第一个店铺调用未指定 store 时使用的店铺
WOOCOMMERCE_REQUIRE_CONFIRMATIONtrue预览写入操作,直到设置 confirm: true
WOOCOMMERCE_AUDIT_LOG关闭文件路径或 stderr
WOOCOMMERCE_APPROVAL_SECRET关闭每次确认写入时都要求提供签名审批令牌。请勿让 Agent 接触此令牌
WOOCOMMERCE_APPROVAL_TTL_SECONDS600服务接受的审批令牌最长有效期
MCP_TRANSPORTstdiostdio 或 http
MCP_HTTP_HOST / _PORT / _PATH127.0.0.1 / 3000 / /mcpHTTP 监听器
MCP_HTTP_AUTH_TOKENS完全访问权限的 bearer 令牌
MCP_HTTP_AUTH_READ_TOKENS只读 bearer 令牌
WOOCOMMERCE_REDACT_PIIfalse在结果中屏蔽姓名、电子邮件、电话号码和地址
WOOCOMMERCE_TOOLS_ALLOW / _DENY要公开或隐藏的工具名称或 * 模式
WOOCOMMERCE_WEBHOOK_SECRET为店铺启用 webhook 接收器
WOOCOMMERCE_RATE_LIMIT / _BURST5 / 10每个店铺每秒请求数及突发请求数
WOOCOMMERCE_CACHE_TTL_MS0(关闭)缓存读取响应
WOOCOMMERCE_OTEL_ENABLEDfalse导出 OpenTelemetry 跟踪数据

多店铺示例(stores.json):

{
  "defaultStore": "eu",
  "stores": [
    { "id": "eu", "label": "EU shop", "url": "https://eu.example.com", "consumerKeyEnv": "EU_KEY", "consumerSecretEnv": "EU_SECRET" },
    { "id": "us", "url": "https://us.example.com", "consumerKeyEnv": "US_KEY", "consumerSecretEnv": "US_SECRET", "readOnly": false }
  ]
}

部署

cp .env.example .env    # add store credentials and MCP_HTTP_AUTH_TOKENS
docker compose up -d --build
curl http://127.0.0.1:3000/healthz

该镜像以非 root 用户身份运行,监听 3000 端口,并带有健康检查。远程使用时,请将其置于以 TLS 终止的反向代理后。详见 docs/deployment.md。

开发

npm install
npm run check   # lint, typecheck, tests, build

测试针对模拟的 WooCommerce API 运行,绝不会调用线上店铺。详见 CONTRIBUTING.md。

文档

完整文档站点位于 https://sadrmanesh.github.io/woocommerce-mcp/。本仓库中也包含相同的指南:

技术报告

DOI

技术报告:WooCommerce Model Context Protocol Server - A Multi-Store, Previewed Safe-Write Architecture for Autonomous AI Agents in E-Commerce。M. N. Sadrmanesh,Zenodo,2026 年。https://doi.org/10.5281/zenodo.23897615 另见 ResearchGate 和 Academia.edu。

@techreport{sadrmanesh2026woocommercemcp,
  author      = {Sadrmanesh, Mohammad Naser},
  title       = {Technical Report: WooCommerce Model Context Protocol Server - A Multi-Store, Previewed Safe-Write Architecture for Autonomous AI Agents in E-Commerce},
  institution = {Zenodo},
  year        = {2026},
  version     = {1.0},
  doi         = {10.5281/zenodo.23897615},
  url         = {https://doi.org/10.5281/zenodo.23897615}
}

许可证

MIT。版权所有 (c) 2026 Naser Sadrmanesh。详见 LICENSE。

作者

Naser Sadrmanesh:https://github.com/sadrmanesh · https://sadrmanesh.github.io · [email protected]

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。