wordpress-mcp-server1

Fedyaration/wordpress-mcp-server1

3.2

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.

Tools
4
Resources
0
Prompts
0

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:

  1. Войдите в WordPress админку
  2. Users → Profile → Application Passwords
  3. Введите имя (например "MCP Server")
  4. Нажмите "Add New Application Password"
  5. Скопируйте сгенерированный пароль
  6. Используйте его в 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

  1. Откройте ChatGPT (web или app)
  2. Перейдите в Settings → Connectors
  3. Нажмите New Connector или Add Connector
  4. Заполните форму:
    • Name: WordPress MCP Server
    • URL: https://your-url.trycloudflare.com/sse
    • Authentication: No authentication
  5. Нажмите Save или Connect

Шаг 8: Тестирование

Напишите ChatGPT:

Напиши статью про искусственный интеллект на 300 слов и опубликуй на моём WordPress сайте

ChatGPT автоматически:

  1. Напишет статью
  2. Использует инструмент create_post
  3. Опубликует на ваш WordPress сайт
  4. Покажет вам ссылку на пост

Доступные инструменты

1. create_post

Создать новый пост на WordPress

Параметры:

  • title (обязательно) - Заголовок поста
  • content (обязательно) - Содержимое в HTML
  • excerpt (опционально) - Краткое описание
  • 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

Решение:

  1. Проверьте WORDPRESS_URL, WORDPRESS_USERNAME, WORDPRESS_PASSWORD в mcp_sse_server.py
  2. Убедитесь, что используете Application Password
  3. Проверьте, что WordPress REST API доступен:
    curl https://your-site.com/wp-json/wp/v2/posts
    

404 Not Found на WordPress

Проблема: WordPress REST API отключен

Решение:

  1. Убедитесь, что WordPress версии 4.7+
  2. Проверьте, что REST API не заблокирован плагинами безопасности
  3. Откройте в браузере: 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

Безопасность

⚠️ ВАЖНЫЕ ЗАМЕЧАНИЯ:

  1. Application Password: Всегда используйте WordPress Application Password, а не основной пароль аккаунта

  2. Нет аутентификации на 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
    
  3. Cloudflare бесплатный туннель: URL меняется при каждом перезапуске. Для production используйте платный туннель с фиксированным доменом.

  4. Firewall: Убедитесь, что открыт только порт 8000 для локального доступа:

    sudo ufw status
    sudo ufw allow 8000/tcp
    
  5. 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 - используйте свободно для любых целей!

Поддержка

Если возникли проблемы:

  1. Проверьте логи: sudo journalctl -u wordpress-mcp-server -f
  2. Проверьте WordPress REST API: curl https://your-site.com/wp-json/wp/v2/posts
  3. Проверьте Cloudflare Tunnel: cat /root/cloudflared.log
  4. Проверьте credentials в mcp_sse_server.py

Автор

Создано с использованием MCP (Model Context Protocol) от Anthropic.


Готово! Теперь ваш WordPress сайт управляется через ChatGPT! 🚀