Server data from the Official MCP Registry
Kibana/Elasticsearch MCP — log search, aggregations, index discovery, dashboards.
Kibana/Elasticsearch MCP — log search, aggregations, index discovery, dashboards.
Valid MCP server (1 strong, 2 medium validity signals). 12 known CVEs in dependencies (0 critical, 6 high severity) Package registry verified. Imported from the Official MCP Registry.
5 files analyzed · 13 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Unverified package source
We couldn't verify that the installable package matches the reviewed source code. Proceed with caution.
Set these up before or after installing:
Environment variable: KIBANA_URL
Environment variable: ELASTICSEARCH_URL
Environment variable: KIBANA_API_KEY
Environment variable: KIBANA_USERNAME
Environment variable: KIBANA_PASSWORD
Environment variable: KIBANA_SSL_VERIFY
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-mshegolev-kibana-mcp": {
"env": {
"KIBANA_URL": "your-kibana-url-here",
"KIBANA_API_KEY": "your-kibana-api-key-here",
"KIBANA_PASSWORD": "your-kibana-password-here",
"KIBANA_USERNAME": "your-kibana-username-here",
"ELASTICSEARCH_URL": "your-elasticsearch-url-here",
"KIBANA_SSL_VERIFY": "your-kibana-ssl-verify-here"
},
"args": [
"kibana-mcp"
],
"command": "uvx"
}
}
}From the project's GitHub README.
MCP server for Kibana / Elasticsearch — log search, aggregations, index discovery, and dashboard browsing via Claude and any MCP-compatible agent.
Existing integrations require a running Kibana instance with browser-level credentials and often wrap the Kibana UI rather than the stable REST APIs. This server:
outputSchema) and markdown text so it works with any MCP clientreadOnlyHint: true, no data is modified| Tool | API | Description |
|---|---|---|
kibana_list_indices | GET ES/_cat/indices | Discover available indices with health, docs, size |
kibana_search_logs | POST ES/{index}/_search | Full-text log search with time range, sort, size |
kibana_aggregate_logs | POST ES/{index}/_search | Terms grouping with count/avg/sum/min/max metric |
kibana_list_dashboards | GET Kibana/api/saved_objects/_find | List saved dashboards with search + pagination |
kibana_get_dashboard | GET Kibana/api/saved_objects/dashboard/{id} | Fetch one dashboard with panel breakdown |
pip install kibana-mcp
Or run directly with uvx:
uvx kibana-mcp
| Variable | Required | Description |
|---|---|---|
KIBANA_URL | Yes | Kibana base URL (e.g. https://kibana.example.com) |
ELASTICSEARCH_URL | No | Direct ES endpoint. If unset, ES requests go through Kibana Console proxy |
KIBANA_API_KEY | No | ES API key (ApiKey base64(id:api_key) format). Recommended for agents |
KIBANA_USERNAME | No | HTTP Basic auth username (used if API key not set) |
KIBANA_PASSWORD | No | HTTP Basic auth password |
KIBANA_SSL_VERIFY | No | true (default) or false for self-signed certificates |
Auth priority: ApiKey > Basic > anonymous.
Copy .env.example to .env and fill in your values.
{
"mcpServers": {
"kibana": {
"command": "uvx",
"args": ["kibana-mcp"],
"env": {
"KIBANA_URL": "https://kibana.example.com",
"KIBANA_API_KEY": "your-api-key-here"
}
}
}
}
Or with direct ES access for better performance:
{
"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 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): typically 50-500ms with direct ES URL; add 100-200ms when routing through Kibana Console proxykibana_aggregate_logs): size:0 queries — no hits transferred, usually 10-100ms_cat/indices call, O(index_count) response, typically <100msELASTICSEARCH_URL directly if your agent does frequent log searches — eliminates the proxy overheadgit 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 — see LICENSE.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.