WordPress远程MCP服务

为WordPress提供MCP协议支持,实现AI助手与WordPress的无缝集成,支持OAuth 2.0、JWT令牌和应用程序密码等多种认证方法。

作者 By Automattic
本地部署 WordPress集成 OAuth认证
GitHub

MCP WordPress远程

用于无缝集成WordPress的模型上下文协议(MCP)服务器

使用多种身份验证方法(包括OAuth 2.0、JWT令牌和应用程序密码)将Claude Desktop等AI助手连接到您的WordPress网站。

特性

  • 符合MCP授权规范 -实施MCP授权规范2025-06-18
  • OAuth 2.1与PKCE -使用PKCE的安全授权代码流(RFC 7636)
  • 资源指标 -令牌受众绑定的RFC 8707合规性
  • 动态客户端注册 -RFC 7591支持自动客户端注册
  • 受保护资源元数据发现 -RFC 9728用于自动端点发现
  • 多种身份验证方法 -OAuth 2.1、JWT令牌和WordPress应用程序密码
  • 持久令牌存储 -OAuth令牌通过自动验证安全存储
  • 多实例协调 -锁文件防止身份验证冲突
  • 自动令牌管理 -处理验证、刷新和清理
  • 增强的错误处理 -具有适当分类的详细错误消息
  • 综合录井 -具有类别和级别的结构化日志记录
  • 完整的MCP支持 -工具、资源、提示等

快速开始

安装

BASH``` 1npm install @automattic/mcp-wordpress-remote


### 配置


添加到您的MCP客户端配置中(例如,Claude Desktop的 `claude_desktop_config.json`):


JSON```
1
2
3
4
5
6
7
8
9
10
11{
  "mcpServers": {
    "wordpress": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote"],
      "env": {
        "WP_API_URL": "https://your-wordpress-site.com"
      }
    }
  }
}

自定义头

您可以使用 CUSTOM_HEADERS 环境变量。这对于API密钥、自定义身份验证或其他标头要求非常有用。

JSON格式(推荐):

JSON``` 1 2 3 4 5 6 7 8 9 10 11 12{ “mcpServers”: { “wordpress”: { “command”: “npx”, “args”: [“-y”, “@automattic/mcp-wordpress-remote”], “env”: { “WP_API_URL”: “https://your-wordpress-site.com”, “CUSTOM_HEADERS”: ”{“X-MCP-API-Key”: “Ibo7tweixlbfuwaiufxgakjyefctwajcetb”, “X-Custom-Header”: “value”}” } } } }


#### 逗号分隔格式:


JSON```
1
2
3
4
5
6
7
8
9
10
11
12{
  "mcpServers": {
    "wordpress": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote"],
      "env": {
        "WP_API_URL": "https://your-wordpress-site.com",
        "CUSTOM_HEADERS": "X-MCP-API-Key:IOskncfyes78U8on3q7ry43o487tybrc,X-Custom-Header:value"
      }
    }
  }
}

命令行用法:

BASH``` 1 2 3CUSTOM_HEADERS=’{“X-MCP-API-Key”: “wc_mcp_FaQduhQcW0mfVaZgP3yaaqDuXaZ3mw7j”}’
WP_API_URL=“https://your-site.com
npx @automattic/mcp-wordpress-remote


自定义标题包含在:


- 所有WordPress API请求
- OAuth发现请求
- OAuth令牌交换请求
- OAuth客户端注册请求


### 首次运行


1. **启动您的MCP客户端** (克劳德桌面等)
2. **选择身份验证方法** 根据您的喜好:

- **OAuth 2.0** (默认):浏览器自动打开以进行授权
- **JWT令牌**:设置 `JWT_TOKEN` 环境变量
- **应用程序密码**:设置 `WP_API_USERNAME` 和 `WP_API_PASSWORD`
3. **开始使用WordPress功能** 在您的AI助手中


## WordPress MCP插件


您需要安装 [wordpress mcp](https://github.com/WordPress/mcp-adapter) 在WordPress网站上安装插件,并在“设置”>“MCP设置”中启用MCP功能。


## 身份验证方法


### 1.OAuth 2.1(推荐-符合MCP)


OAuth 2.1提供了最安全和用户友好的体验,完全符合MCP授权规范。


#### **对于自托管WordPress网站:**


JSON```
1
2
3
4
5
6
7
8
9
10
11
12{
  "mcpServers": {
    "wordpress": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote"],
      "env": {
        "WP_API_URL": "https://your-wordpress-site.com",
        "OAUTH_ENABLED": "true"
      }
    }
  }
}

