Grafana

Official

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의 사용자 목록

용법

  1. Grafana에서 원하는 도구를 사용할 수 있는 충분한 권한을 가진 서비스 계정을 생성하고, 서비스 계정 토큰을 생성한 후 구성 파일에서 사용할 수 있도록 클립보드에 복사하세요. 자세한 내용은 Grafana 설명서를 참조하세요.
  2. 릴리스 페이지 에서 mcp-grafana 의 최신 릴리스를 다운로드하여 $PATH 에 넣으세요.Go 툴체인이 설치되어 있다면 소스에서 빌드하고 설치할 수도 있습니다. GOBIN 환경 변수를 사용하여 바이너리를 설치할 디렉터리를 지정하세요. 이 디렉터리도 PATH 에 포함되어야 합니다.지엑스피1
  3. 클라이언트 설정 파일에 서버 설정을 추가하세요. 예를 들어, Claude Desktop의 경우:
    { "mcpServers": { "grafana": { "command": "mcp-grafana", "args": [], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_API_KEY": "<your service account token>" } } } }

참고: Claude Desktop에서 Error: spawn mcp-grafana ENOENT 표시되면 mcp-grafana 에 대한 전체 경로를 지정해야 합니다.

디버그 모드

명령에 -debug 플래그를 추가하여 Grafana 전송에 대한 디버그 모드를 활성화할 수 있습니다. 이렇게 하면 MCP 서버와 Grafana API 간의 HTTP 요청 및 응답에 대한 자세한 로깅이 제공되어 문제 해결에 도움이 될 수 있습니다.

Claude Desktop 구성에서 디버그 모드를 사용하려면 다음과 같이 구성을 업데이트하세요.

{ "mcpServers": { "grafana": { "command": "mcp-grafana", "args": ["-debug"], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_API_KEY": "<your service account token>" } } } }

개발

기여를 환영합니다! 제안이나 개선 사항이 있으시면 이슈를 개설하거나 풀 리퀘스트를 제출해 주세요.

이 프로젝트는 Go로 작성되었습니다. 플랫폼별 지침에 따라 Go를 설치하세요.

서버를 실행하려면 다음을 사용하세요.

make run

Docker 내에서 SSE 전송을 사용하여 서버를 실행할 수도 있습니다. 이미지를 빌드하려면 다음을 사용하세요.

make build-image

이미지를 실행하려면 다음을 사용하세요.

docker run -it --rm -p 8000:8000 mcp-grafana:latest

테스트

사용 가능한 테스트에는 세 가지 유형이 있습니다.

  1. 단위 테스트(외부 종속성 필요 없음):
make test-unit

다음을 사용하여 단위 테스트를 실행할 수도 있습니다.

make test
  1. 통합 테스트(Docker 컨테이너가 작동 중이어야 함):
make test-integration
  1. 클라우드 테스트(클라우드 Grafana 인스턴스 및 자격 증명 필요):
make test-cloud

참고: 클라우드 테스트는 CI에서 자동으로 구성됩니다. 로컬 개발의 경우, Grafana 클라우드 인스턴스와 자격 증명을 직접 설정해야 합니다.

더욱 포괄적인 통합 테스트를 위해서는 Grafana 인스턴스가 로컬로 포트 3000에서 실행되어야 합니다. Docker Compose를 사용하여 인스턴스를 시작할 수 있습니다.

docker-compose up -d

통합 테스트는 다음을 사용하여 실행할 수 있습니다.

make test-all

도구를 더 추가하려면 해당 도구에 대한 통합 테스트를 추가하세요. 기존 테스트가 좋은 시작점이 될 것입니다.

린팅

코드를 린트하려면 다음을 실행하세요.

make lint

여기에는 jsonschema 구조체 태그에서 이스케이프되지 않은 쉼표를 확인하는 사용자 지정 린터가 포함되어 있습니다. description 필드의 쉼표는 자동 잘림을 방지하기 위해 \\, 로 이스케이프 처리해야 합니다. 이 린터만 다음과 같이 실행할 수 있습니다.

make lint-jsonschema

자세한 내용은 JSONSchema Linter 문서를 참조하세요.

특허

이 프로젝트는 Apache 라이선스 버전 2.0 에 따라 라이선스가 부여되었습니다.

-
security - not tested
A
license - permissive license
-
quality - not tested

Grafana를 위한 MCP(Model Context Protocol) 서버.

이를 통해 Grafana 인스턴스와 주변 생태계에 액세스할 수 있습니다.

  1. Features
    1. Tools
  2. Usage
    1. Debug Mode
  3. Development
    1. Testing
    2. Linting
  4. License
    ID: s29pkmp7d9