Fedyaration/wordpress-mcp-server1
If you are the rightful owner of wordpress-mcp-server1 and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
This document provides a comprehensive guide on setting up and using an MCP (Model Context Protocol) server to manage WordPress posts through ChatGPT.
WordPress MCP Server
MCP (Model Context Protocol) сервер для управления WordPress постами через ChatGPT.
Что это?
Это система, которая позволяет ChatGPT напрямую создавать, обновлять, читать и удалять посты на вашем WordPress сайте через MCP протокол.
Возможности:
- ✅ Создание новых постов с любым содержимым
- ✅ Обновление существующих постов
- ✅ Получение списка постов
- ✅ Удаление постов
- ✅ Работа с черновиками и публикациями
- ✅ Полная интеграция с 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 Application Password, а не обычный пароль!
Как создать Application Password в WordPress:
- Войдите в WordPress админку
- Users → Profile → Application Passwords
- Введите имя (например "MCP Server")
- Нажмите "Add New Application Password"
- Скопируйте сгенерированный пароль
- Используйте его в
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 URL
Шаг 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)
- Перейдите в Settings → Connectors
- Нажмите New Connector или Add Connector
- Заполните форму:
- Name: WordPress MCP Server
- URL:
https://your-url.trycloudflare.com/sse - Authentication: No authentication
- Нажмите Save или Connect
Шаг 8: Тестирование
Напишите ChatGPT:
Напиши статью про искусственный интеллект на 300 слов и опубликуй на моём WordPress сайте
ChatGPT автоматически:
- Напишет статью
- Использует инструмент
create_post - Опубликует на ваш WordPress сайт
- Покажет вам ссылку на пост
Доступные инструменты
1. create_post
Создать новый пост на WordPress
Параметры:
title(обязательно) - Заголовок постаcontent(обязательно) - Содержимое в HTMLexcerpt(опционально) - Краткое описаниеstatus(опционально) -publish,draft,private(по умолчанию:publish)
Пример:
ChatGPT, создай пост с заголовком "Hello World" и текстом "This is my first post"
2. update_post
Обновить существующий пост
Параметры:
post_id(обязательно) - ID постаtitle(опционально) - Новый заголовокcontent(опционально) - Новое содержимоеexcerpt(опционально) - Новое описание
Пример:
ChatGPT, обнови пост с ID 123, добавь в конец "P.S. Обновлено 2025"
3. get_posts
Получить список постов
Параметры:
per_page(опционально) - Количество постов (1-100, по умолчанию: 10)page(опционально) - Номер страницы (по умолчанию: 1)
Пример:
ChatGPT, покажи мне последние 5 постов с моего сайта
4. delete_post
Удалить пост
Параметры:
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.tool
Cloudflare Tunnel
Перезапустить туннель
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
Troubleshooting
Сервер не запускается
Проверьте логи:
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/health
401 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/posts
404 Not Found на 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
Безопасность
⚠️ ВАЖНЫЕ ЗАМЕЧАНИЯ:
-
Application Password: Всегда используйте 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 меняется при каждом перезапуске. Для production используйте платный туннель с фиксированным доменом.
-
Firewall: Убедитесь, что открыт только порт 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()}
Системные требования
- OS: Ubuntu 20.04 или новее (или любой Linux с systemd)
- Python: 3.10 или новее
- RAM: Минимум 512MB
- Диск: 1GB свободного места
- Сеть: Интернет соединение
- Доступ: Root или sudo права
WordPress требования
- Версия: WordPress 4.7 или новее
- REST API: Включен (по умолчанию включен)
- Application Passwords: Доступны (WordPress 5.6+)
- HTTPS: Рекомендуется
Лицензия
MIT License - используйте свободно для любых целей!
Поддержка
Если возникли проблемы:
- Проверьте логи:
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
Автор
Создано с использованием MCP (Model Context Protocol) от Anthropic.
Готово! Теперь ваш WordPress сайт управляется через ChatGPT! 🚀