返回市场
WordPress-MCP

WordPress-MCP

作者:cetinibs0 星标更新:2025-11-05

项目介绍

MCP WP Bridge(WordPress)– 技术用户指南

此插件安全高效地将WordPress与符合模型上下文协议(MCP)的工具(如Cursor、Windsurf、Claude Code、Gemini CLI、CodeX CLI、VS Code等)集成。目的:通过命令创建内容/页面、上传媒体、管理主题/插件以及执行(受控)文件编辑。

目标仓库(GitHub):cetinibs/wordpress-mcp

1) 安装(WordPress插件)

  1. wp-mcp-bridge文件夹复制到您的站点wp-content/plugins/下。
  2. 在WordPress管理中:插件 → MCP WP Bridge → 启用。
  3. 在设置 → MCP Bridge页面上:
    • API令牌:自动生成;如有必要可更改。所有调用必须包含标题X-MCP-Token
    • MFA(TOTP)强制:如需启用,请勾选。每个请求都必须包含X-MCP-OTP(6位数的一次性密码)。
    • 日志记录:如有需要可开启。生产环境中通常关闭。
    • 速率限制:设置最大请求次数(默认60次)和窗口(默认300秒)值。

注意事项(安全性):

  • 所有无令牌的请求都将被拒绝。如果启用了MFA,则需要有效的OTP。
  • 对于内容端点edit_posts,管理工具manage_options的访问和授权是必需的。
  • 文件访问仅限于活动主题和wp-content/plugins下的规范化路径。

REST API – 端点和示例

基本URL:https://您的网站地址.com/wp-json/mcp/v1 必填头:

  • X-MCP-Token: <令牌>

  • 如果启用了MFA:X-MCP-OTP: <6位数代码>

  • 网站信息

    • GET /site
    • 示例:
      curl -H "X-MCP-Token: $TOKEN" https://网站/wp-json/mcp/v1/site
      
  • 创建帖子

    • POST /posts
    • JSON正文:{ "title": "...", "content": "<p>...</p>", "status": "draft|publish", "slug": "可选" }
    • 响应:{ id, link }
  • 创建页面

    • POST /pages
    • JSON正文:{ "title": "...", "content": "<p>...</p>", "status": "draft|publish", "slug": "可选" }
    • 响应:{ id, link }
  • 加载媒体

    • POST /media
    • 使用URL:{ "url": "https://.../image.png", "filename": "image.png", "title": "可选" }
    • 使用Base64编码:{ "base64": "iVBORw0K...", "filename": "image.png", "title": "可选" }(约5MB)
    • 响应:{ id, url }
  • 主题管理(管理员)

    • GET /themes → 列出主题及激活的主题(5分钟缓存)
    • POST /themes/{stylesheet}/activate 激活主题并清除缓存
  • 插件管理(管理员)

    • GET /plugins → 列出插件及其活动状态(5分钟缓存)
    • POST /plugins/{插件名}/{activate|deactivate} 开启/关闭插件并清除缓存
  • 文件操作(管理员)

    • GET /files?context=theme&target={stylesheet}&ext=php&ext=css → 文件列表
    • GET /files?context=plugin&target={插件目录} → 文件列表
    • GET /file?path={相对或绝对路径} → 文件内容
    • PUT /file 正文:{ "path": "relative/or/absolute", "content": "新内容" }

3) MCP服务器(可选,Node)

mcp-server/文件夹是一个简单的Node服务器,用于将REST桥转换为MCP工具。

安装:

cd mcp-server
npm install

开发:

# 设置环境变量并在开发模式下运行
# WP_BASE: https://site/wp-json/mcp/v1
# MCP_TOKEN: 设置 → MCP Bridge → API Token
WP_BASE="https://site/wp-json/mcp/v1" MCP_TOKEN="..." npm run dev

提供的MCP车辆示例:getSiteInfo, createPost, createPage, uploadImage, listThemes, activateTheme, listPlugins, togglePlugin, listFiles, readFile, writeFile

Cursor / Windsurf / VS Code 集成(概述)

  • 在具有MCP功能的客户端中,将上述工具定义为命令/工具。
  • 服务器node dist/index.js(或npm run dev启动;支持基于stdio的通信。
  • 每个请求自动发送X-MCP-Token(由MCP服务器设置)MCP_TOKEN(参见)。在客户端打开MFA时,编辑工具/命令以添加X-MCP-OTP

4) 安全性

  • 必须的令牌和可选的MFA(TOTP)控制。
  • 最小权限:对于内容端点edit_posts,管理工具manage_options
  • OWASP认证:sanitize_text_field, wp_kses_post, esc_url_raw, sanitize_file_name
  • 文件访问:仅限于活动主题和wp-content/plugins,使用realpath进行规范化。
  • 速率限制:默认每5分钟60次请求;可由管理员更改。
  • 日志记录/跟踪:error_log + mcp_bridge_event钩子(可由管理员关闭)。

5) 性能

  • 暂存缓存:网站/主题/插件列表5分钟缓存;在更改时自动清理。
  • 可调整的速率限制/日志记录。
  • 建议:启用持久对象缓存和PHP OPcache(使用Redis/Memcached)。

6) 测试者

  • 使用Composer安装:composer install
  • 运行:vendor/bin/phpunit(Windows:vendor\bin\phpunit
  • 范围:令牌+MFA,速率限制,状态白名单,文件路径规范化关键流程。

7) 故障排除

  • 401/403:检查令牌/MFA/会话/权限。
  • 429:超过速率限制;等待窗口结束或增加设置。
  • 413:Base64上传大小限制超出。
  • 文件写入权限:检查服务器文件权限;验证WP_Filesystem配置。

8) 发布(GitHub)

  • 目标仓库:cetinibs/wordpress-mcp
  • 使用以下命令进行首次推送(您需要进行身份验证):
git init
git add .
git commit -m "feat: MCP WP Bridge插件和技术文档"
git branch -M main
git remote add origin https://github.com/cetinibs/wordpress-mcp.git
git push -u origin main

安装和集成已完成。如果您有任何问题,可以作为问题提交。