Grafana MCP 서버
Grafana를 위한 MCP( Model Context Protocol ) 서버.
이를 통해 Grafana 인스턴스와 주변 생태계에 액세스할 수 있습니다.
특징
- [x] 대시보드 검색
- [x] 대시보드
- [x] UID로 대시보드 가져오기
- [x] 대시보드 업데이트 또는 생성(면책 조항: 컨텍스트 창을 사용할 때는 주의하세요. 자세한 내용은 https://github.com/grafana/mcp-grafana/issues/101을 참조하세요)
- [x] 대시보드의 모든 패널에서 제목, 쿼리 문자열 및 데이터 소스 정보(사용 가능한 경우 UID 및 유형 포함)를 가져옵니다.
- [x] 데이터 소스 정보 나열 및 가져오기
- [ ] 데이터 소스 쿼리
- [x] 프로메테우스
- [x] 로키
- [x] 로그 쿼리
- [x] 메트릭 쿼리
- [ ] 템포
- [ ] 파이로스코프
- [x] Prometheus 메타데이터 쿼리
- [x] 메트릭 메타데이터
- [x] 메트릭 이름
- [x] 라벨 이름
- [x] 레이블 값
- [x] 로키 메타데이터 쿼리
- [x] 라벨 이름
- [x] 레이블 값
- [x] 통계
- [x] 인시던트 검색, 생성, 업데이트 및 닫기
- [x] Sift 조사 시작 및 결과 보기
- [x] 조사 생성
- [x] 제한 매개변수를 사용하여 조사 목록 작성
- [x] 조사 시작
- [x] 분석 받기
- [x] Sift를 사용하여 로그에서 오류 패턴 찾기
- [x] Sift를 사용하여 느린 요청 찾기
- [ ] 다른 Sift Checks에 도구 추가
- [ ] 경고
- [x] 경고 규칙 정보 나열 및 가져오기
- [x] 경고 규칙 상태(발사/정상/오류 등)를 가져옵니다.
- [ ] 알림 규칙 생성 및 변경
- [x] 연락처 목록
- [ ] 연락처 생성 및 변경
- [x] Grafana OnCall 기능에 액세스합니다.
- [x] 일정을 나열하고 관리합니다
- [x] 교대근무 세부 정보 받기
- [x] 현재 대기 중인 사용자 가져오기
- [x] 팀 및 사용자 나열
- [ ] 경고 그룹 목록
- [x] 관리 기능
- [ ] 사용자 목록
- [x] 팀 목록
- [ ] 역할 목록
- [ ] 역할 할당 목록
- [ ] 디버그 역할 할당
도구 목록은 구성 가능하므로 MCP 클라이언트에서 사용할 도구를 선택할 수 있습니다. 이 기능은 특정 기능을 사용하지 않거나 컨텍스트 창을 너무 많이 차지하고 싶지 않을 때 유용합니다. 도구 범주를 비활성화하려면 서버를 시작할 때 --disable-<category>
플래그를 사용하세요. 예를 들어, OnCall 도구를 비활성화하려면 --disable-oncall
사용하세요.
도구
도구 | 범주 | 설명 |
---|---|---|
list_teams | 관리자 | 모든 팀 나열 |
search_dashboards | 찾다 | 대시보드 검색 |
get_dashboard_by_uid | 계기반 | uid로 대시보드 가져오기 |
update_dashboard | 계기반 | 대시보드 업데이트 또는 새 대시보드 생성 |
get_dashboard_panel_queries | 계기반 | 대시보드에서 패널 제목, 쿼리, 데이터 소스 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의 사용자 목록 |
get_investigation | 체로 치다 | UUID로 기존 Sift 조사를 검색합니다. |
get_analysis | 체로 치다 | Sift 조사에서 특정 분석 검색 |
list_investigations | 체로 치다 | 선택적 제한이 있는 Sift 조사 목록을 검색합니다. |
find_error_pattern_logs | 체로 치다 | Loki 로그에서 상승된 오류 패턴을 찾습니다. |
find_slow_requests | 체로 치다 | 관련 템포 데이터 소스에서 느린 요청을 찾습니다. |
용법
- Grafana에서 원하는 도구를 사용할 수 있는 충분한 권한을 가진 서비스 계정을 생성하고, 서비스 계정 토큰을 생성한 후 구성 파일에서 사용할 수 있도록 클립보드에 복사하세요. 자세한 내용은 Grafana 설명서를 참조하세요.
mcp-grafana
설치하는 데에는 여러 가지 옵션이 있습니다.- Docker 이미지 : Docker Hub에서 미리 빌드된 Docker 이미지를 사용하세요.지엑스피1
- 바이너리 다운로드 : 릴리스 페이지 에서
mcp-grafana
의 최신 릴리스를 다운로드하여$PATH
에 넣습니다. - 소스에서 빌드 : Go 툴체인이 설치되어 있다면 소스에서 빌드하고 설치할 수도 있습니다.
GOBIN
환경 변수를 사용하여 바이너리를 설치할 디렉터리를 지정하세요. 이 디렉터리도PATH
에 포함되어야 합니다.
- 클라이언트 설정 파일에 서버 설정을 추가하세요. 예를 들어, Claude Desktop의 경우:바이너리를 사용하는 경우:Docker를 사용하는 경우:
참고: Claude Desktop에서
Error: spawn mcp-grafana ENOENT
표시되면mcp-grafana
에 대한 전체 경로를 지정해야 합니다.
원격 MCP 서버와 함께 VSCode 사용
.vscode/settings.json
에 다음이 포함되어 있는지 확인하세요.
디버그 모드
명령에 -debug
플래그를 추가하여 Grafana 전송에 대한 디버그 모드를 활성화할 수 있습니다. 이렇게 하면 MCP 서버와 Grafana API 간의 HTTP 요청 및 응답에 대한 자세한 로깅이 제공되어 문제 해결에 도움이 될 수 있습니다.
Claude Desktop 구성에서 디버그 모드를 사용하려면 다음과 같이 구성을 업데이트하세요.
바이너리를 사용하는 경우:
Docker를 사용하는 경우:
개발
기여를 환영합니다! 제안이나 개선 사항이 있으시면 이슈를 개설하거나 풀 리퀘스트를 제출해 주세요.
이 프로젝트는 Go로 작성되었습니다. 플랫폼별 지침에 따라 Go를 설치하세요.
서버를 실행하려면 다음을 사용하세요.
사용자 지정 Docker 이미지 내에서 SSE 전송을 사용하여 서버를 실행할 수도 있습니다. 이미지를 빌드하려면 다음을 사용하세요.
이미지를 실행하려면 다음을 사용하세요.
테스트
사용 가능한 테스트에는 세 가지 유형이 있습니다.
- 단위 테스트(외부 종속성 필요 없음):
다음을 사용하여 단위 테스트를 실행할 수도 있습니다.
- 통합 테스트(Docker 컨테이너가 작동 중이어야 함):
- 클라우드 테스트(클라우드 Grafana 인스턴스 및 자격 증명 필요):
참고: 클라우드 테스트는 CI에서 자동으로 구성됩니다. 로컬 개발의 경우, Grafana 클라우드 인스턴스와 자격 증명을 직접 설정해야 합니다.
더욱 포괄적인 통합 테스트를 위해서는 Grafana 인스턴스가 로컬로 포트 3000에서 실행되어야 합니다. Docker Compose를 사용하여 인스턴스를 시작할 수 있습니다.
통합 테스트는 다음을 사용하여 실행할 수 있습니다.
도구를 더 추가하려면 해당 도구에 대한 통합 테스트를 추가하세요. 기존 테스트가 좋은 시작점이 될 것입니다.
린팅
코드를 린트하려면 다음을 실행하세요.
여기에는 jsonschema
구조체 태그에서 이스케이프되지 않은 쉼표를 확인하는 사용자 지정 린터가 포함되어 있습니다. description
필드의 쉼표는 자동 잘림을 방지하기 위해 \\,
로 이스케이프 처리해야 합니다. 이 린터만 다음과 같이 실행할 수 있습니다.
자세한 내용은 JSONSchema Linter 문서를 참조하세요.
특허
이 프로젝트는 Apache 라이선스 버전 2.0 에 따라 라이선스가 부여되었습니다.
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Grafana를 위한 MCP(Model Context Protocol) 서버.
이를 통해 Grafana 인스턴스와 주변 생태계에 액세스할 수 있습니다.
Related MCP Servers
- AsecurityFlicenseAqualityA Model Context Protocol (MCP) server that provides programmatic access to the Supabase Management API. This server allows AI models and other clients to manage Supabase projects and organizations through a standardized interface.Last updated -88427JavaScript
- AsecurityAlicenseAqualityA beginner-friendly Model Context Protocol (MCP) server that helps users understand MCP concepts, provides interactive examples, and lists available MCP servers. This server is designed to be a helpful companion for developers working with MCP. Also comes with a huge list of servers you can install.Last updated -3936JavaScriptApache 2.0
- -securityAlicense-qualityMCP Server simplifies the implementation of the Model Context Protocol by providing a user-friendly API to create custom tools and manage server workflows efficiently.Last updated -43TypeScriptMIT License
- -securityAlicense-qualityMCP Server provides a simpler API to interact with the Model Context Protocol by allowing users to define custom tools and services to streamline workflows and processes.Last updated -132TypeScriptMIT License