MCP授权规范特征:

  • OAuth 2.1授权代码流 使用PKC(RFC 7636)
  • 资源指标 (RFC 8707)用于令牌受众绑定
  • 动态客户端注册 (RFC 7591)支持时
  • 受保护资源元数据发现 (RFC 9728)
  • 授权服务器元数据发现 (RFC 8414)

优点:

  • 完全符合MCP授权规范2025-06-18
  • 通过PKCE保护增强安全性
  • 一次性浏览器授权
  • 通过自动验证安全存储的令牌
  • 自动端点发现
  • 无需管理密码
  • 自动过期处理

2.JWT令牌认证

用于服务器到服务器身份验证或OAuth不可用时。

JSON``` 1 2 3 4 5 6 7 8 9 10 11 12{ “mcpServers”: { “wordpress”: { “command”: “npx”, “args”: [“-y”, “@automattic/mcp-wordpress-remote”], “env”: { “WP_API_URL”: “https://your-wordpress-site.com”, “JWT_TOKEN”: “your-jwt-token-here” } } } }


### 3.WordPress应用程序密码(旧版)


使用WordPress用户名和应用程序密码进行基本身份验证。


JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13
14{
  "mcpServers": {
    "wordpress": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote"],
      "env": {
        "WP_API_URL": "https://your-wordpress-site.com",
        "WP_API_USERNAME": "your-username",
        "WP_API_PASSWORD": "your-application-password",
        "OAUTH_ENABLED": "false"
      }
    }
  }
}

要创建应用程序密码,请执行以下操作:

  1. 转到您的WordPress管理仪表板
  2. 导航到用户>个人资料
  3. 向下滚动到“应用程序密码”
  4. 为MCP访问创建新的应用程序密码

高级配置

自定义OAuth设置

JSON``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14{ “mcpServers”: { “wordpress”: { “command”: “npx”, “args”: [“-y”, “@automattic/mcp-wordpress-remote”], “env”: { “WP_API_URL”: “https://your-wordpress-site.com”, “OAUTH_CALLBACK_PORT”: “7665”, “OAUTH_HOST”: “127.0.0.1”, “WP_OAUTH_CLIENT_ID”: “your-custom-client-id” } } } }


### WooCommerce集成


对于WooCommerce特定的工具和报告:


JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13{
  "mcpServers": {
    "wordpress": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote"],
      "env": {
        "WP_API_URL": "https://your-wordpress-site.com",
        "WOO_CUSTOMER_KEY": "ck_your-consumer-key",
        "WOO_CUSTOMER_SECRET": "cs_your-consumer-secret"
      }
    }
  }
}

环境变量

变量描述默认值必填
WP_API_URLWordPress网站URL-
OAUTH_ENABLED启用OAuth身份验证true-
OAUTH_CALLBACK_PORTOAuth回调端口7665-
OAUTH_HOSTOAuth回调主机名127.0.0.1-
WP_OAUTH_CLIENT_ID自定义OAuth客户端ID--
OAuth端点
OAUTH_AUTHORIZE_ENDPOINTOAuth授权端点-✅ (用于自定义OAuth)
OAUTH_TOKEN_ENDPOINTOAuth令牌端点-✅ (用于自定义OAuth)
OAUTH_AUTHENTICATE_ENDPOINTOAuth身份验证端点--
MCP OAuth 2.1设置
OAUTH_FLOW_TYPEOAuth流类型(authorization_code或隐式)authorization_code-
OAUTH_USE_PKCE使用PKCE(OAuth 2.1需要)true-
OAUTH_DYNAMIC_REGISTRATION启用动态客户端注册true-
OAUTH_RESOURCE_INDICATOR使用资源指示符(RFC 8707)true-
配置
WP_MCP_CONFIG_DIR配置目录覆盖~/.mcp-auth-
LOG_FILE日志文件路径--
LOG_LEVEL日志级别(0-3)2-
传统身份验证
JWT_TOKEN用于身份验证的JWT令牌--
WP_API_USERNAMEWordPress用户名(旧版)--
WP_API_PASSWORDWordPress应用程序密码(旧版)--
WOO_CUSTOMER_KEYWooCommerce消费者密钥--
WOO_CUSTOMER_SECRETWooCommerce消费者秘密--

禁用OAuth

仅使用JWT或基本身份验证:

JSON``` 1 2 3 4 5 6{ “env”: { “OAUTH_ENABLED”: “false”, “JWT_TOKEN”: “your-jwt-token” } }


## 发展模式


对于开发和测试,您可以使用本地存储库:


### 设置


1. **克隆存储库:**


