Skip to main content
Glama

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.sh

2. Настройте 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

  1. Откройте ChatGPT

  2. Settings → Connectors → New Connector

  3. Укажите:

    • Name: WordPress MCP

    • URL: https://your-url.trycloudflare.com/sse (из вывода install.sh)

    • Authentication: No authentication

  4. Сохраните

5. Используйте!

Попросите ChatGPT:

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

Архитектура

ChatGPT ↓ HTTPS/SSE Cloudflare Tunnel ↓ HTTP FastAPI MCP Server (port 8000) ↓ HTTPS WordPress REST API ↓ WordPress Site

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

  1. create_post - Создать новый пост

    • Параметры: title, content, excerpt (опционально), status (publish/draft/private)

  2. update_post - Обновить существующий пост

    • Параметры: post_id, title (опционально), content (опционально), excerpt (опционально)

  3. get_posts - Получить список постов

    • Параметры: per_page (1-100, по умолчанию 10), page (по умолчанию 1)

  4. delete_post - Удалить пост

    • Параметры: post_id

Управление

Проверка статуса

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://"

Troubleshooting

Сервер не запускается

# Проверьте логи sudo journalctl -u wordpress-mcp-server -n 50 # Проверьте порт sudo netstat -tlnp | grep 8000

ChatGPT не подключается

# Проверьте Cloudflare Tunnel cat ~/cloudflared.log | grep "https://" # Протестируйте URL curl https://your-url.trycloudflare.com/health

401 ошибка при создании поста

Проверьте WordPress credentials в mcp_sse_server.py. Убедитесь, что:

  • URL правильный и заканчивается на /

  • Username и password корректные

  • У пользователя есть права на создание постов

  • WordPress REST API включен

Ошибка "WordPress client not initialized"

Сервер не смог инициализировать WordPress клиент. Проверьте:

  • Логи сервера: sudo journalctl -u wordpress-mcp-server -n 50

  • Доступность WordPress сайта

  • Правильность credentials

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

⚠️ Важно:

  • WordPress credentials хранятся в коде - используйте Application Password

  • Нет аутентификации на MCP endpoint - добавьте API ключ для production

  • Cloudflare бесплатный туннель может быть нестабилен

Рекомендации для production:

  1. Используйте Application Password вместо основного пароля:

    • В WordPress: Users → Profile → Application Passwords

    • Создайте новый Application Password для MCP

  2. Добавьте переменные окружения:

    # Создайте .env файл echo "WORDPRESS_URL=https://your-site.com/" > .env echo "WORDPRESS_USERNAME=your-username" >> .env echo "WORDPRESS_PASSWORD=your-app-password" >> .env
  3. Добавьте API Key аутентификацию:

    • Генерируйте уникальный API ключ

    • Проверяйте header X-API-Key на каждом запросе

  4. Используйте HTTPS:

    • Настройте Nginx/Apache с SSL сертификатом

    • Используйте Let's Encrypt для бесплатных SSL сертификатов

Требования

  • Ubuntu 20.04+

  • Python 3.10+

  • WordPress с REST API (включен по умолчанию в WordPress 4.7+)

  • Root или sudo доступ

Расширение функционала

Добавление новых инструментов

Чтобы добавить новые инструменты (например, работа с категориями):

  1. Добавьте метод в класс WordPressMCP

  2. Добавьте Tool в функцию handle_list_tools()

  3. Добавьте обработку в функцию handle_call_tool()

Пример:

async def get_categories(self): url = f"{self.api_base}/categories" response = await self.client.get(url) return response.json()

Примеры использования

Создание статьи через ChatGPT:

Пользователь: Напиши статью про Model Context Protocol на 500 слов и опубликуй ChatGPT: Создаю статью... [Использует create_post] Статья опубликована на https://your-site.com/mcp-protocol/

Получение последних постов:

Пользователь: Покажи последние 5 постов ChatGPT: [Использует get_posts] 1. "MCP Protocol..." - https://your-site.com/mcp/ 2. "AI Revolution" - https://your-site.com/ai-revolution/ ...

Создание черновика:

Пользователь: Создай черновик статьи про Python ChatGPT: [Использует create_post со status="draft"] Черновик создан! ID: 124

Мониторинг

Для продакшена рекомендуется добавить:

  • Prometheus метрики (количество запросов, ошибок, latency)

  • Healthcheck endpoints

  • Алерты при падении сервиса

  • Логирование в централизованную систему (ELK, Loki)

Лицензия

MIT - используйте свободно!

Поддержка

При возникновении проблем:

  1. Проверьте логи: sudo journalctl -u wordpress-mcp-server -f

  2. Проверьте статус: sudo systemctl status wordpress-mcp-server

  3. Протестируйте WordPress API напрямую:

    curl -u "username:password" https://your-site.com/wp-json/wp/v2/posts

Авторы

Created with ❤️ using Model Context Protocol

Ссылки

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kuksenokpolina23-arch/mcp22'

If you have feedback or need assistance with the MCP directory API, please join our Discord server