Graylog MCP Server
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.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
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
Related MCP server: MCP Graylog Server
📋 Требования
Node.js >= 18
Graylog сервер с настроенным Personal Access Token
📦 Установка
Глобальная установка
npm i -g @alexbuzo/graylog-mcpИспользование через npx (рекомендуется)
Не требует установки - см. раздел "Настройка в Cursor"
🚀 Быстрый старт
Запуск вручную
graylog-mcp \
--graylog-url https://graylog.example.com \
--token YOUR_GRAYLOG_PAT \
--ssl-verify=falseПараметры командной строки
Параметр | Обязательный | Описание | По умолчанию |
| ✅ | URL вашего Graylog сервера | - |
| ✅ | Personal Access Token | - |
| ❌ | Проверка SSL сертификата |
|
| ❌ | Режим отладки |
|
🔌 Настройка в Cursor
Настройки → MCP Servers → Add custom server
Вариант 1: Через npx (рекомендуется)
{
"mcpServers": {
"graylog": {
"command": "npx",
"args": [
"-y",
"@alexbuzo/graylog-mcp@latest",
"--graylog-url", "https://graylog.example.com",
"--token", "YOUR_GRAYLOG_PAT",
"--ssl-verify", "false"
],
"name": "Graylog Search"
}
}
}Вариант 2: С переменными окружения (безопаснее)
{
"mcpServers": {
"graylog": {
"command": "bash",
"args": [
"-lc",
"npx -y @alexbuzo/graylog-mcp@latest --graylog-url \"$GRAYLOG_URL\" --token \"$GRAYLOG_TOKEN\" --ssl-verify=false"
],
"env": {
"GRAYLOG_URL": "https://graylog.example.com",
"GRAYLOG_TOKEN": "YOUR_GRAYLOG_PAT"
},
"name": "Graylog (secure)"
}
}
}Вариант 3: Глобальная установка
{
"mcpServers": {
"graylog": {
"command": "graylog-mcp",
"args": [
"--graylog-url", "https://graylog.example.com",
"--token", "YOUR_GRAYLOG_PAT",
"--ssl-verify", "false"
],
"name": "Graylog"
}
}
}🛠 Доступные инструменты
1. graylog.search_logs
Поиск логов с использованием Lucene/GELF запросов.
Параметры:
query(string, обязательный): Lucene/GELF запросrangeSec(number, по умолчанию 3600): Временной диапазон в секундахlimit(number, опционально): Максимальное количество результатов (макс. 500)offset(number, опционально): Смещение для пагинацииfilter(string, опционально): Дополнительный фильтр (например,stream:<STREAM_ID>)
Пример запроса:
{
query: "level:ERROR AND service:api",
rangeSec: 3600,
limit: 100,
filter: "stream:507f1f77bcf86cd799439011"
}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
Пример запроса:
{
uuid: "550e8400-e29b-41d4-a716-446655440000",
rangeSec: 86400,
limit: 200
}3. graylog.search_stream
Получение сообщений из конкретного потока (stream).
Параметры:
streamId(string, обязательный): ID потока в GraylograngeSec(number, по умолчанию 3600): Временной диапазон в секундахlimit(number, опционально): Максимальное количество результатов (макс. 500)
Пример запроса:
{
streamId: "507f1f77bcf86cd799439011",
rangeSec: 7200,
limit: 150
}📊 Формат ответа
Все инструменты возвращают нормализованный JSON со следующей структурой:
{
"total": 42,
"messages": [
{
"id": "message_id",
"ts": "2024-01-15T10:30:00.000Z",
"level": "ERROR",
"source": "api-server-01",
"container": "api-service",
"message": "Database connection failed",
"short_message": "DB error",
"http_method": "POST",
"url": "/api/users",
"status": 500,
"latency_ms": 1234,
"trace_id": "abc123",
"span_id": "def456",
"request_id": "req-789",
"tenant_id": "tenant-001",
"client_ip": "192.168.1.1",
"user_agent": "Mozilla/5.0...",
"service": "user-api",
"request": {...},
"response": {...}
}
]
}Автоматическая нормализация полей
Сервер автоматически извлекает и нормализует следующие поля из различных форматов:
Поле | Альтернативные имена |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
💻 Локальная разработка
Установка зависимостей
npm installСборка проекта
npm run buildЗапуск в режиме разработки
npm run dev -- --graylog-url https://graylog.example.com --token YOUR_PAT --ssl-verify=falseТестирование собранной версии
node dist/cli.js --graylog-url https://graylog.example.com --token YOUR_PAT --ssl-verify=false --debug🔧 Структура проекта
graylog-mcp/
├── src/
│ ├── cli.ts # CLI интерфейс и точка входа
│ ├── server.ts # MCP сервер и регистрация инструментов
│ └── graylog.ts # API клиент для Graylog
├── dist/ # Скомпилированный код
├── package.json # Метаданные и зависимости
└── tsconfig.json # Конфигурация TypeScript🔒 Безопасность
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 ошибки
# Опция 1: Отключить проверку (не для production!)
--ssl-verify=false
# Опция 2: Указать CA сертификат
export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pemНет результатов
Попробуйте простой запрос:
query: "*"Проверьте временной диапазон (увеличьте
rangeSec)Убедитесь, что в выбранных потоках есть данные
Проверьте синтаксис Lucene запроса
Debug режим
Запустите с флагом --debug для диагностики:
graylog-mcp --graylog-url ... --token ... --debug🤝 Примеры использования
Пример 1: Поиск ошибок за последний час
// Инструмент: graylog.search_logs
{
query: "level:ERROR",
rangeSec: 3600
}Пример 2: Поиск по trace ID
// Инструмент: graylog.search_uuid
{
uuid: "abc-123-def-456",
rangeSec: 86400
}Пример 3: Получение логов конкретного сервиса
// Инструмент: graylog.search_logs
{
query: "service:auth-api AND level:WARN",
rangeSec: 7200,
limit: 50
}Пример 4: Поиск HTTP 5xx ошибок
// Инструмент: graylog.search_logs
{
query: "status:[500 TO 599]",
rangeSec: 3600
}📝 Примечания
Сервер использует Graylog REST API через
/api/search/universal/relativeи/api/streams/{id}/messagesМаксимальное количество результатов на запрос: 500
По умолчанию возвращается 150 записей
Поддерживается пагинация через параметры
limitиoffsetВсе временные метки в UTC
🔗 Полезные ссылки
📄 Лицензия
MIT © Aliaksei Buzo
🙏 Вклад
Contributions приветствуются! Пожалуйста, создайте issue или pull request в GitHub репозитории.
This server cannot be deployed
Maintenance
Related MCP Connectors
Ingest and search LogsLoom logs from coding agents.
Search log events, investigate anomalies, and manage cases in your Knowledge Grid tenant.
Manage uptime monitors and incidents and search logs, metrics and traces from an AI assistant.
Search 16,000+ API operations and 95 built tools by need, then call any of them by name
31
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to query and analyze logs from Graylog instances using universal search with relative or absolute time windows, supporting both full result retrieval and lightweight count-only queries.26 npm1MIT
- AlicenseDqualityAmaintenanceIntegrates AI assistants with Graylog to query and analyze log data using Elasticsearch syntax and stream-specific filtering. It enables users to perform advanced searches, retrieve log statistics, and manage Graylog streams through natural language.912MIT
- AlicenseAqualityCmaintenanceEnables querying Graylog log management system for messages using natural language, supporting multiple instances and flexible search parameters.145 npm11MIT
- AlicenseAqualityDmaintenanceProvides a standardized MCP interface for querying Graylog logs, enabling AI agents to search, diagnose, and correlate runtime logs with code via configurable profiles.5MIT