使用说明
WordPress MCP服务器
将您的WordPress网站纳入任何模型上下文协议(MCP)工作流程。这个TypeScript服务器允许本地第一LLM代理通过自然语言提示创建、编辑和组织WordPress内容。
目录
概述
WordPress MCP服务器将精心策划的REST操作作为MCP工具公开,因此任何兼容的客户端(Claude Desktop、VS Code MCP插件、自定义shell)都可以通过语音或文本自动化来管理内容。使用它来起草帖子、更新登录页面或清理类别,而无需触摸wp-admin。
亮点
- 对帖子、页面、类别和标签的完整CRUD覆盖
- 由WordPress应用程序密码支持的安全身份验证
- 跨客户端和服务器共享接口的类型安全实现
- 通过stdio与任何MCP主机配合使用;无需暴露网络端口
- 附带烟雾测试脚本和故障排除指南,以便您在连接客户端之前进行本地验证
快速启动
git clone https://github.com/<you>/WordPress-MCP.git
cd WordPress-MCP
npm install
cp .env.example .env # or `copy` on Windows
- 填写
.env使用下面列出的变量。 - 构建TypeScript源代码:
npm run build. - 运行快速健全性检查:
node test-create-post.js。此脚本会删除一个草稿帖子,以便您知道身份验证和REST连接良好。 - 在stdio模式下启动MCP服务器:
node build/index.js. - 将MCP客户端指向可执行文件(请参阅 运行MCP服务器).
配置
环境变量
| 变量 | 描述 | 示例 |
|---|---|---|
WORDPRESS_URL |
WordPress网站的基本URL(必须包含协议)。 | https://example.com |
WORDPRESS_USERNAME |
生成应用程序密码的WordPress用户。 | editor_bot |
WORDPRESS_APP_PASSWORD |
从wp-admin(WordPress 5.6+)复制的应用程序密码。 | xxxx xxxx xxxx xxxx xxxx xxxx |
保持应用程序密码的空格分隔格式。如果删除空格,WordPress会拒绝令牌。
创建应用程序密码
- 使用目标用户登录wp-admin。
- 导航至 用户→ 个人资料.
- 滚动到 应用程序密码.
- 命名它(例如“MCP服务器”)并单击 新增.
- 立即复制该值——WordPress永远不会再显示它。
- 将其粘贴到
.env在...之下WORDPRESS_APP_PASSWORD.
运行MCP服务器
服务器通过stdio进行通信,因此您可以将其嵌入任何理解MCP的主机中。
直接命令行界面
npm run build
node build/index.js
当服务器登录时 Successfully connected to WordPress site!,它已准备好接受MCP请求。
克劳德桌面版
将配置添加到 claude_desktop_config.json 并重新启动克劳德桌面:
{
"mcpServers": {
"wordpress": {
"command": "node",
"args": ["C:\\Users\\YourUsername\\Projects\\WordPress-MCP\\build\\index.js"],
"env": {
"WORDPRESS_URL": "https://your-site.com",
"WORDPRESS_USERNAME": "your-username",
"WORDPRESS_APP_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx"
}
}
}
}
IDE+MCP工具
VS代码(和其他支持MCP的IDE)可以直接引用存储库。看 IDE_SETUP.md 为该项目量身定制的完整演练,包括一个也连接到本地VibeType代理的工作示例。
刀具目录
| 工具 | 目的 | 必填字段 | 有用选项 |
|---|---|---|---|
wordpress_create_post |
起草或发布帖子 | title, content |
status, excerpt, categories, tags |
wordpress_get_post |
获取特定帖子 | id |
— |
wordpress_list_posts |
列出带有筛选器的帖子 | -- | page, per_page, search, status, order, orderby |
wordpress_update_post |
更新现有帖子 | id |
title, content, status, excerpt, categories, tags, slug |
在MCP客户端注册服务器后,您可以说出或键入自然语言提示:
- “创建一个名为“Hello World”的WordPress帖子草稿,内容为“这是我的第一篇帖子”。”
- “更新WordPress帖子123并将其状态更改为发布。”
- “更新WordPress帖子123,并将其slug设置为‘hello world post’。”
- “上传一张PNG图像,并将其作为特色图像附加到帖子123。”
- “列出最近的五篇WordPress帖子。”
- “创建一个名为“关于我们”的新WordPress页面,总结我们的公司。”
- “更新WordPress第42页,并将其标题设置为‘关于我们公司’。”
- “列出所有WordPress类别和标签,以便我可以清理重复项。”
附带的脚本 test-create-post.js 这是另一个快速的理智检查。运行后 npm run build,执行 node test-create-post.js 创建一份题为“通过MCP服务器进行第二次测试”的草稿🤖”.
对于上传测试,请尝试 node test-upload-media.js path/to/image.png <postId> 上传并(可选)作为特色媒体附加到帖子中。
开发与测试
| 命令 | 描述 |
|---|---|
npm run build |
编译TypeScript源代码 src/ 到 build/. |
npm run watch |
重新生成文件更改,以加快迭代速度。 |
node build/index.js |
构建后启动MCP服务器。 |
node test-create-post.js |
通过创建草稿柱来测试连接性。 |
项目布局:
src/ # TypeScript sources and tool implementations
build/ # Compiled JS artifacts consumed by MCP hosts
docs/ (optional) # Additional guides and blog content
IDE_SETUP.md # IDE-specific MCP instructions
test-create-post.js # Manual smoke test script
故障排除
“无法连接到WordPress网站”
- 确认
WORDPRESS_URL包含https://并从您的机器上解析。 - 验证REST API终结点
https://your-site.com/wp-json/wp/v2/回答。 - 检查阻止应用程序密码请求的防火墙或插件。
“401未经授权”
- 仔细检查用户名是否与应用程序密码颁发者匹配。
- 重新生成应用程序密码并更新
.env. - 保留密码中的空格;WordPress期待他们。
MCP客户端内“找不到工具”
- 编辑客户端配置后重新启动客户端。
- 确保
npm run build成功和build/index.js存在。 - 确认文件路径在Windows上使用转义反斜杠。
安全
- 不要承诺
.env;默认情况下会忽略它。 - 如果设备丢失,请从wp-admin中撤消应用程序密码。
- 所有远程WordPress实例都首选HTTPS,这样凭据就不会遍历明文。
贡献和许可
MIT许可证。欢迎问题和拉取请求,特别是在新的MCP工作流程、额外的测试覆盖率和文档改进方面。
在VS代码上测试配置
{
"servers": {
"wordpress": {
"command": "node",
"args": [
"C:\\Users\\<YourUser>\\Projects\\WordPress-MCP\\build\\index.js"
],
"cwd": "C:\\Users\\<YourUser>\\Projects\\WordPress-MCP"
}
},
"inputs": []
}
替换 <YourUser> 使用Windows用户名,或者如果将存储库保留在其他位置,则调整整个路径。
