mshegolev/kibana-mcp
kibana-mcp
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를 포함하며, 데이터를 수정하지 않음
도구
도구 | 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