hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Provides access to Grafana dashboards, data sources, and ecosystem tools, enabling search and retrieval of dashboards, querying of data sources (Prometheus, Loki), incident management, alerting capabilities, and OnCall functionality.
Allows querying Prometheus data sources, retrieving metric metadata, listing metric names, and exploring label names and values to analyze time series data.
Grafana MCP 서버
Grafana를 위한 MCP( Model Context Protocol ) 서버.
이를 통해 Grafana 인스턴스와 주변 생태계에 액세스할 수 있습니다.
특징
- [x] 대시보드 검색
- [x] UID로 대시보드 가져오기
- [x] 데이터 소스 정보 나열 및 가져오기
- [ ] 데이터 소스 쿼리
- [x] 프로메테우스
- [x] 로키
- [x] 로그 쿼리
- [x] 메트릭 쿼리
- [ ] 템포
- [ ] 파이로스코프
- [x] Prometheus 메타데이터 쿼리
- [x] 메트릭 메타데이터
- [x] 메트릭 이름
- [x] 라벨 이름
- [x] 레이블 값
- [x] 로키 메타데이터 쿼리
- [x] 라벨 이름
- [x] 레이블 값
- [x] 통계
- [x] 인시던트 검색, 생성, 업데이트 및 닫기
- [ ] Sift 조사를 시작하고 결과를 확인하세요.
- [ ] 경고
- [x] 경고 규칙 정보 나열 및 가져오기
- [x] 경고 규칙 상태(발사/정상/오류 등)를 가져옵니다.
- [ ] 알림 규칙 생성 및 변경
- [x] 연락처 목록
- [ ] 연락처 생성 및 변경
- [x] Grafana OnCall 기능에 액세스합니다.
- [x] 일정을 나열하고 관리합니다
- [x] 교대근무 세부 정보 받기
- [x] 현재 대기 중인 사용자 가져오기
- [x] 팀 및 사용자 나열
- [ ] 경고 그룹 목록
도구 목록은 구성 가능하므로 MCP 클라이언트에서 사용할 도구를 선택할 수 있습니다. 이 기능은 특정 기능을 사용하지 않거나 컨텍스트 창을 너무 많이 차지하고 싶지 않을 때 유용합니다. 도구 범주를 비활성화하려면 서버를 시작할 때 --disable-<category>
플래그를 사용하세요. 예를 들어, OnCall 도구를 비활성화하려면 --disable-oncall
사용하세요.
도구
도구 | 범주 | 설명 |
---|---|---|
search_dashboards | 찾다 | 대시보드 검색 |
get_dashboard_by_uid | 계기반 | uid로 대시보드 가져오기 |
list_datasources | 데이터 소스 | 데이터 소스 나열 |
get_datasource_by_uid | 데이터 소스 | uid로 데이터 소스 가져오기 |
get_datasource_by_name | 데이터 소스 | 이름으로 데이터 소스 가져오기 |
query_prometheus | 프로메테우스 | Prometheus 데이터 소스에 대한 쿼리 실행 |
list_prometheus_metric_metadata | 프로메테우스 | 메트릭 메타데이터 나열 |
list_prometheus_metric_names | 프로메테우스 | 사용 가능한 메트릭 이름 나열 |
list_prometheus_label_names | 프로메테우스 | 선택기와 일치하는 레이블 이름 나열 |
list_prometheus_label_values | 프로메테우스 | 특정 레이블에 대한 값 나열 |
list_incidents | 사건 | Grafana 사건 목록 |
create_incident | 사건 | Grafana Incident에서 인시던트 생성 |
add_activity_to_incident | 사건 | Grafana Incident에서 인시던트에 활동 항목 추가 |
resolve_incident | 사건 | Grafana Incident에서 인시던트 해결 |
query_loki_logs | 로키 | LogQL(로그 또는 메트릭 쿼리)을 사용하여 로그 쿼리 및 검색 |
list_loki_label_names | 로키 | 로그에서 사용 가능한 모든 레이블 이름을 나열합니다. |
list_loki_label_values | 로키 | 특정 로그 레이블에 대한 값 나열 |
query_loki_stats | 로키 | 로그 스트림에 대한 통계 가져오기 |
list_alert_rules | 경고 | 알림 규칙 목록 |
get_alert_rule_by_uid | 경고 | UID로 알림 규칙 가져오기 |
list_oncall_schedules | 온콜 | Grafana OnCall의 일정 목록 |
get_oncall_shift | 온콜 | 특정 OnCall 교대 근무에 대한 세부 정보를 얻으세요 |
get_current_oncall_users | 온콜 | 특정 일정에 따라 현재 대기 중인 사용자를 가져옵니다. |
list_oncall_teams | 온콜 | Grafana OnCall의 팀 목록 |
list_oncall_users | 온콜 | Grafana OnCall의 사용자 목록 |
용법
- Grafana에서 원하는 도구를 사용할 수 있는 충분한 권한을 가진 서비스 계정을 생성하고, 서비스 계정 토큰을 생성한 후 구성 파일에서 사용할 수 있도록 클립보드에 복사하세요. 자세한 내용은 Grafana 설명서를 참조하세요.
- 릴리스 페이지 에서
mcp-grafana
의 최신 릴리스를 다운로드하여$PATH
에 넣으세요.Go 툴체인이 설치되어 있다면 소스에서 빌드하고 설치할 수도 있습니다.GOBIN
환경 변수를 사용하여 바이너리를 설치할 디렉터리를 지정하세요. 이 디렉터리도PATH
에 포함되어야 합니다.지엑스피1 - 클라이언트 설정 파일에 서버 설정을 추가하세요. 예를 들어, Claude Desktop의 경우:Copy
참고: Claude Desktop에서
Error: spawn mcp-grafana ENOENT
표시되면mcp-grafana
에 대한 전체 경로를 지정해야 합니다.
디버그 모드
명령에 -debug
플래그를 추가하여 Grafana 전송에 대한 디버그 모드를 활성화할 수 있습니다. 이렇게 하면 MCP 서버와 Grafana API 간의 HTTP 요청 및 응답에 대한 자세한 로깅이 제공되어 문제 해결에 도움이 될 수 있습니다.
Claude Desktop 구성에서 디버그 모드를 사용하려면 다음과 같이 구성을 업데이트하세요.
개발
기여를 환영합니다! 제안이나 개선 사항이 있으시면 이슈를 개설하거나 풀 리퀘스트를 제출해 주세요.
이 프로젝트는 Go로 작성되었습니다. 플랫폼별 지침에 따라 Go를 설치하세요.
서버를 실행하려면 다음을 사용하세요.
Docker 내에서 SSE 전송을 사용하여 서버를 실행할 수도 있습니다. 이미지를 빌드하려면 다음을 사용하세요.
이미지를 실행하려면 다음을 사용하세요.
테스트
사용 가능한 테스트에는 세 가지 유형이 있습니다.
- 단위 테스트(외부 종속성 필요 없음):
다음을 사용하여 단위 테스트를 실행할 수도 있습니다.
- 통합 테스트(Docker 컨테이너가 작동 중이어야 함):
- 클라우드 테스트(클라우드 Grafana 인스턴스 및 자격 증명 필요):
참고: 클라우드 테스트는 CI에서 자동으로 구성됩니다. 로컬 개발의 경우, Grafana 클라우드 인스턴스와 자격 증명을 직접 설정해야 합니다.
더욱 포괄적인 통합 테스트를 위해서는 Grafana 인스턴스가 로컬로 포트 3000에서 실행되어야 합니다. Docker Compose를 사용하여 인스턴스를 시작할 수 있습니다.
통합 테스트는 다음을 사용하여 실행할 수 있습니다.
도구를 더 추가하려면 해당 도구에 대한 통합 테스트를 추가하세요. 기존 테스트가 좋은 시작점이 될 것입니다.
린팅
코드를 린트하려면 다음을 실행하세요.
여기에는 jsonschema
구조체 태그에서 이스케이프되지 않은 쉼표를 확인하는 사용자 지정 린터가 포함되어 있습니다. description
필드의 쉼표는 자동 잘림을 방지하기 위해 \\,
로 이스케이프 처리해야 합니다. 이 린터만 다음과 같이 실행할 수 있습니다.
자세한 내용은 JSONSchema Linter 문서를 참조하세요.
특허
이 프로젝트는 Apache 라이선스 버전 2.0 에 따라 라이선스가 부여되었습니다.
This server cannot be installed
Grafana를 위한 MCP(Model Context Protocol) 서버.
이를 통해 Grafana 인스턴스와 주변 생태계에 액세스할 수 있습니다.