Provides tools for searching and retrieving logs from Graylog, including Lucene/GELF queries, UUID/trace ID searches, and stream-based log retrieval with automatic field normalization.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Graylog MCP Serversearch for ERROR level logs from the API service in the last hour"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
graylog-mcp
🔍 Model Context Protocol (MCP) сервер для интеграции Graylog с AI-ассистентами
Минималистичный MCP сервер, предоставляющий инструменты для поиска логов в Graylog через stdio протокол. Работает с Cursor, Claude Desktop и другими MCP-клиентами.
✨ Особенности
🚀 Три мощных инструмента для поиска логов
🔒 Поддержка Personal Access Token (PAT) аутентификации
🌐 Работа с self-signed TLS сертификатами
📦 Простая установка через npm/npx
🎯 Автоматическая нормализация полей логов
🔍 Умный поиск по UUID/trace ID/request ID
📋 Требования
Node.js >= 18
Graylog сервер с настроенным Personal Access Token
📦 Установка
Глобальная установка
Использование через npx (рекомендуется)
Не требует установки - см. раздел "Настройка в Cursor"
🚀 Быстрый старт
Запуск вручную
Параметры командной строки
Параметр | Обязательный | Описание | По умолчанию |
| ✅ | URL вашего Graylog сервера | - |
| ✅ | Personal Access Token | - |
| ❌ | Проверка SSL сертификата |
|
| ❌ | Режим отладки |
|
🔌 Настройка в Cursor
Настройки → MCP Servers → Add custom server
Вариант 1: Через npx (рекомендуется)
Вариант 2: С переменными окружения (безопаснее)
Вариант 3: Глобальная установка
🛠 Доступные инструменты
1. graylog.search_logs
Поиск логов с использованием Lucene/GELF запросов.
Параметры:
query(string, обязательный): Lucene/GELF запросrangeSec(number, по умолчанию 3600): Временной диапазон в секундахlimit(number, опционально): Максимальное количество результатов (макс. 500)offset(number, опционально): Смещение для пагинацииfilter(string, опционально): Дополнительный фильтр (например,stream:<STREAM_ID>)
Пример запроса:
2. graylog.search_uuid
Умный поиск по UUID, request ID, trace ID и другим идентификаторам. Автоматически проверяет множество распространенных полей.
Параметры:
uuid(string, обязательный): UUID или идентификатор для поискаrangeSec(number, по умолчанию 86400): Временной диапазон в секундах (24 часа)limit(number, опционально): Максимальное количество результатов (макс. 500)
Автоматически ищет в полях:
request_id,requestId,req_idtrace_id,traceId,trace.idspan_id,spanId,span.idtransaction_id,transactionIdcorrelation_id,correlationId_id
Пример запроса:
3. graylog.search_stream
Получение сообщений из конкретного потока (stream).
Параметры:
streamId(string, обязательный): ID потока в GraylograngeSec(number, по умолчанию 3600): Временной диапазон в секундахlimit(number, опционально): Максимальное количество результатов (макс. 500)
Пример запроса:
📊 Формат ответа
Все инструменты возвращают нормализованный JSON со следующей структурой:
Автоматическая нормализация полей
Сервер автоматически извлекает и нормализует следующие поля из различных форматов:
Поле | Альтернативные имена |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
💻 Локальная разработка
Установка зависимостей
Сборка проекта
Запуск в режиме разработки
Тестирование собранной версии
🔧 Структура проекта
🔒 Безопасность
Personal Access Token (PAT)
Создайте PAT в Graylog: System → Users → [Your User] → Edit → Create Token
Токен должен иметь права на чтение целевых потоков
Сервер автоматически пробует два формата авторизации:
token:YOUR_PATYOUR_PAT:token
SSL/TLS
Production: Используйте валидный CA сертификат и
--ssl-verify=trueDevelopment/Self-signed: Используйте
--ssl-verify=falseАльтернатива: Установите
NODE_EXTRA_CA_CERTSна путь к доверенному CA
Рекомендации
✅ Используйте переменные окружения для токенов
✅ Не коммитьте токены в git
✅ Используйте минимально необходимые права для PAT
✅ Регулярно ротируйте токены
🐛 Устранение неполадок
401/403 ошибки
Проверьте валидность PAT
Убедитесь, что у токена есть права на чтение потоков
Проверьте формат URL (должен включать протокол:
https://)
TLS/SSL ошибки
Нет результатов
Попробуйте простой запрос:
query: "*"Проверьте временной диапазон (увеличьте
rangeSec)Убедитесь, что в выбранных потоках есть данные
Проверьте синтаксис Lucene запроса
Debug режим
Запустите с флагом --debug для диагностики:
🤝 Примеры использования
Пример 1: Поиск ошибок за последний час
Пример 2: Поиск по trace ID
Пример 3: Получение логов конкретного сервиса
Пример 4: Поиск HTTP 5xx ошибок
📝 Примечания
Сервер использует Graylog REST API через
/api/search/universal/relativeи/api/streams/{id}/messagesМаксимальное количество результатов на запрос: 500
По умолчанию возвращается 150 записей
Поддерживается пагинация через параметры
limitиoffsetВсе временные метки в UTC
🔗 Полезные ссылки
📄 Лицензия
MIT © Aliaksei Buzo
🙏 Вклад
Contributions приветствуются! Пожалуйста, создайте issue или pull request в GitHub репозитории.