WordPress REST API 无服务器代理

基于Cloudflare Workers的无服务器代理服务,为WordPress REST API提供自动扩展、多租户支持和工具集成功能。

  • by kaewz-manga
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 kaewz-manga/wordpress-nodeflow-mcp

使用说明

wordpress节点流mcp

Cloudflare Workers用于WordPress REST API的MCP服务器-无服务器,自动缩放,零内存泄漏。

特性

  • 24工具:帖子、页面、媒体、类别、标签、评论和图像存储
  • 无服务器:在Cloudflare Workers上运行(300多个边缘位置)
  • 自动缩放:每天处理100000个请求(免费级别)
  • 零内存泄漏:无状态架构,无长时间运行的流程
  • 多用户:通过标题支持多个WordPress网站
  • MCP协议:基于HTTP的JSON-RPC 2.0
  • n8n集成:直接HTTP API调用
  • 克劳德桌面版:通过超级通道(stdio传输)

可用工具

帖子(5个工具)

  • wp_get_posts -列出带有过滤功能的帖子
  • wp_get_post -按ID获取单条帖子
  • wp_create_post -创建新帖子
  • wp_update_post -更新现有帖子
  • wp_delete_post -删除帖子

页面(4个工具)

  • wp_get_pages -列表页面
  • wp_create_page -创建新页面
  • wp_update_page -更新现有页面
  • wp_delete_page -删除页面

媒体(4个工具)

  • wp_get_media -列出媒体项目
  • wp_get_media_item -获取单一媒体项目
  • wp_upload_media_from_url -从URL上传媒体
  • wp_upload_media_from_base64 -从base64上传媒体(n8n二进制数据)

类别(4个工具)

  • wp_get_categories -列出类别
  • wp_get_category -按ID获取单个类别
  • wp_create_category -创建新类别
  • wp_delete_category -删除类别

标签(2个工具)

  • wp_get_tags -列表标签
  • wp_create_tag -创建新标签

评论(4个工具)

  • wp_get_comments -列出带有过滤功能的评论
  • wp_approve_comment -批准待处理意见
  • wp_spam_comment -将评论标记为垃圾邮件
  • wp_delete_comment -删除评论

存储(1个工具)

  • upload_to_imgbb -上传图片到ImgBB,获取公共URL(需要API密钥)

快速开始

1.克隆存储库

git clone https://github.com/<username>/wordpress-nodeflow-mcp.git
cd wordpress-nodeflow-mcp

2.安装依赖项

npm install

3.配置凭据

创建 .dev.vars 地方发展:

cp .dev.vars.example .dev.vars

编辑 .dev.vars 并设置您的WordPress凭据:

WORDPRESS_URL=https://your-wordpress-site.com
WORDPRESS_USERNAME=your_username
WORDPRESS_APP_PASSWORD=yourAppPasswordWithoutSpaces

关键的:WordPress应用程序密码格式:

  • WordPress用户界面显示: aBcD eFgH iJkL mNoP qRsT uVwX (带空格)
  • 您必须使用: aBcDeFgHiJkLmNoPqRsTuVwX (无空格)

4.本地运行

npm run dev

服务器运行于 http://localhost:8787

5.部署到Cloudflare Workers

设置生产秘密:

wrangler secret put WORDPRESS_URL
wrangler secret put WORDPRESS_USERNAME
wrangler secret put WORDPRESS_APP_PASSWORD

部署:

npm run deploy

🖥️ Claude桌面集成

查看完整指南: CLAUDE_DESKTOP.md

快速设置:

  1. 启动本地服务器 (或使用生产URL)
npm run dev  # Runs on http://localhost:8789
  1. 配置Claude桌面

编辑配置文件:

  • 窗户: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

添加以下内容:

