此存储库将被弃用,因为 mcp适配器 WordPress的AI构建块继续发布稳定版本。
这一转变与两个重要发展相一致:
- 这 API能力 从6.9版本开始进入WordPress核心。
- mcp适配器现已稳定,并将成为WordPress中mcp集成的规范插件和Composer包。
我们鼓励所有用户迁移到mcp适配器。未来的工作,包括新功能和修复,将在那里进行。此存储库将以存档形式保留,以供历史参考。
WordPress MCP

一个全面的WordPress插件,实现 模型上下文协议(MCP) 通过标准化接口公开WordPress功能。此插件使AI模型和应用程序能够使用多种传输协议和企业级身份验证安全地与WordPress网站进行交互。
特性
- 双传输协议:STDIO和基于HTTP的(流式)传输
- JWT身份验证:使用管理UI进行基于令牌的安全身份验证
- 管理界面:基于React的令牌管理和设置仪表板
- AI友好API:用于AI集成的JSON-RPC 2.0兼容端点
- 可扩展架构:自定义工具、资源和提示支持
- WordPress功能API:用于标准化WordPress功能的适配器
- 实验性REST API CRUD工具:用于任何WordPress REST API端点的通用工具
- 综合测试:200多个测试用例,涵盖所有协议和身份验证
- 高性能:优化了路由和缓存机制
- 企业安全:多层身份验证和审计日志记录
建筑
该插件实现了双传输架构:
WordPress MCP Plugin
├── Transport Layer
│ ├── McpStdioTransport (/wp/v2/wpmcp)
│ └── McpStreamableTransport (/wp/v2/wpmcp/streamable)
├── Authentication
│ └── JWT Authentication System
├── Method Handlers
│ ├── Tools, Resources, Prompts
│ └── System & Initialization
└── Admin Interface
└── React-based Token Management传输协议
| 协议 | 端点 | 格式 | 身份验证 | 用例 |
|---|---|---|---|---|
| 标准输入输出 | /wp/v2/wpmcp | WordPress风格 | JWT+应用程序密码 | 传统兼容性 |
| 可流式传输 | /wp/v2/wpmcp/streamable | JSON-RPC 2.0 | 仅JWT | 现代人工智能客户端 |
安装
快速安装
- 下载
wordpress-mcp.zip从 发布 - 上传到
/wp-content/plugins/wordpress-mcp目录 - 通过WordPress管理员“插件”菜单激活
- 引导到
Settings > WordPress MCP配置
编辑器安装(开发)
cd wp-content/plugins/
git clone https://github.com/Automattic/wordpress-mcp.git
cd wordpress-mcp
composer install --no-dev
npm install && npm run build身份验证设置
JWT令牌生成
- 首选
Settings > WordPress MCP > Authentication Tokens - 选择令牌持续时间(1-24小时)
- 点击“生成新令牌”
- 复制令牌以在MCP客户端中使用
MCP客户端配置
Claude桌面配置使用 mcp wordpress遥控器 代理
添加到您的Claude桌面 claude_desktop_config.json:
{
"mcpServers": {
"wordpress-mcp": {
"command": "npx",
"args": [ "-y", "@automattic/mcp-wordpress-remote@latest" ],
"env": {
"WP_API_URL": "https://your-site.com/",
"JWT_TOKEN": "your-jwt-token-here",
"LOG_FILE": "optional-path-to-log-file"
}
}
}
}使用应用程序密码(替代)
{
"mcpServers": {
"wordpress-mcp": {
"command": "npx",
"args": [ "-y", "@automattic/mcp-wordpress-remote@latest" ],
"env": {
"WP_API_URL": "https://your-site.com/",
"WP_API_USERNAME": "your-username",
"WP_API_PASSWORD": "your-application-password",
"LOG_FILE": "optional-path-to-log-file"
}
}
}
}VS代码MCP扩展(直接流传输)
添加到您的VS Code MCP设置中:
{
"servers": {
"wordpress-mcp": {
"type": "http",
"url": "https://your-site.com/wp-json/wp/v2/wpmcp/streamable",
"headers": {
"Authorization": "Bearer your-jwt-token-here"
}
}
}
}MCP检查员(开发/测试)
# Using JWT Token with proxy
npx @modelcontextprotocol/inspector \
-e WP_API_URL=https://your-site.com/ \
-e JWT_TOKEN=your-jwt-token-here \
npx @automattic/mcp-wordpress-remote@latest
# Using Application Password with proxy
npx @modelcontextprotocol/inspector \
-e WP_API_URL=https://your-site.com/ \
-e WP_API_USERNAME=your-username \
-e WP_API_PASSWORD=your-application-password \
npx @automattic/mcp-wordpress-remote@latest本地开发配置
{
"mcpServers": {
"wordpress-local": {
"command": "node",
"args": [ "/path/to/mcp-wordpress-remote/dist/proxy.js" ],
"env": {
"WP_API_URL": "http://localhost:8080/",
"JWT_TOKEN": "your-local-jwt-token",
"LOG_FILE": "optional-path-to-log-file"
}
}
}
}用法
使用MCP客户端
此插件通过两种方式与MCP兼容客户端无缝协作:
通过代理:
- mcp wordpress遥控器 -具有增强功能的官方MCP客户端
- Claude Desktop,具有代理配置,可提供完整的WordPress和WooCommerce支持
- 任何使用STDIO传输协议的MCP客户端
直接流式运输:
- VS代码MCP扩展直接连接到
/wp/v2/wpmcp/streamable - 使用JSON-RPC 2.0自定义基于HTTP的MCP实现
- 任何支持HTTP传输和JWT身份验证的客户端
流式传输提供了一个直接兼容JSON-RPC 2.0的端点,而代理提供了其他功能,如WooCommerce集成、增强的日志记录以及与传统身份验证方法的兼容性。
可用的MCP方法
| 方法 | 描述 | 运输支持 |
|---|---|---|
initialize | 初始化MCP会话 | 两者都有 |
tools/list | 列出可用工具 | 两者都有 |
tools/call | 执行工具 | 两者都执行 |
resources/list | 列出可用资源 | 两者都有 |
resources/read | 读取资源内容 | 两者都有 |
prompts/list | 列出可用提示 | 两者都有 |
prompts/get | 获取提示模板 | 两者都有 |
实验性REST API CRUD工具
实验特征:此功能是实验性的,在未来的版本中可能会更改或删除。
通过启用时 Settings > WordPress MCP > Enable REST API CRUD Tools,该插件提供了三个强大的通用工具,可以与任何WordPress REST API端点交互:
可用工具
| 工具名称 | 描述 | 类型 |
|---|---|---|
list_api_functions | 发现所有可用的WordPress REST API端点 | 阅读 |
get_function_details | 获取特定端点/方法的详细元数据 | 阅读 |
run_api_function | 使用CRUD操作执行任何REST API函数 | 操作 |
使用工作流程
- 发现:使用
list_api_functions查看所有可用端点 - 检查:使用
get_function_details了解所需参数 - 执行:使用
run_api_function执行CRUD操作
安全和权限
- 用户能力:所有操作都尊重当前用户权限
- 设置控制:可以在设置中禁用单个CRUD操作:
- 启用创建工具(POST操作) - 启用更新工具(PATCH/PUT操作) - 启用删除工具(Delete操作)
- 自动过滤:排除敏感端点(JWT身份验证、oembed、自动保存、修订)
益处
- 通用访问:适用于任何WordPress REST API端点,包括自定义帖子类型和第三方插件
- AI友好:为AI代理提供发现和内省功能
- 遵从标准:使用标准HTTP方法(GET、POST、PATCH、DELETE)
- 权限安全:继承WordPress用户功能并尊重端点权限
发展
项目结构
wp-content/plugins/wordpress-mcp/
├── includes/ # PHP classes
│ ├── Core/ # Transport and core logic
│ ├── Auth/ # JWT authentication
│ ├── Tools/ # MCP tools
│ ├── Resources/ # MCP resources
│ ├── Prompts/ # MCP prompts
│ └── Admin/ # Settings interface
├── src/ # React components
│ └── settings/ # Admin UI components
├── tests/ # Test suite
│ └── phpunit/ # PHPUnit tests
└── docs/ # Documentation添加自定义工具
您可以通过自己的插件或主题添加自定义工具来扩展MCP功能。在插件或主题中创建一个新的工具类:
register_tool([
'name' => 'my_custom_tool',
'description' => 'My custom tool description',
'inputSchema' => [
'type' => 'object',
'properties' => [
'param1' => ['type' => 'string', 'description' => 'Parameter 1']
],
'required' => ['param1']
],
'callback' => [$this, 'execute'],
]);
}
public function execute(array $args): array {
// Your tool logic here
return ['result' => 'success'];
}
}添加自定义资源
您可以通过自己的插件或主题添加自定义资源来扩展MCP功能。在插件或主题中创建新的资源类:
register_resource([
'uri' => 'custom://my-resource',
'name' => 'My Custom Resource',
'description' => 'Custom resource description',
'mimeType' => 'application/json',
'callback' => [$this, 'get_content'],
]);
}
public function get_content(): array {
return ['contents' => [/* resource data */]];
}
}测试
运行综合测试套件:
# Run all tests
vendor/bin/phpunit
# Run specific test suites
vendor/bin/phpunit tests/phpunit/McpStdioTransportTest.php
vendor/bin/phpunit tests/phpunit/McpStreamableTransportTest.php
vendor/bin/phpunit tests/phpunit/JwtAuthTest.php
# Run with coverage
vendor/bin/phpunit --coverage-html coverage/建筑前端
# Development build
npm run dev
# Production build
npm run build
# Watch mode
npm run start安全
最佳实践
- 许可证管理:使用所需的最短过期时间(1-24小时)
- 用户权限:令牌继承用户能力
- 安全存储:永远不要将令牌提交到存储库
- 定期清理:及时撤销未使用的代币
- 访问控制:流式传输需要管理员权限
- CRUD操作:仅在必要时启用创建/更新/删除工具
- 实验性功能:在生产环境中谨慎使用REST API CRUD工具
安全功能
- JWT签名验证
- 令牌过期和撤销
- 用户能力继承
- 安全密钥生成
- 安全事件的审核日志记录
- 防止格式错误的请求
测试覆盖
该插件包括广泛的测试:
- 运输测试:STDIO和Streamable协议
- 认证测试:JWT生成、验证和撤销
- 集成测试:交叉运输比较
- 安全性测试:边缘情况和格式错误的请求
- 性能测试:负载和压力测试
查看详细的测试文档 tests/README.md.
配置
环境变量
// wp-config.php
define('WPMCP_JWT_SECRET_KEY', 'your-secret-key');
define('WPMCP_DEBUG', true); // Enable debug logging插件设置
通过以下方式访问 Settings > WordPress MCP:
- 启用/禁用MCP:切换插件功能
- 传输配置:配置STDIO/流传输
- 功能切换:启用/禁用特定工具和资源
- CRUD操作控制:对创建、更新和删除操作进行精细控制
- 实验性功能:启用REST API CRUD工具(实验功能)
- 验证设置:JWT令牌管理
CRUD操作设置
该插件提供对CRUD操作的精细控制:
- 启用创建工具:允许通过MCP工具进行POST操作
- 启用更新工具:允许通过MCP工具进行PATCH/PUT操作
- 启用删除工具: ⚠️ 允许通过MCP工具执行DELETE操作(谨慎使用)
- 启用REST API CRUD工具: 🧪 启用实验性通用REST API访问工具
安全说明:删除操作可以永久删除数据。仅当您信任所有具有MCP访问权限的用户时,才启用删除工具。
贡献
我们欢迎捐款!请查看我们的 贡献指南.
开发设置
- 克隆存储库
- 跑
composer install对于PHP依赖项 - 跑
npm installJavaScript依赖关系 - 设置WordPress测试环境
- 使用运行测试
vendor/bin/phpunit
文档
- 文档概述: docs/README.md
- 客户端设置指南: docs/client-setup.md
- AI集成指南: docs/for-ai.md
- 注册工具: docs/registered-tools.md
- 注册资源: docs/registered-resources.md
- 注册提示: docs/registered-prompts.md
- 注册MCP工具: docs/register-mcp-tools.md
- 注册MCP提示: docs/register-mcp-promput.md
- 注册MCP资源: docs/register-mcp-resources.md
- 故障排除指南: docs/故障排除.md
- 测试指导: 测试/README.md
支持
有关支持和问题:
- 文档: docs/README.md
- 错误报告:
- 讨论:
- 联系:联系维护人员
许可证
该项目根据 GPL v2或更高版本.
______________________________________________________________________
内置于❤️ 靠近 Automattic WordPress和AI社区。
