WordPress MCP 服务器(使用 PHP SDK)
一个专业的WordPress MCP(模型上下文协议)服务器,它使像Claude这样的AI助手能够通过标准化协议与您的WordPress网站进行交互。
这是什么?
这台服务器通过MCP工具暴露您的WordPress内容、分类法和网站信息,使AI助手能够:
- 列出、阅读、创建、更新和删除WordPress内容(帖子、页面、自定义文章类型)
- 管理分类法(类别、标签、自定义分类法)和术语
- 发现内容类型和分类法
- 按URL或别名搜索内容
特点/功能
✨(闪烁的星星或光芒) 17款WordPress工具
- 内容管理:
list_content,get_content,create_content,update_content,delete_content - 内容发现:
discover_content_types,get_content_by_slug,find_content_by_url - 分类管理:
list_terms,get_term,create_term,update_term,delete_term - 分类发现:
discover_taxonomies,get_taxonomy - 学期作业:
assign_terms_to_content,get_content_terms
🔒 表示“锁”或“安全”的图标,常用于表示保护、保密或安全状态。 安全且可投入生产
- 使用官方PHP MCP SDK构建
- 使用Respect/Validation进行综合验证
- 适当的错误处理和日志记录
- 110多个单元测试通过
🚀 表情符号“🚀”在中文中通常被直接保留为“🚀”,它代表火箭或快速上升的意思,常用于表达兴奋、期待或快速进展的情绪。在没有特定上下文的情况下,这个符号本身无需翻译,直接使用即可。 易于集成
- 通过StreamableHTTP进行HTTP传输(无需复杂设置)
- 通过mcp-remote与Claude Desktop协同工作
- 在WordPress根目录下的简单安装
安装
步骤1:在WordPress中安装
- 下载此存储库
- 将整个目录放置在您的WordPress根文件夹中(即
wp-config.php(位于) - 将目录重命名为一个简单的名称,比如
mcp-server
你的目录结构应该如下所示:
/your-wordpress-site/
├── wp-admin/
├── wp-content/
├── wp-includes/
├── wp-config.php
├── mcp-server/ ← This directory
│ ├── index.php
│ ├── vendor/
│ └── ...步骤2:安装依赖项
在(此处)打开终端 mcp-server 目录并运行:
composer install --no-dev步骤3:配置WordPress路径
MCP 服务器需要知道您的 WordPress 安装位置。
- 复制配置模板:
cp config.example.php config.php- 编辑
config.php并设置wordpress_path到您的WordPress安装位置:
如果MCP服务器位于WordPress根目录的子目录中 (推荐):
'wordpress_path' => '../wp-load.php',如果WordPress位于子目录中 (开发):
'wordpress_path' => 'wp/wp-load.php',使用绝对路径:
// Linux/macOS
'wordpress_path' => '/var/www/html/wp-load.php',
// Windows (use forward slashes)
'wordpress_path' => 'C:/xampp/htdocs/mysite/wp-load.php',重要提示: 这个(或:那个,具体根据上下文确定) config.php 该文件已被Git忽略,且特定于您的安装。切勿将其提交到版本控制系统中。
步骤3.5:(可选)启用安全模式
安全模式可防止具有破坏性的删除操作,为您的WordPress内容提供额外一层保护。
安全模式的作用:
- 积木块:
delete_content并且delete_term操作 - 允许所有读取操作和写入操作(创建、更新)
何时启用安全模式:
- 必须防止意外删除的生产环境
- 多用户共享环境
- 读多写少或写操作有限的访问场景
- 在数据保存至关重要的测试与开发中
启用安全模式:
编辑 config.php 并设置:
'safe_mode' => true,当在启用安全模式的情况下尝试执行删除操作时,该工具将返回一条错误信息:
Operation blocked: Safe mode is enabled. Deleting content is not allowed.默认安全模式是 关闭 (false),允许所有操作,包括删除。
步骤4:验证访问权限
确保您的网络服务器(Apache/Nginx)可以访问 mcp-server 目录。
访问网址: 服务器可通过以下地址访问: https://your-site.com/mcp-server/index.php
步骤5:测试服务器
访问 https://your-site.com/mcp-server/index.php 在您的浏览器中。您应该会看到一个JSON响应,表明MCP服务器正在运行。
Claude桌面集成
此服务器支持两种连接方式:
选项1:HTTP传输(推荐用于远程站点)
在通过HTTP/HTTPS连接到远程WordPress站点时,使用此方法。
安装 mcp-remote(可选,Claude Desktop 可自行完成此操作):
npm install -g mcp-remote配置Claude桌面版:
在你的Claude Desktop配置文件中添加:
macOS:(可翻译为)苹果操作系统 ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"wordpress": {
"command": "npx",
"args": [
"mcp-remote",
"https://your-site.com/mcp-server/index.php"
]
}
}
}注: 替换 https://your-site.com/mcp-server/index.php 使用您实际的URL。
对于本地开发(使用无SSL的HTTP):
{
"mcpServers": {
"wordpress": {
"command": "npx",
"args": [
"mcp-remote",
"http://your-local-site.test/mcp-server/index.php",
"--allow-http"
]
}
}
}选项2:Stdio传输(推荐用于本地站点)
当在与Claude Desktop同一台机器上本地运行WordPress时,请使用此方法。这样速度更快,且无需HTTP。
配置Claude桌面版:
{
"mcpServers": {
"wordpress": {
"command": "php",
"args": [
"/absolute/path/to/your-wordpress-site/mcp-server/server.php"
]
}
}
}macOS/Linux 示例:
{
"mcpServers": {
"wordpress": {
"command": "php",
"args": [
"/Users/yourname/Sites/mywordpress/mcp-server/server.php"
]
}
}
}Windows 示例:
{
"mcpServers": {
"wordpress": {
"command": "php",
"args": [
"C:\\xampp\\htdocs\\mywordpress\\mcp-server\\server.php"
]
}
}
}注:
- 确保
php在您的系统PATH中 - 使用绝对路径来
server.php - Stdio传输不需要运行Web服务器
重启Claude桌面版
添加配置后,请完全重启Claude Desktop(退出并重新打开)。
与Claude一起使用
一旦配置好,您就可以向Claude提出诸如以下问题:
- “列出我所有的博客文章”
- “创建一篇新草稿帖子,标题为‘Hello World’”
- “我有哪些类别?”
- “将帖子ID 5的状态更新为已发布”
- “查找URL为https://mysite.com/my-post的帖子”
- “显示我网站上的所有页面”
克劳德将使用MCP工具自动与您的WordPress网站进行交互!
示例提示
内容管理:
- “列出我最近发布的5篇文章”
- “创建一个标题为‘我的新文章’的新帖子,并包含一些示例内容”
- “更新标题为‘关于我们’的帖子,将其状态更改为草稿”
- “显示所有草稿帖子”
分类管理:
- “列出所有类别”
- “创建一个名为‘技术’的新类别”
- “我的网站上有哪些标签?”
- “将‘技术’类别分配给帖子ID 10”
发现:
- “我的WordPress网站有哪些内容类型?”
- “注册了哪些分类体系?”
- “在网址 https://mysite.com/2024/hello-world 找到该帖子”
故障排除
服务器无响应
- 检查网址: 确保您的Claude配置中的URL正确且可访问
- 清除会话: 删除该
sessions/目录内容:rm -rf mcp-server/sessions/* - 检查权限: 确保网络服务器能够读写到
sessions/目录
chmod -R 755 mcp-server/
chmod -R 777 mcp-server/sessions/“连接被拒绝”或“无法连接”
- 验证服务器是否正在运行: 在浏览器中访问该网址
- 检查防火墙: 确保您的防火墙允许访问网络服务器
- 检查SSL: 对于HTTPS网站,请确保您的SSL证书有效
工具无法正常工作
- 检查WordPress路径: 验证是否
config.php已正确设置到您的WordPress安装路径:
'wordpress_path' => '../wp-load.php', // Update this path- 清晰的会话:
rm -rf sessions/*- 检查错误日志: 看看
php-errors.log在mcp-server目录中
克劳德看不到工具
- 重启Claude桌面版 完全(退出并重新打开,不要只是关闭窗口)
- 检查配置语法: 确保您的
claude_desktop_config.json是有效的JSON - 检查日志: Claude Desktop的日志位于:
- macOS: ~/Library/Logs/Claude/ - Windows: %APPDATA%\Claude\logs\
测试服务器
您可以直接使用MCP检查器来测试MCP服务器:
# Install inspector
npm install -g @modelcontextprotocol/inspector
# List all tools
npx @modelcontextprotocol/inspector --cli https://your-site.com/mcp-server/index.php --transport http --method tools/list
# Test a tool
npx @modelcontextprotocol/inspector --cli https://your-site.com/mcp-server/index.php --transport http --method tools/call --tool-name discover_content_types安全考虑事项
⚠️(表示警告或注意的符号,无具体文字含义) 重要的安全注意事项:
- 认证: 此服务器不包含身份验证。请确保:
- 为所有连接使用HTTPS(SSL/TLS) - 使用Web服务器配置限制访问(IP白名单、基本身份验证等) - 考虑在生产环境中实施WordPress认证
- 访问控制: 服务器通过WordPress功能可以完全访问您的WordPress数据库。请仅向可信赖的客户端开放访问权限。
- 防火墙: 考虑使用防火墙或VPN来限制仅允许受信任的IP访问。您可以在Web服务器配置中设置IP限制(Apache虚拟主机或Nginx服务器块)。
发展
对于希望扩展此服务器的开发者:
- 见
CLAUDE.md用于开发文档 - 运行测试:
composer test - 运行静态分析:
composer analyse - 检测员测试:
./tests/inspector-tests.sh
要求
- PHP 8.2 或更高版本
- WordPress 5.0 或更高版本
- Composer(在编程领域,通常指PHP的依赖管理工具)
- Node.js 和 npm(用于 mcp-remote)
支持
如需了解问题、提出疑问或做出贡献,请访问项目仓库。
许可证
此项目采用MIT许可证授权。
