WordPress MCP服务器
MCP(Model Context Protocol)是一种通过ChatGPT管理WordPress帖子的服务器。
这是什么?
它是一个系统,允许ChatGPT通过MCP协议直接创建,更新,阅读和删除WordPress网站上的帖子。
机会:
- ✅ 使用任何内容创建新帖子
- ✅ 更新现有职位
- ✅ 获取职位列表
- ✅ 删除职位
- ✅ 处理草稿和出版物
- ✅ 与ChatGPT完全集成
建筑
ChatGPT (OpenAI)
↓ HTTPS/SSE
Cloudflare Tunnel
↓ HTTP (localhost:8000)
FastAPI MCP Server
↓ WordPress REST API
WordPress Site快速启动
步骤1:准备服务器
您需要一个Ubuntu服务器(20.04+):
- Python 3.10+
- root或sudo访问
- 互联网连接
步骤2:复制文件
# Создайте директорию на вашем локальном компьютере
mkdir wordpress-mcp-project
cd wordpress-mcp-project
# Сохраните туда эти файлы:
# - mcp_sse_server.py
# - requirements.txt
# - install.sh步骤3:自定义WordPress Credentials
打开文件 mcp_sse_server.py 然后更改这些字符串:
WORDPRESS_URL = "https://your-wordpress-site.com/"
WORDPRESS_USERNAME = "your-username"
WORDPRESS_PASSWORD = "your-password"⚠️ 重要的是: 使用WordPress应用程序密码,而不是普通密码!
如何在WordPress中创建应用程序密码:
- 登录WordPress Admin
- 用户→ 个人资料→ 应用程序密码
- 输入名称(例如“MCP服务器”)
- 单击“添加新应用程序密码”
- 复制生成的密码
- 使用它在
WORDPRESS_PASSWORD
步骤4:将文件上传到服务器
# На вашем локальном компьютере
scp mcp_sse_server.py root@your-server-ip:~/
scp requirements.txt root@your-server-ip:~/
scp install.sh root@your-server-ip:~/
# Подключитесь к серверу
ssh root@your-server-ip步骤5:启动安装
chmod +x install.sh
sudo ./install.sh脚本自动:
- ✅ 更新系统
- ✅ 建立Python和依赖关系
- ✅ 创建虚拟环境
- ✅ 安装Python包
- ✅ 创建Systemd服务
- ✅ 启动MCP服务器
- ✅ 安装Cloudflare Tunnel
- ✅ ВыдастHTTPS网址
步骤6:获取HTTPS URL
安装后,脚本将显示HTTPS URL:
🌐 Your HTTPS URL (for ChatGPT):
https://abc-123-xyz.trycloudflare.com如果URL丢失,请重新检索:
cat /root/cloudflared.log | grep "https://"步骤7:连接到ChatGPT
- 打开chatgpt(WEB或app)
- 转到 设置→ 连接器
- 点击 新建连接器 或 添加连接器
- 请填写表格:
- 姓名: WordPress MCP服务器 - 网址: https://your-url.trycloudflare.com/sse - 身份验证: 无身份验证
- 点击 保存 或 连接
步骤8:测试
写chatgpt:
Напиши статью про искусственный интеллект на 300 слов и опубликуй на моём WordPress сайтеchatgpt自动:
- 写一篇文章
- 使用工具
create_post - 发布到您的WordPress网站
- 将向您显示帖子的链接
可用工具
1.create_post
在WordPress上创建新帖子
参数:
title(必填)-帖子标题content(必填)-HTML内容excerpt(可选)-简短描述status(可选)-publish,draft,private(默认情况下:publish)
例子:
ChatGPT, создай пост с заголовком "Hello World" и текстом "This is my first post"2.更新_帖子
更新现有职位
参数:
post_id(必填)-帖子IDtitle(可选)-新标题content(可选)-新内容excerpt(可选)-新描述
例子:
ChatGPT, обнови пост с ID 123, добавь в конец "P.S. Обновлено 2025"3.获取帖子
获取帖子列表
参数:
per_page(可选)-帖子数(1-100,默认值:10)page(可选)-页面号(默认为1)
例子:
ChatGPT, покажи мне последние 5 постов с моего сайта4.删除_帖子
撤职
参数:
post_id(必填)-要删除的帖子ID
例子:
ChatGPT, удали пост с ID 123服务器管理
状态检查
sudo systemctl status wordpress-mcp-server实时查看日志
sudo journalctl -u wordpress-mcp-server -f重新启动服务器
sudo systemctl restart wordpress-mcp-server停止服务器
sudo systemctl stop wordpress-mcp-server启动服务器
sudo systemctl start wordpress-mcp-server健康检查
curl http://localhost:8000/health服务器信息
curl http://localhost:8000/ | python3 -m json.toolCloudflare隧道
重新启动隧道
pkill cloudflared
nohup cloudflared tunnel --url http://localhost:8000 > /root/cloudflared.log 2>&1 &
sleep 5
cat /root/cloudflared.log | grep "https://"获取隧道URL
cat /root/cloudflared.log | grep "https://"检查隧道状态
ps aux | grep cloudflared故障排除
服务器无法启动
检查日志:
sudo journalctl -u wordpress-mcp-server -n 50检查端口8000是否被占用:
sudo netstat -tlnp | grep 8000检查文件权限:
ls -la /opt/wordpress-mcp-server/Chatgpt无法连接
检查Cloudflare Tunnel:
cat /root/cloudflared.log | tail -20检查隧道运行:
ps aux | grep cloudflared测试HTTPS URL:
curl https://your-url.trycloudflare.com/health401 Unauthorized创建帖子
问题: WordPress Credentials错误
解决办法:
- 检查
WORDPRESS_URL,WORDPRESS_USERNAME,WORDPRESS_PASSWORD在mcp_sse_server.py - 验证您是否使用Application Password
- 检查WordPress REST API是否可用:
curl https://your-site.com/wp-json/wp/v2/posts404找不到WordPress
问题: WordPress Rest API禁用
解决办法:
- 验证WordPress版本4.7+
- 检查REST API是否被安全插件阻止
- 在浏览器中打开:
https://your-site.com/wp-json/wp/v2/posts
Cloudflare URL不断变化
问题: 免费Cloudflare隧道不固定URL
解决办法: 使用带有固定域的付费Cloudflare Tunnel:
cloudflared tunnel login
cloudflared tunnel create wordpress-mcp
cloudflared tunnel route dns wordpress-mcp mcp.yourdomain.com安全
⚠️ 重要意见:
- 应用程序密码: 始终使用WordPress Application Password而不是主帐户密码
- 在MCP Endpoint上没有身份验证: 当前版本没有身份验证。对于Production,请添加API密钥:
# В mcp_sse_server.py
API_KEY = "your-secret-key"
@app.post("/mcp")
async def mcp_endpoint(request: Request):
api_key = request.headers.get("X-API-Key")
if api_key != API_KEY:
return JSONResponse({"error": "Unauthorized"}, status_code=401)
# ... rest of code- Cloudflare免费隧道: URL在每次重新启动时都会更改。要制作,请使用付费固定域隧道。
- 防火墙: 确保仅打开端口8000用于本地访问:
sudo ufw status
sudo ufw allow 8000/tcp- HTTPS只有: Cloudflare Tunnel自动提供HTTPS。不要直接在互联网上打开8000端口。
功能扩展
添加类别管理
编辑 mcp_sse_server.py 加上:
async def get_categories(self) -> Dict[str, Any]:
response = await self.client.get(f"{self.api_url}/categories")
response.raise_for_status()
return {"success": True, "categories": response.json()}添加媒体文件
async def upload_media(self, file_path: str) -> Dict[str, Any]:
with open(file_path, 'rb') as f:
files = {'file': f}
response = await self.client.post(
f"{self.api_url}/media",
files=files
)
response.raise_for_status()
return {"success": True, "media": response.json()}系统要求
- 操作系统: Ubuntu 20.04或更新版本(或任何带有SystemD的Linux)
- python 3.10或更新
- 猛撞: 最小512MB
- 磁盘 : 1GB可用空间
- 网络: 互联网连接
- 访问: root或sudo权限
WordPress要求
- 版本: WordPress 4.7或更新
- REST API: 启用(默认启用)
- 应用程序密码: 可用(WordPress 5.6+)
- HTTPS: 建议
许可证
MIT许可证-免费用于任何目的!
支持
如果出现问题:
- 检查日志:
sudo journalctl -u wordpress-mcp-server -f - 查看WordPress Rest API:
curl https://your-site.com/wp-json/wp/v2/posts - 检查Cloudflare Tunnel:
cat /root/cloudflared.log - 检查credentials中的
mcp_sse_server.py
作者
使用Anthropic的MCP(Model Context Protocol)创建。
______________________________________________________________________
准备好了!您的WordPress网站现在通过ChatGPT管理! 🚀
