mcpField
K
kibana-mcp

kibana-mcp

本地服务
github.com/mshegolev数据与分析111 周前更新

关于 kibana-mcp

面向 Claude 和其他兼容 MCP 的 Agent 的只读 MCP 服务,用于查询 Kibana 与 Elasticsearch。配置后可直接调用 Elasticsearch REST API,也可回退到 Kibana Console 代理,并返回结构化 JSON 和 Markdown。

主要功能

  1. 01按时间和排序条件搜索日志
  2. 02按字段和指标聚合日志
  3. 03发现索引及其信息
  4. 04浏览和获取仪表板
  5. 05支持 API 密钥、Basic 和匿名认证
  6. 06返回 JSON 与 Markdown 结果

适用场景

  1. 01排查事件期间的错误
  2. 02比较各服务的日志计数或指标
  3. 03查找包含相关事件的索引
  4. 04查看仪表板面板

MCP 相关

向 MCP 客户端提供只读工具,用于发现索引、搜索日志、执行聚合和浏览仪表板。Elasticsearch 请求可使用配置的直接端点,也可回退到 Kibana Console 代理。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mshegolev-kibana": {
"command": "uvx",
"args": [
"kibana-mcp"
],
"env": {
"KIBANA_URL": "<KIBANA_URL>",
"ELASTICSEARCH_URL": "<ELASTICSEARCH_URL>",
"KIBANA_API_KEY": "<KIBANA_API_KEY>",
"KIBANA_USERNAME": "<KIBANA_USERNAME>",
"KIBANA_PASSWORD": "<KIBANA_PASSWORD>",
"KIBANA_SSL_VERIFY": "<KIBANA_SSL_VERIFY>"
}
}
}
}
启动命令uvx kibana-mcp
需要配置的环境变量
KIBANA_URLKibana base URL (e.g. https://kibana.example.com)
ELASTICSEARCH_URLDirect Elasticsearch URL. If unset, ES requests route through the Kibana Console proxy.
KIBANA_API_KEY密钥Elasticsearch API key (ApiKey base64(id:api_key) format). Takes priority over Basic auth.
KIBANA_USERNAMEHTTP Basic auth username. Used only when KIBANA_API_KEY is not set.
KIBANA_PASSWORD密钥HTTP Basic auth password.
KIBANA_SSL_VERIFYVerify SSL certificates (true/false). Set to 'false' for self-signed certs.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypikibana-mcp0.1.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

kibana-mcp

PyPI version Python 3.10+ License: MIT Tests

面向 Kibana / Elasticsearch 的 MCP 服务——通过 Claude 和任何兼容 MCP 的 Agent 搜索日志、执行聚合、发现索引和浏览仪表板。

为什么还要再做一个 Kibana MCP?

现有集成需要运行中的 Kibana 实例和浏览器级凭据,而且通常封装的是 Kibana UI,而不是稳定的 REST API。此服务:

  • 直接调用 Elasticsearch REST API 查询日志(速度更快,且不受 Kibana UI 变更影响)
  • 未配置直接 ES URL 时,回退到 Kibana Console 代理(无需额外防火墙规则)
  • 支持 ApiKey 身份验证(最适合 Agent),也支持 Basic 身份验证和匿名访问
  • 同时返回结构化 JSON(outputSchema)和 Markdown 文本,因此适用于任何 MCP 客户端
  • 只读——所有工具均带有 readOnlyHint: true,不会修改数据

工具

工具API描述
kibana_list_indicesGET ES/_cat/indices查看可用索引及其健康状态、文档数和大小
kibana_search_logsPOST ES/{index}/_search按时间范围、排序方式和数量进行全文日志搜索
kibana_aggregate_logsPOST ES/{index}/_search按字段分组,并计算 count/avg/sum/min/max 指标
kibana_list_dashboardsGET Kibana/api/saved_objects/_find搜索并分页列出已保存的仪表板
kibana_get_dashboardGET Kibana/api/saved_objects/dashboard/{id}获取单个仪表板及其面板明细

安装

pip install kibana-mcp

或者使用 uvx 直接运行:

uvx kibana-mcp

配置

环境变量
变量必需描述
KIBANA_URL是Kibana 基础 URL(例如 https://kibana.example.com)
ELASTICSEARCH_URL否直接访问 ES 的端点。未设置时,ES 请求会通过 Kibana Console 代理
KIBANA_API_KEY否ES API 密钥(ApiKey base64(id:api_key) 格式)。推荐用于 Agent
KIBANA_USERNAME否HTTP Basic 身份验证用户名(未设置 API 密钥时使用)
KIBANA_PASSWORD否HTTP Basic 身份验证密码
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):直接使用 ES URL 时通常为 50-500 ms;通过 Kibana Console 代理路由时会增加 100-200 ms
  • 聚合(kibana_aggregate_logs):size:0 查询不会传输命中结果,通常为 10-100 ms
  • 索引列表:调用一次 _cat/indices,响应大小为 O(index_count),通常 <100 ms
  • 仪表板 API:Kibana Saved Objects API,通常为 50-200 ms;延迟来自 Kibana 端,而非网络
  • 如果 Agent 经常搜索日志,请直接设置 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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。