Skip to main content
Glama

wp-mcp-gateway (Cloudflare Workers 版本)

与 Node 版本思路相同:一个 MCP 端点,每个工具调用都带一个 site_id,因此一个 Claude 连接器就能覆盖你的整个 WordPress 站点群。此版本运行在 Cloudflare Workers 上,而不是 VPS 上——无需修补服务器,免费套餐足够轻松应对,并且在运行 wrangler deploy 后几分钟内即可在 workers.dev URL 上线。

它基于 Cloudflare 当前推荐的方式构建:来自 agents SDK 的无状态 createMcpHandler(较旧的有状态 McpAgent / Durable Objects 方式已弃用,不适用于新服务器——而且这个网关本来就不需要会话状态,因为每个工具调用都是独立的)。

交接前已在本地完成端到端验证:Worker 能正常启动,/health 正常响应,MCP initialize 握手成功,bearer-token 认证能正确拒绝缺失/错误的 token 并放行正确的 token,list_sites 从测试用的 SITES_JSON 返回真实数据。

1. 前提条件

npm install -g wrangler   # or just use npx wrangler as shown below
wrangler login            # opens a browser to authenticate with your Cloudflare account

如果你还没有 Cloudflare 账户,可以免费注册:https://dash.cloudflare.com/sign-up——免费套餐(每天 100,000 次请求)对此绰绰有余。

2. 安装依赖

cd wp-mcp-gateway-cf
npm install

3. 配置你的站点

与 Node 版本不同,Workers 没有文件系统,因此站点注册表不是保存在文件中,而是保存在一个 secretSITES_JSON)中。结构与之前相同——每个站点一条记录:

{
  "town-green": {
    "label": "Town Green",
    "baseUrl": "https://town-green.org",
    "username": "mcp-agent",
    "appPassword": "xxxx xxxx xxxx xxxx xxxx xxxx",
    "host": "wpengine"
  },
  "cra": {
    "label": "CRA",
    "baseUrl": "https://cra.com",
    "username": "mcp-agent",
    "appPassword": "xxxx xxxx xxxx xxxx xxxx xxxx",
    "host": "gridpane"
  }
}

为所有站点构建这个 JSON(一旦你为每个站点生成好 Application Passwords,用脚本把电子表格转成 JSON 是很容易的事——如果你需要,可以问我),然后把它设置为一个 secret:

npx wrangler secret put SITES_JSON
# paste the whole JSON blob when prompted, then press Ctrl+D

Application Passwords: 在 wp-admin 中,路径为 Users → your user → Application Passwords。建议与之前相同——每个站点使用一个专用的低权限 WP 用户,而不是你的个人管理员账户,这样即使 token 泄露,也只能在该角色允许的范围内操作。

4. 设置你的网关认证令牌

npx wrangler secret put GATEWAY_TOKEN
# paste a long random value, e.g. output of: openssl rand -hex 32

如果不设置此项,端点将以无认证方式运行——用于首次本地测试没问题,但绝不能用于部署后的版本。

5. 在本地测试

npx wrangler dev

这会启动一个本地开发服务器(默认 http://localhost:8787)。在本地测试时,请把 secrets 放在 .dev.vars 文件中(切勿提交它):

GATEWAY_TOKEN=some-local-test-token
SITES_JSON={"town-green":{"label":"Town Green","baseUrl":"https://town-green.org","username":"mcp-agent","appPassword":"xxxx"}}

检查它是否正常运行:

curl http://localhost:8787/health

6. 部署

npx wrangler deploy

Wrangler 会打印出你的线上 URL,类似这样:

https://wp-mcp-gateway.<your-subdomain>.workers.dev

你的 MCP 端点是 https://wp-mcp-gateway.<your-subdomain>.workers.dev/mcp

7. 在 Claude 中添加为连接器

添加一个自定义连接器,指向该 /mcp URL,并附带请求头 Authorization: Bearer <GATEWAY_TOKEN>(与你在第 4 步中设置的值相同)。

从那时起,要执行“列出 cra.com 上的草稿文章”,Claude 只需要调用 list_sites(或已经知道 id),然后使用 site_id: "cra" 调用 list_posts——与 Node 版本行为相同,只是托管在边缘网络上。

之后更新站点

要添加新站点或更改凭据,请重新运行:

npx wrangler secret put SITES_JSON

无需重新部署——secrets 独立于 Worker 代码更新。

本次部署的注意事项

  • 无文件系统,无长时间运行的进程——整个注册表都存放在 SITES_JSON secret 中,每次请求时重新解析。即使有 ~80 个站点,成本也微不足道。

  • 设计上无状态——每个 MCP 请求都会创建一个全新的服务器实例(依据 Cloudflare 当前的指南);无需担心会丢失跨请求会话。

  • 托管主机上的 WAF 标记——与 Node 版本相同的注意事项:尤其是 WP Engine,可能会标记来自陌生 IP 段调用 REST API 的流量。如果某个站点仅通过此网关访问时返回 403,这是需要与 WP Engine 支持团队核对的第一件事——如有必要,值得将 Cloudflare 的出站 IP 范围加入白名单。

  • 工具范围——此网关只与 WordPress 核心 REST API(/wp/v2/...)通信。不支持 WP-CLI、SSH 或数据库级操作——反正 Workers 无法发起 SSH 连接,如果你以后需要,那需要另一个完全不同的组件。

在将 Claude 连接到已部署 URL 之前的安全检查清单

  • 已通过 wrangler secret put 设置 GATEWAY_TOKEN,且足够长、随机

  • SITES_JSON 为每个站点使用专用的低权限 WP 用户

  • .dev.vars(如果你在本地使用过)已在 .gitignore 中,且永远不会被提交

  • 在将 secret 扩展到全部 ~80 个站点之前,你已经对 2–3 个站点进行了测试

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Turn Claude or ChatGPT into a website builder that ships a real site to a live URL you own.

  • WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.

  • The bridge from K2 agents through Wrangler to your master AI - safe, approval-gated Cloudflare ops.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/118group/wp-mcp-gateway'

If you have feedback or need assistance with the MCP directory API, please join our Discord server