Ghost CMS MCP Server
Ghost MCP Server
Это форк MFYDev/ghost-mcp, который теперь поддерживается и улучшается @hithereiamaliff.
Этот сервер протокола контекста моделей (MCP) предоставляет мощный и гибкий способ управления вашим экземпляром Ghost CMS с использованием интерфейсов больших языковых моделей (LLM). Он предлагает полный и безопасный доступ к административным функциям вашего блога, позволяя автоматизировать и оптимизировать рабочие процессы управления контентом.
Возможности
Надежная интеграция с API: Использует прямые аутентифицированные вызовы
axiosдля всех операций Admin API, обеспечивая стабильное и надежное соединение, не зависящее от внешних библиотек.Комплексный доступ к сущностям: Управление публикациями, пользователями, участниками, уровнями подписки, предложениями и новостными рассылками.
Улучшенная обработка ошибок: Предоставляет подробные коды состояния и тела ответов.
Современный транспорт: Исключительно использует потоковый HTTP-транспорт, вся устаревшая логика STDIO удалена.
Диагностические инструменты: Включает инструменты для устранения неполадок подключения к API и конфигурации.
Поддержка нескольких арендаторов: Использует
mcp-key-service, поэтому публичные/общие развертывания никогда не раскрывают необработанные учетные данные Ghost в URL-адресах MCP.Аналитика Firebase: Облачное хранилище аналитики с использованием Firebase Realtime Database и локальным резервным копированием файлов.
Готовность к развертыванию на VPS: Поддержка Docker, Nginx и автоматического развертывания через GitHub Actions.
Установка и использование
Этот MCP-сервер доступен через два метода развертывания:
Метод 1: Пакет NPM (рекомендуется для клиентов MCP)
Установите напрямую из npm:
npm install -g mcp-ghostcmsИли используйте с npx (установка не требуется):
npx mcp-ghostcmsИспользование с Claude Desktop
Для использования с клиентами MCP, такими как Claude Desktop, добавьте следующее в ваш claude_desktop_config.json:
{
"mcpServers": {
"mcp-ghostcms": {
"command": "npx",
"args": ["-y", "mcp-ghostcms"],
"env": {
"GHOST_API_URL": "https://yourghostbloginstance.com",
"GHOST_ADMIN_API_KEY": "your_admin_api_key",
"GHOST_API_VERSION": "v6.0"
}
}
}
}Метод 2: Облачная платформа Smithery
Разверните и запустите на облачной платформе Smithery:
Или для локальной разработки со Smithery:
git clone <this-repo>
cd ghost-mcp
npm install
npm run devЭто запустит сервер на порту 8080 и откроет Smithery Playground в вашем браузере.
Метод 3: Самостоятельно размещенный VPS с сервисом ключей MCP
Для публичных/общих развертываний этот MCP-сервер может быть размещен на собственном VPS и разрешает учетные данные Ghost через mcp-key-service. Пользователи один раз регистрируют URL своего сайта Ghost и ключ администратора, получают ключ usr_XXXXXXXX, и в URL-адресе MCP отображается только этот пользовательский ключ.
Формат URL-адреса MCP
https://your-domain.com/ghostcms/mcp/usr_YOUR_USER_KEYАльтернативная форма с параметрами запроса:
https://your-domain.com/ghostcms/mcp?api_key=usr_YOUR_USER_KEYПример использования с Claude Desktop
Добавьте в ваш claude_desktop_config.json:
{
"mcpServers": {
"ghost-myblog": {
"type": "streamable-http",
"url": "https://mcp.yourdomain.com/ghostcms/mcp/usr_YOUR_USER_KEY"
}
}
}Живая демонстрация
Публичный экземпляр доступен по адресу:
https://mcp.techmavie.digital/ghostcms/mcp/usr_YOUR_USER_KEYПримечание: Сначала зарегистрируйте свои учетные данные Ghost на
mcpkeys.techmavie.digital, чтобы получить ключusr_.
Конфигурация
Этот MCP-сервер требует следующей конфигурации:
GHOST_API_URL: URL вашего сайта Ghost (только домен, без пути), например,
https://yourghostbloginstance.comGHOST_ADMIN_API_KEY: Ваш ключ Ghost Admin API в формате
id:secret(из Ghost Admin → Settings → Integrations).GHOST_API_VERSION: Версия Ghost API (
v5.0для Ghost 5.x,v6.0для Ghost 6.x).GHOST_CONTENT_API_KEY (необязательно): Ваш ключ Ghost Content API для операций только для чтения.
Для размещенного HTTP-режима настройте KEY_SERVICE_URL и KEY_SERVICE_TOKEN на сервере и установите MCP_API_KEY, если вы хотите защитить конечные точки аналитики заголовком X-API-Key.
Доступные ресурсы
Следующие ресурсы Ghost CMS доступны через этот MCP-сервер:
Публикации (Posts): Статьи и контент, опубликованные на вашем сайте Ghost.
Участники (Members): Зарегистрированные пользователи и подписчики вашего сайта.
Новостные рассылки (Newsletters): Рассылки по электронной почте, управляемые и отправляемые через Ghost.
Предложения (Offers): Рекламные предложения и скидки для участников.
Приглашения (Invites): Приглашения для новых пользователей или сотрудников присоединиться к вашему сайту Ghost.
Роли (Roles): Роли пользователей и разрешения в административной панели Ghost.
Теги (Tags): Организационные теги для публикаций и контента.
Уровни подписки (Tiers): Уровни подписки и планы для участников.
Пользователи (Users): Пользователи-администраторы и учетные записи сотрудников.
Вебхуки (Webhooks): Автоматизированные уведомления о событиях для внешних сервисов.
Доступные инструменты
Этот MCP-сервер предоставляет широкий спектр инструментов для управления вашей Ghost CMS. Эти инструменты предоставляются через протокол контекста моделей и позволяют выполнять полный спектр операций CRUD (создание, чтение, обновление, удаление) с ресурсами вашего блога. Ниже приведен обзор доступного набора инструментов:
Публикации
Просмотр публикаций: Список публикаций с дополнительными фильтрами, пагинацией и сортировкой.
Чтение публикации: Получение публикации по ID или слагу.
Добавление публикации: Создание новой публикации с заголовком, контентом и статусом.
Редактирование публикации: Обновление существующей публикации по ID.
Удаление публикации: Удаление публикации по ID.
Участники
Просмотр участников: Список участников с фильтрами и пагинацией.
Чтение участника: Получение участника по ID или электронной почте.
Добавление участника: Создание нового участника.
Редактирование участника: Обновление данных участника.
Удаление участника: Удаление участника.
Новостные рассылки
Просмотр рассылок: Список новостных рассылок.
Чтение рассылки: Получение рассылки по ID.
Добавление рассылки: Создание новой рассылки.
Редактирование рассылки: Обновление данных рассылки.
Удаление рассылки: Удаление рассылки.
Предложения
Просмотр предложений: Список предложений.
Чтение предложения: Получение предложения по ID.
Добавление предложения: Создание нового предложения.
Редактирование предложения: Обновление данных предложения.
Удаление предложения: Удаление предложения.
Приглашения
Просмотр приглашений: Список приглашений.
Добавление приглашения: Создание нового приглашения.
Удаление приглашения: Удаление приглашения.
Роли
Просмотр ролей: Список ролей.
Чтение роли: Получение роли по ID.
Теги
Просмотр тегов: Список тегов.
Чтение тега: Получение тега по ID или слагу.
Добавление тега: Создание нового тега.
Редактирование тега: Обновление данных тега.
Удаление тега: Удаление тега.
Уровни подписки
Просмотр уровней: Список уровней подписки.
Чтение уровня: Получение уровня по ID.
Добавление уровня: Создание нового уровня.
Редактирование уровня: Обновление данных уровня.
Удаление уровня: Удаление уровня.
Пользователи
Просмотр пользователей: Список пользователей.
Чтение пользователя: Получение пользователя по ID или слагу.
Редактирование пользователя: Обновление данных пользователя.
Удаление пользователя: Удаление пользователя.
Вебхуки
Просмотр вебхуков: Список вебхуков.
Добавление вебхука: Создание нового вебхука.
Удаление вебхука: Удаление вебхука.
Каждый инструмент доступен через протокол MCP и может быть вызван из совместимых клиентов. Подробные схемы параметров и использование см. в исходном коде в
src/tools/.
Обработка ошибок и диагностика
Этот форк включает улучшенную обработку ошибок, которая предоставляет подробную информацию о сбоях API:
Коды состояния HTTP фиксируются и сообщаются
Полные тела ответов включены в сообщения об ошибках
Конфигурация среды выполнения регистрируется при запуске
Доступны диагностические инструменты для устранения проблем с подключением:
admin_site_ping: Проверяет, доступна ли конечная точка Ghost Admin APIconfig_echo: Показывает текущую конфигурацию Ghost API (с замаскированным ключом)
Эти улучшения значительно упрощают диагностику распространенных проблем, таких как:
Неверный формат URL API
Отсутствующие или неправильно сформированные ключи Admin API
Несоответствие версий API
Проблемы с конфигурацией сети/прокси
Разработка
Настройка
Клонируйте репозиторий
Установите зависимости:
npm installСоздайте файл
.envс вашей конфигурацией Ghost:GHOST_API_URL=https://yourghostbloginstance.com GHOST_ADMIN_API_KEY=your_admin_api_key GHOST_API_VERSION=v6.0Соберите проект:
npm run buildЗапустите сервер разработки:
npm run dev
Устранение неполадок
Если вы столкнулись с ошибками аутентификации или "Resource not found":
Убедитесь, что ваш ключ Ghost Admin API имеет правильный формат
id:secret.Убедитесь, что ваш
GHOST_API_URLявляется правильным доменом для вашего экземпляра Ghost.Используйте инструмент
admin_site_ping, чтобы убедиться, что конечная точка Admin API доступна.Проверьте журналы сервера на предмет используемой конфигурации.
Требования к потоковому HTTP MCP
Этот сервер реализует потоковый HTTP-транспорт MCP с надлежащим управлением сеансами и обработкой заголовка Accept. Сервер автоматически внедряет text/event-stream в заголовки Accept и создает изолированные экземпляры транспорта для каждого запроса, чтобы предотвратить конфликты сеансов.
Тестирование конечной точки с правильной инициализацией MCP:
# Test MCP initialization (proper way to test)
curl -s -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' \
"https://mcp.techmavie.digital/ghostcms/mcp/usr_YOUR_USER_KEY"
# Expected response (SSE format):
# event: message
# data: {"result":{"protocolVersion":"2024-11-05","capabilities":{...},"serverInfo":{...}},"jsonrpc":"2.0","id":1}Примечание: Простые запросы GET/POST без инициализации MCP вернут ошибки протокола, такие как "Bad Request: Server not initialized" — это ожидаемое поведение. Конечная точка требует правильного рукопожатия протокола MCP.
Для клиентов MCP (Claude Desktop, Claude iOS, Claude Code):
Клиенты MCP автоматически обрабатывают протокол инициализации и управление сеансами
Убедитесь, что ваш URL-адрес MCP правильно отформатирован в конфигурации вашего клиента
Для Claude iOS используйте функцию Connectors с полным URL-адресом MCP, используя ваш ключ
usr_Для Claude Code добавьте сервер в настройки MCP с типом
streamable-http
Управление сеансами:
Сервер создает новый экземпляр транспорта для каждого HTTP-запроса (шаблон без сохранения состояния)
Каждое клиентское соединение автоматически получает уникальный идентификатор сеанса
Несколько клиентов могут подключаться одновременно без конфликтов сеансов
Сеансы автоматически очищаются после отправки ответов
Распространенные ошибки и решения:
Ошибка | Причина | Решение |
| Старая версия сервера | Обновите до последней версии - исправлено |
| Тестирование без протокола MCP | Используйте правильную инициализацию MCP (см. пример выше) |
| Старая версия сервера с конфликтами сеансов | Обновите до последней версии - исправлено |
| Старая версия сервера, повторно использующая транспорты | Обновите до последней версии - исправлено |
Развертывание на VPS
Этот MCP-сервер включает полную поддержку развертывания на собственном VPS с использованием Docker, Nginx и автоматического развертывания через GitHub Actions.
Архитектура
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Claude/MCP │────▶│ Nginx Proxy │────▶│ Docker │
│ Client │ │ /ghostcms/ │ │ Container │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ Ghost CMS │
│ Admin API │
└─────────────────┘Файлы развертывания
Репозиторий включает:
Dockerfile- Конфигурация контейнера с Node.js 20-alpinedocker-compose.yml- Оркестрация Docker с томами для аналитики и учетных данных Firebasedeploy/nginx-mcp.conf- Конфигурация обратного прокси-сервера Nginx.github/workflows/deploy-vps.yml- Рабочий процесс автоматического развертывания GitHub Actions
Быстрое развертывание
# On your VPS
cd /opt/mcp-servers
git clone https://github.com/hithereiamaliff/mcp-ghostcms.git ghostcms
cd ghostcms
# Build and start
docker compose up -d --build
# Check logs
docker compose logs -fКонечные точки
Конечная точка | Описание |
| Проверка работоспособности |
| Конечная точка MCP (размещенный сервис ключей) |
| JSON-данные аналитики |
| Визуальная панель аналитики |
| Статистика использования инструментов |
Аналитика Firebase
Этот MCP-сервер использует Firebase Realtime Database для облачного хранения аналитики с локальным резервным копированием файлов в качестве резервного варианта.
Возможности
Двойное хранилище: Firebase (основное) + локальный файл (резервная копия)
Постоянство: Данные сохраняются после пересборки контейнеров и развертываний
В реальном времени: Обновления каждые 60 секунд
Панель управления: Визуальная аналитика по адресу
/analytics/dashboard
Отслеживаемые данные
Общее количество запросов и вызовов инструментов
Запросы по методам (GET, POST и т.д.)
Запросы по конечным точкам
Статистика использования инструментов
IP-адреса клиентов и агенты пользователей
Почасовые тренды запросов
Активность недавних вызовов инструментов
На
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/hithereiamaliff/mcp-ghostcms'
If you have feedback or need assistance with the MCP directory API, please join our Discord server