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"
}
}
}
}
要创建应用程序密码,请执行以下操作:
- 转到您的WordPress管理仪表板
- 导航到用户>个人资料
- 向下滚动到“应用程序密码”
- 为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_URL | WordPress网站URL | - | ✅ |
OAUTH_ENABLED | 启用OAuth身份验证 | true | - |
OAUTH_CALLBACK_PORT | OAuth回调端口 | 7665 | - |
OAUTH_HOST | OAuth回调主机名 | 127.0.0.1 | - |
WP_OAUTH_CLIENT_ID | 自定义OAuth客户端ID | - | - |
| OAuth端点 | |||
OAUTH_AUTHORIZE_ENDPOINT | OAuth授权端点 | - | ✅ (用于自定义OAuth) |
OAUTH_TOKEN_ENDPOINT | OAuth令牌端点 | - | ✅ (用于自定义OAuth) |
OAUTH_AUTHENTICATE_ENDPOINT | OAuth身份验证端点 | - | - |
| MCP OAuth 2.1设置 | |||
OAUTH_FLOW_TYPE | OAuth流类型(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_USERNAME | WordPress用户名(旧版) | - | - |
WP_API_PASSWORD | WordPress应用程序密码(旧版) | - | - |
WOO_CUSTOMER_KEY | WooCommerce消费者密钥 | - | - |
WOO_CUSTOMER_SECRET | WooCommerce消费者秘密 | - | - |
禁用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
- 安装依赖项:
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远程?
- 多种身份验证方法 -选择最适合您设置的选项
- 增强安全性 -具有持久令牌存储的OAuth 2.0
- 更好的用户体验 -一次性设置自动令牌管理
- 多实例支持 -与多个MCP客户端可靠协作
- 综合录井 -故障排除的详细日志
- 轻松设置 -npx不需要全局安装
需求
- Node.js 22+ (获取API支持所必需)
- WordPress网站 和 wordpress mcp 插件
- WordPress用户帐户 具有适当的权限
许可证
GPL v2或更高版本
贡献
欢迎投稿!本项目由Automattic股份有限公司负责维护。
支持
需要帮助? 检查 故障排除部分 或者打开一个问题。