{
  "mcpServers": {
    "wordpress": {
      "command": "npx",
      "args": [
        "-y",
        "@anthropic-ai/supergateway",
        "--stdio",
        "http://localhost:8789/mcp",
        "--headers",
        "x-wordpress-url=https://your-wordpress-site.com",
        "--headers",
        "x-wordpress-username=YOUR_USERNAME",
        "--headers",
        "x-wordpress-password=YOUR_APP_PASSWORD_WITHOUT_SPACES"
      ]
    }
  }
}
  1. 重新启动克劳德桌面

  2. 测试:请Claude“列出所有WordPress工具”

生产:替换 http://localhost:8789/mcp 和 https://wordpress-mcp.nodeflow.workers.dev/mcp

用法

单租户模式(环境变量)

通过设置秘密 wrangler secret put 或 .dev.vars:

curl -X POST https://wordpress-mcp.nodeflow.workers.dev/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "wp_get_posts",
      "arguments": { "per_page": 5 }
    }
  }'

多租户模式(HTTP标头)

通过标头传递凭据(覆盖环境):

curl -X POST https://wordpress-mcp.nodeflow.workers.dev/mcp \
  -H "Content-Type: application/json" \
  -H "x-wordpress-url: https://your-wordpress-site.com" \
  -H "x-wordpress-username: YOUR_USERNAME" \
  -H "x-wordpress-password: YOUR_APP_PASSWORD_WITHOUT_SPACES" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "wp_create_post",
      "arguments": {
        "title": "Test Post",
        "content": "This is a test post from MCP",
        "status": "draft"
      }
    }
  }'

MCP协议

1.初始化

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2024-11-05"
  }
}

2.列出工具

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/list",
  "params": {}
}

3.调用工具

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "wp_get_posts",
    "arguments": {
      "per_page": 10,
      "status": "publish"
    }
  }
}

与n8n集成

  1. 添加 HTTP请求 节点
  2. 集 方法: POST
  3. 集 统一资源定位符: https://wordpress-mcp.nodeflow.workers.dev/mcp
  4. 集 标头 (多租户):
    • Content-Type: application/json
    • x-wordpress-url: https://your-site.com
    • x-wordpress-username: your_username
    • x-wordpress-password: yourAppPasswordWithoutSpaces
  5. 集 身体 (JSON):
    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": {
        "name": "wp_create_post",
        "arguments": {
          "title": "{{$json.title}}",
          "content": "{{$json.content}}",
          "status": "draft"
        }
      }
    }
    

WordPress设置

1.创建应用程序密码

  1. 转到WordPress管理员→ 用户→ 个人资料
  2. 滚动到 应用程序密码
  3. 输入名称(例如“MCP服务器”)
  4. 点击 添加新应用程序密码
  5. 复制密码和 删除所有空格

2.启用REST API

默认情况下启用WordPress REST API。测试一下:

curl https://your-site.com/wp-json/wp/v2/posts

建筑

n8n Workflow
    ↓ HTTP POST
Cloudflare Workers (wordpress-nodeflow-mcp)
    ↓ JSON-RPC 2.0
MCP Server (index.ts)
    ↓ Tool Routing
WordPress Client (client.ts)
    ↓ HTTP Basic Auth
WordPress REST API
    ↓
WordPress Database

发展

类型检查

npm run type-check

运行测试

npm test

观看模式

npm run test:watch

故障排除

401未经授权

问题:所有写入操作(POST/PUT/DELETE)都失败,返回401

解决方案:从应用程序密码中删除空格

  • ❌ 错误: aBcD eFgH iJkL mNoP qRsT uVwX
  • ✅ 对的: aBcDeFgHiJkLmNoPqRsTuVwX

CORS错误

解决方案:默认情况下,MCP服务器包含CORS标头。检查 ALLOWED_ORIGINS 在争吵中

未找到工具

解决方案:呼叫 tools/list 首先验证可用工具

许可证

MIT许可证-请参阅 许可证 文件

贡献

欢迎投稿!请打开问题或拉取请求。

链接

  • GitHub: https://github.com//wordpress节点流mcp
  • Cloudflare员工: https://workers.cloudflare.com/
  • WordPress REST API: https://developer.wordpress.org/rest-api/
  • MCP协议: https://modelcontextprotocol.io/