BASH```
1
2git clone https://github.com/Automattic/mcp-wordpress-remote.git
cd mcp-wordpress-remote
  1. 安装依赖项:

BASH``` 1npm install

3. **构建项目:**


BASH```
1npm run build

配置

配置您的MCP客户端以使用本地版本:

JSON``` 1 2 3 4 5 6 7 8 9 10 11{ “mcpServers”: { “wordpress”: { “command”: “node”, “args”: [“/path/to/your/mcp-wordpress-remote/dist/proxy.js”], “env”: { “WP_API_URL”: “https://your-wordpress-site.com” } } } }


### 开发工作流程


- **观看模式:** `npm run build:watch` -根据文件更改自动重建
- **测试:** `npm test` -运行测试套件
- **类型检查:** `npm run check` -运行TypeScript和Prettier检查


## 许可证管理


### OAuth令牌存储


令牌自动存储在:

1~/.mcp-auth/wordpress-remote-{version}/


### 人工管理


BASH```
1
2
3
4
5
6# View stored tokens
ls -la ~/.mcp-auth/wordpress-remote-*/
# Clear all tokens (forces re-authentication)
rm -rf ~/.mcp-auth/wordpress-remote-*/
# Clear tokens for specific version
rm -rf ~/.mcp-auth/wordpress-remote-0.2.1/

令牌安全

  • 安全文件权限 (600)在所有令牌文件上
  • 自动令牌验证 在每次请求之前
  • 过期令牌清理 启动期间
  • 版本隔离 -每个版本都单独存储令牌

多实例支持

代理会自动在多个实例之间进行协调:

  • 锁定文件 防止同时进行OAuth流
  • 过程协调 确保一次只进行一次身份验证
  • 优雅的等待 当另一个实例正在进行身份验证时
  • 自动清理 陈旧的锁

如果您看到“等待其他实例”消息,这是正常行为。

故障排除

身份验证问题

OAuth浏览器无法打开:

  • 检查端口3000是否可用
  • 尝试使用其他端口 OAUTH_CALLBACK_PORT
  • 手动打开日志中显示的URL

OAuth授权失败:

  • 验证WordPress网站是否安装并启用了MCP插件
  • 检查WordPress管理员用户权限
  • 尝试清除令牌并重新进行身份验证

JWT身份验证失败:

  • 验证JWT令牌是否有效且未过期
  • 检查令牌格式和编码
  • 确保WordPress网站支持JWT身份验证

基本身份验证失败:

  • 验证用户名和应用程序密码
  • 检查应用程序密码是否处于活动状态
  • 确保用户有足够的权限

连接问题

找不到API终结点:

  • 验证WordPress MCP插件是否已安装并激活
  • 检查WordPress管理员中是否启用了插件
  • 确认 WP_API_URL 是正确的

权限被拒绝:

  • 检查WordPress中的用户权限
  • 验证身份验证凭据
  • 查看WordPress用户角色

端口冲突

如果端口3000已在使用中:

JSON``` 1 2 3 4 5{ “env”: { “OAUTH_CALLBACK_PORT”: “8080” } }


### 多实例消息


当多个MCP客户端同时启动时,“等待其他实例”消息是正常的。系统协调身份验证以防止冲突。


### 日志分析


启用详细日志记录:


JSON```
1
2
3
4
5
6{
  "env": {
    "LOG_LEVEL": "3",
    "LOG_FILE": "/path/to/logfile.log"
  }
}

日志级别:

  • 0 -仅错误
  • 1 -警告和错误
  • 2 -信息、警告和错误(默认)
  • 3 -调试、信息、警告和错误

安全功能

  • 安全OAuth流 带有状态参数和PKCE
  • 令牌加密 具有安全的文件权限
  • 自动验证 在每次API请求之前
  • 过期令牌清理 以及刷新处理
  • 多实例协调 防止身份验证冲突

为什么使用MCP WordPress远程?

  1. 多种身份验证方法 -选择最适合您设置的选项
  2. 增强安全性 -具有持久令牌存储的OAuth 2.0
  3. 更好的用户体验 -一次性设置自动令牌管理
  4. 多实例支持 -与多个MCP客户端可靠协作
  5. 综合录井 -故障排除的详细日志
  6. 轻松设置 -npx不需要全局安装

需求

  • Node.js 22+ (获取API支持所必需)
  • WordPress网站wordpress mcp 插件
  • WordPress用户帐户 具有适当的权限

许可证

GPL v2或更高版本

贡献

欢迎投稿!本项目由Automattic股份有限公司负责维护。

支持


需要帮助? 检查 故障排除部分 或者打开一个问题。