Skip to main content
Glama
mshegolev

mshegolev/kibana-mcp

kibana-mcp

PyPI version Python 3.10+ License: MIT Tests

MCP-сервер для Kibana / Elasticsearch — поиск по логам, агрегация, обнаружение индексов и просмотр дашбордов через Claude и любой MCP-совместимый агент.

Почему еще один Kibana MCP?

Существующие интеграции требуют запущенного экземпляра Kibana с учетными данными уровня браузера и часто оборачивают UI Kibana, а не стабильные REST API. Этот сервер:

  • Обращается к Elasticsearch REST API напрямую для запросов к логам (быстрее, стабильнее при изменениях UI Kibana)

  • Переключается на прокси-сервер консоли Kibana, если прямой URL ES не настроен (не требует дополнительных правил брандмауэра)

  • Поддерживает ApiKey auth (лучший вариант для агентов), а также Basic auth и анонимный доступ

  • Возвращает как структурированный JSON (outputSchema), так и текст в формате markdown, поэтому работает с любым MCP-клиентом

  • Работает только для чтения — все инструменты имеют readOnlyHint: true, данные не изменяются

Инструменты

Инструмент

API

Описание

kibana_list_indices

GET ES/_cat/indices

Обнаружение доступных индексов с информацией о состоянии, документах и размере

kibana_search_logs

POST ES/{index}/_search

Полнотекстовый поиск по логам с указанием временного диапазона, сортировки и размера

kibana_aggregate_logs

POST ES/{index}/_search

Группировка по терминам с метриками count/avg/sum/min/max

kibana_list_dashboards

GET Kibana/api/saved_objects/_find

Список сохраненных дашбордов с поиском и пагинацией

kibana_get_dashboard

GET Kibana/api/saved_objects/dashboard/{id}

Получение одного дашборда с разбивкой по панелям

Установка

pip install kibana-mcp

Или запустите напрямую с помощью uvx:

uvx kibana-mcp

Конфигурация

Переменные окружения

Переменная

Обязательно

Описание

KIBANA_URL

Да

Базовый URL Kibana (например, https://kibana.example.com)

ELASTICSEARCH_URL

Нет

Прямая конечная точка ES. Если не задана, запросы ES идут через прокси-сервер консоли Kibana

KIBANA_API_KEY

Нет

Ключ API ES (формат ApiKey base64(id:api_key)). Рекомендуется для агентов

KIBANA_USERNAME

Нет

Имя пользователя для HTTP Basic auth (используется, если API key не задан)

KIBANA_PASSWORD

Нет

Пароль для HTTP Basic auth

KIBANA_SSL_VERIFY

Нет

true (по умолчанию) или false для самоподписанных сертификатов

Приоритет аутентификации: ApiKey > Basic > анонимный.

Скопируйте .env.example в .env и заполните своими значениями.

Конфигурация MCP-клиента (Claude Desktop / claude.app)

{
  "mcpServers": {
    "kibana": {
      "command": "uvx",
      "args": ["kibana-mcp"],
      "env": {
        "KIBANA_URL": "https://kibana.example.com",
        "KIBANA_API_KEY": "your-api-key-here"
      }
    }
  }
}

Или с прямым доступом к ES для лучшей производительности:

{
  "mcpServers": {
    "kibana": {
      "command": "uvx",
      "args": ["kibana-mcp"],
      "env": {
        "KIBANA_URL": "https://kibana.example.com",
        "ELASTICSEARCH_URL": "https://es.example.com:9200",
        "KIBANA_API_KEY": "your-api-key-here"
      }
    }
  }
}

Docker

docker run --rm -i \
  -e KIBANA_URL=https://kibana.example.com \
  -e KIBANA_API_KEY=your-key \
  ghcr.io/mshegolev/kibana-mcp

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

Поиск по логам

Find the last 50 ERROR logs from the API service in the last hour

kibana_search_logs(index="logs-*", query="level:ERROR AND service:api", size=50, time_from="2026-04-18T09:00:00Z")

Show 500 HTTP errors sorted oldest first for incident replay

kibana_search_logs(index="nginx-*", query="status:500", sort_order="asc", size=100)

Агрегации

How many logs per log level in the last hour?

kibana_aggregate_logs(index="logs-*", group_by="level", time_from="2026-04-18T09:00:00Z")

What is the average response time per service?

kibana_aggregate_logs(index="logs-*", group_by="service.keyword", metric="avg", metric_field="response_time_ms")

Обнаружение индексов

What log indices are available?

kibana_list_indices()

Show me all filebeat indices

kibana_list_indices(pattern="filebeat-*")

Дашборды

Find the infrastructure dashboard

kibana_list_dashboards(search="infrastructure")

What panels does dashboard X have?

kibana_get_dashboard(dashboard_id="<id from list_dashboards>")

Характеристики производительности

  • Поиск по логам (kibana_search_logs): обычно 50-500 мс при прямом URL ES; добавьте 100-200 мс при маршрутизации через прокси-сервер консоли Kibana

  • Агрегации (kibana_aggregate_logs): запросы size:0 — данные не передаются, обычно 10-100 мс

  • Список индексов: один вызов _cat/indices, ответ O(количество_индексов), обычно <100 мс

  • API дашбордов: Kibana Saved Objects API, обычно 50-200 мс; задержка на стороне Kibana, а не сети

  • Установите ELASTICSEARCH_URL напрямую, если ваш агент часто выполняет поиск по логам — это устраняет накладные расходы прокси-сервера

Разработка

git clone https://github.com/mshegolev/kibana-mcp
cd kibana-mcp
pip install -e '.[dev]'
pytest tests/ -v
ruff check src tests
ruff format src tests

Лицензия

MIT — см. LICENSE.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)

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/mshegolev/kibana-mcp'

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