kibana-mcp
π PyPI version
π Python 3.10+
π License: MIT
π Tests
Claude λ° λͺ¨λ MCP νΈν μμ΄μ νΈλ₯Ό ν΅ν΄ Kibana / Elasticsearch λ‘κ·Έ κ²μ, μ§κ³, μΈλ±μ€ νμ λ° λμ보λ λΈλΌμ°μ§μ μννλ MCP μλ²μ λλ€.
μ λ€λ₯Έ Kibana MCPμΈκ°?
κΈ°μ‘΄ ν΅ν© λ°©μμ λΈλΌμ°μ μμ€μ μ격 μ¦λͺ μ΄ μλ μ€ν μ€μΈ Kibana μΈμ€ν΄μ€κ° νμνλ©°, μ’ μ’ μμ μ μΈ REST API λμ Kibana UIλ₯Ό λνν©λλ€. μ΄ μλ²λ λ€μκ³Ό κ°μ νΉμ§μ΄ μμ΅λλ€:
λ‘κ·Έ 쿼리λ₯Ό μν΄ Elasticsearch REST APIμ μ§μ μ°κ²° (λ λΉ λ₯΄κ³ , Kibana UI λ³κ²½μλ μμ μ μ)
μ§μ μ μΈ ES URLμ΄ κ΅¬μ±λμ§ μμ κ²½μ° Kibana μ½μ νλ‘μλ‘ λ체 (μΆκ° λ°©νλ²½ κ·μΉ λΆνμ)
ApiKey μΈμ¦(μμ΄μ νΈμ μ΅μ ), κΈ°λ³Έ μΈμ¦ λ° μ΅λͺ μ‘μΈμ€ μ§μ
λͺ¨λ MCP ν΄λΌμ΄μΈνΈμ μλνλλ‘ κ΅¬μ‘°νλ JSON(
outputSchema)κ³Ό λ§ν¬λ€μ΄ ν μ€νΈλ₯Ό λͺ¨λ λ°νμ½κΈ° μ μ© β λͺ¨λ λꡬλ
readOnlyHint: trueλ₯Ό ν¬ν¨νλ©°, λ°μ΄ν°λ₯Ό μμ νμ§ μμ
Related MCP server: Elasticsearch/OpenSearch MCP Server
λꡬ
λꡬ | API | μ€λͺ |
|
| μν, λ¬Έμ μ, ν¬κΈ°λ₯Ό ν¬ν¨ν μ¬μ© κ°λ₯ν μΈλ±μ€ νμ |
|
| μκ° λ²μ, μ λ ¬, ν¬κΈ°λ₯Ό ν¬ν¨ν μ 체 ν μ€νΈ λ‘κ·Έ κ²μ |
|
| count/avg/sum/min/max λ©νΈλ¦μ μ¬μ©ν μ©μ΄ κ·Έλ£Ήν |
|
| κ²μ λ° νμ΄μ§ λ§€κΉμ ν¬ν¨ν μ μ₯λ λμ보λ λͺ©λ‘ |
|
| ν¨λ λΆμμ ν¬ν¨ν λ¨μΌ λμ보λ κ°μ Έμ€κΈ° |
μ€μΉ
pip install kibana-mcpλλ uvxλ₯Ό μ¬μ©νμ¬ μ§μ μ€ν:
uvx kibana-mcpꡬμ±
νκ²½ λ³μ
λ³μ | νμ | μ€λͺ |
| μ | Kibana κΈ°λ³Έ URL (μ: |
| μλμ | μ§μ μ μΈ ES μλν¬μΈνΈ. μ€μ νμ§ μμΌλ©΄ ES μμ²μ΄ Kibana μ½μ νλ‘μλ₯Ό ν΅ν¨ |
| μλμ | ES API ν€ ( |
| μλμ | HTTP κΈ°λ³Έ μΈμ¦ μ¬μ©μ μ΄λ¦ (API ν€κ° μ€μ λμ§ μμ κ²½μ° μ¬μ©) |
| μλμ | HTTP κΈ°λ³Έ μΈμ¦ λΉλ°λ²νΈ |
| μλμ |
|
μΈμ¦ μ°μ μμ: ApiKey > κΈ°λ³Έ μΈμ¦ > μ΅λͺ .
.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-500ms; Kibana μ½μ νλ‘μλ₯Ό ν΅ν κ²½μ° 100-200ms μΆκ°μ§κ³ (
kibana_aggregate_logs):size:0쿼리 β ννΈκ° μ μ‘λμ§ μμΌλ©°, μΌλ°μ μΌλ‘ 10-100msμΈλ±μ€ λͺ©λ‘: λ¨μΌ
_cat/indicesνΈμΆ, O(index_count) μλ΅, μΌλ°μ μΌλ‘ 100ms λ―Έλ§λμ보λ API: Kibana μ μ₯ κ°μ²΄ API, μΌλ°μ μΌλ‘ 50-200ms; μ§μ° μκ°μ λ€νΈμν¬κ° μλ 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λ₯Ό μ°Έμ‘°νμΈμ.
Maintenance
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
