WordPress MCP Server
MCP (Model Context Protocol) сервер для управления WordPress постами через ChatGPT.
Что это?
Позволяет ChatGPT создавать, обновлять, получать и удалять посты на вашем WordPress сайте.
Быстрый старт
1. Скопируйте файлы на сервер
# На вашем Ubuntu сервере создайте директорию
mkdir -p ~/wordpress-mcp-project
cd ~/wordpress-mcp-project
# Скопируйте туда эти файлы:
# - mcp_sse_server.py
# - requirements.txt
# - install.sh2. Настройте WordPress credentials
Откройте mcp_sse_server.py и измените:
WORDPRESS_URL = "https://your-wordpress-site.com/"
WORDPRESS_USERNAME = "your-username"
WORDPRESS_PASSWORD = "your-password"3. Запустите установку
chmod +x install.sh
sudo ./install.shСкрипт автоматически:
- Установит все зависимости
- Создаст виртуальное окружение Python
- Установит Python пакеты
- Создаст systemd сервис
- Запустит MCP сервер
- Установит Cloudflare Tunnel для HTTPS
- Выдаст HTTPS URL для подключения к ChatGPT
4. Подключите к ChatGPT
- Откройте ChatGPT
- Settings → Connectors → New Connector
- Укажите:
- Name: WordPress MCP - URL: https://your-url.trycloudflare.com/sse (из вывода install.sh) - Authentication: No authentication
- Сохраните
5. Используйте!
Попросите ChatGPT:
Напиши статью про AI на 300 слов и опубликуй на моём WordPress сайтеАрхитектура
ChatGPT
↓ HTTPS/SSE
Cloudflare Tunnel
↓ HTTP
FastAPI MCP Server (port 8000)
↓ HTTPS
WordPress REST API
↓
WordPress SiteДоступные инструменты
- create_post - Создать новый пост
- update_post - Обновить существующий пост
- get_posts - Получить список постов
- delete_post - Удалить пост
Управление
Проверка статуса
sudo systemctl status wordpress-mcp-serverПросмотр логов
sudo journalctl -u wordpress-mcp-server -fПерезапуск
sudo systemctl restart wordpress-mcp-serverПолучить HTTPS URL
cat ~/cloudflared.log | grep "https://"Перезапустить Cloudflare Tunnel
pkill cloudflared
nohup cloudflared tunnel --url http://localhost:8000 > ~/cloudflared.log 2>&1 &
sleep 5
cat ~/cloudflared.log | grep "https://"API Endpoints
GET /
Информация о сервере
Response:
{
"name": "WordPress MCP SSE Server",
"version": "1.0.0",
"protocol": "MCP over SSE",
"endpoints": {
"health": "/health",
"sse": "/sse",
"mcp": "/mcp"
},
"tools": [
"create_post",
"update_post",
"get_posts",
"delete_post"
]
}GET /health
Health check endpoint
Response:
{
"status": "healthy",
"service": "wordpress-mcp-sse-server"
}GET /sse
SSE endpoint для ChatGPT
Headers:
Cache-Control: no-cacheX-Accel-Buffering: no
Events:
endpoint- информация о MCP endpointheartbeat- каждые 15 секунд
POST /mcp
MCP JSON-RPC endpoint
Methods:
initialize- инициализация MCP соединенияtools/list- список доступных инструментовtools/call- вызов инструмента
Инструменты MCP
create_post
Создать новый пост
Parameters:
title(string, required) - заголовок постаcontent(string, required) - содержимое в HTMLexcerpt(string, optional) - краткое описаниеstatus(string, optional) - статус: "publish", "draft", "private"
Response:
{
"success": true,
"post_id": 123,
"url": "https://site.com/post-title/",
"message": "Post 'Title' created successfully"
}update_post
Обновить существующий пост
Parameters:
post_id(integer, required) - ID постаtitle(string, optional) - новый заголовокcontent(string, optional) - новое содержимоеexcerpt(string, optional) - новое описание
Response:
{
"success": true,
"post_id": 123,
"url": "https://site.com/post-title/",
"message": "Post 123 updated successfully"
}get_posts
Получить список постов
Parameters:
per_page(integer, optional) - количество постов на странице (1-100, по умолчанию 10)page(integer, optional) - номер страницы (по умолчанию 1)
Response:
{
"success": true,
"posts": [
{
"id": 123,
"title": "Post Title",
"excerpt": "Post excerpt...",
"status": "publish",
"date": "2024-01-01T00:00:00",
"url": "https://site.com/post-title/",
"author": "Author Name"
}
],
"count": 1,
"total_posts": 1,
"total_pages": 1,
"current_page": 1,
"message": "Retrieved 1 posts"
}delete_post
Удалить пост
Parameters:
post_id(integer, required) - ID поста
Response:
{
"success": true,
"post_id": 123,
"message": "Post 123 deleted successfully"
}Требования
- Ubuntu 18.04+ или другая Linux система
- Python 3.8+
- WordPress сайт с включенным REST API
- Пользователь WordPress с правами на создание/редактирование постов
Безопасность
- Используйте HTTPS для WordPress сайта
- Создайте отдельного пользователя WordPress только для MCP
- Ограничьте права пользователя только необходимыми операциями
- Регулярно обновляйте пароли
Устранение неполадок
Сервер не запускается
sudo journalctl -u wordpress-mcp-server -fОшибки подключения к WordPress
- Проверьте URL WordPress сайта
- Убедитесь, что REST API включен
- Проверьте логин и пароль
- Проверьте права пользователя
Cloudflare Tunnel не работает
pkill cloudflared
nohup cloudflared tunnel --url http://localhost:8000 > ~/cloudflared.log 2>&1 &ChatGPT не подключается
- Проверьте HTTPS URL
- Убедитесь, что сервер отвечает на
/health - Проверьте логи MCP сервера
Разработка
Локальная разработка
# Установить зависимости
pip install -r requirements.txt
# Запустить сервер
python mcp_sse_server.pyТестирование
# Health check
curl http://localhost:8000/health
# Server info
curl http://localhost:8000/
# Test MCP endpoint
curl -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "initialize", "id": 1}'Лицензия
MIT License
Поддержка
При возникновении проблем:
- Проверьте логи сервера
- Убедитесь в правильности конфигурации WordPress
- Проверьте сетевое подключение
- Создайте issue в репозитории проекта
