/ 디렉터리 / 플레이그라운드 / Grafana MCP
● 공식 grafana 🔑 본인 키 필요

Grafana MCP

제작: grafana · grafana/mcp-grafana

공식 Grafana MCP — Prometheus/Loki/Tempo 쿼리, 대시보드 목록, 알림 가져오기, 인시던트 타임라인 실행, 모두 하나의 stdio 서버로.

Grafana의 퍼스트파티 MCP 서버는 Grafana 스택(OSS, Cloud, 또는 Enterprise)에 연결하고 데이터 소스 + 관리 API를 MCP 도구로 노출합니다. Prometheus/Loki/Tempo 쿼리, 대시보드 탐색, 알림 상태, OnCall, Sift 조사 — Grafana가 할 수 있는 모든 것을 Claude가 물어볼 수 있습니다.

왜 쓰나요

핵심 기능

라이브 데모

실제 사용 모습

mcp-grafana.replay ▶ 준비됨
0/0

설치

클라이언트 선택

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcp-grafana": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GRAFANA_URL",
        "-e",
        "GRAFANA_API_KEY",
        "mcp/grafana",
        "-t",
        "stdio"
      ],
      "env": {
        "GRAFANA_URL": "https://your-grafana.example.com",
        "GRAFANA_API_KEY": "${GRAFANA_API_KEY}"
      }
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config 열기. 저장 후 앱 재시작.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcp-grafana": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GRAFANA_URL",
        "-e",
        "GRAFANA_API_KEY",
        "mcp/grafana",
        "-t",
        "stdio"
      ],
      "env": {
        "GRAFANA_URL": "https://your-grafana.example.com",
        "GRAFANA_API_KEY": "${GRAFANA_API_KEY}"
      }
    }
  }
}

Cursor는 Claude Desktop과 동일한 mcpServers 스키마 사용. 프로젝트 설정이 전역보다 우선.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcp-grafana": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GRAFANA_URL",
        "-e",
        "GRAFANA_API_KEY",
        "mcp/grafana",
        "-t",
        "stdio"
      ],
      "env": {
        "GRAFANA_URL": "https://your-grafana.example.com",
        "GRAFANA_API_KEY": "${GRAFANA_API_KEY}"
      }
    }
  }
}

Cline 사이드바의 MCP Servers 아이콘 클릭 후 "Edit Configuration" 선택.

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-grafana": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GRAFANA_URL",
        "-e",
        "GRAFANA_API_KEY",
        "mcp/grafana",
        "-t",
        "stdio"
      ],
      "env": {
        "GRAFANA_URL": "https://your-grafana.example.com",
        "GRAFANA_API_KEY": "${GRAFANA_API_KEY}"
      }
    }
  }
}

Claude Desktop과 같은 형식. Windsurf 재시작 후 적용.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcp-grafana",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GRAFANA_URL",
        "-e",
        "GRAFANA_API_KEY",
        "mcp/grafana",
        "-t",
        "stdio"
      ]
    }
  ]
}

Continue는 맵이 아닌 서버 오브젝트 배열 사용.

~/.config/zed/settings.json
{
  "context_servers": {
    "mcp-grafana": {
      "command": {
        "path": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "GRAFANA_URL",
          "-e",
          "GRAFANA_API_KEY",
          "mcp/grafana",
          "-t",
          "stdio"
        ]
      }
    }
  }
}

context_servers에 추가. 저장 시 Zed가 핫 리로드.

claude mcp add mcp-grafana -- docker run -i --rm -e GRAFANA_URL -e GRAFANA_API_KEY mcp/grafana -t stdio

한 줄 명령. claude mcp list로 확인, claude mcp remove로 제거.

사용 사례

실전 활용법: Grafana MCP

Grafana 데이터에서 인시던트 타임라인 구축

👤 SRE / 온콜 담당자 ⏱ ~10 min intermediate

언제 쓸까: 페이저가 발동했을 때; 통화 참여 전에 일관된 타임라인을 원할 때.

사전 조건
  • Grafana 서비스 계정 토큰 — Grafana → 관리 → 서비스 계정; 쿼리는 Editor 역할로 충분
흐름
  1. 발화 중인 알림 확인
    Grafana: 지난 30분 동안 service=checkout에서 발화 중인 알림을 나열하세요.✓ 복사됨
    → list_alerts가 타임스탬프와 함께 1개 이상의 알림을 반환
  2. 메트릭 가져오기
    각 알림에 대해 지난 1시간 동안 기반 메트릭의 Prometheus 범위 쿼리를 실행하세요. 위반 시간을 기록하세요.✓ 복사됨
    → query_prometheus_range가 시계열 반환
  3. 위반 시점의 로그 가져오기
    Loki: service=checkout, level=error, [위반_시간-2m, 위반_시간+2m] 로그. 상위 패턴.✓ 복사됨
    → 서명별로 클러스터링된 로그 라인
  4. 타임라인 작성
    간결한 타임라인 구축: 알림 발화 → 메트릭 위반 → 상위 3개 오류 로그 패턴. Slack용 Markdown.✓ 복사됨
    → 붙여넣을 준비가 된 타임라인

결과: 통화 참여 전에 일관된 인시던트 타임라인 완성

함정
  • Loki 쿼리가 너무 광범위 → 토큰 예산 초과 — 항상 service= 레이블 포함; 시간 창을 적극적으로 제한
  • Prometheus 쿼리의 step이 너무 세밀함 — 1시간 창에는 step=15s 또는 30s 사용
함께 쓰기: sentry

Grafana 대시보드가 실제로 무엇을 보여주는지 설명

👤 새 팀원 온보딩 ⏱ ~15 min beginner

언제 쓸까: 대시보드를 상속받았고 각 패널을 클릭하지 않고 이해하고 싶을 때.

흐름
  1. 찾기
    Grafana: 'Checkout SLO' 제목의 대시보드를 검색하세요.✓ 복사됨
    → 대시보드 UID 반환됨
  2. 패널 검사
    대시보드를 가져오세요. 각 패널에 대해 요약하세요: 제목, 데이터 소스, 실행하는 쿼리, 임계값(있는 경우).✓ 복사됨
    → 쿼리 문자열이 포함된 패널별 설명

결과: 온보딩 위키에 준비된 대시보드 문서화된 이해

함정
  • 변수가 이상하게 대체됨$service/$env 보간은 대시보드 시점이며 MCP 시점이 아님을 언급

노이즈에 대한 알림 규칙 감사

👤 SRE 리드 ⏱ ~30 min intermediate

언제 쓸까: 분기별 위생 관리 — 지속적으로 발화하거나 전혀 발화하지 않는 규칙 찾기.

흐름
  1. 규칙 가져오기
    Grafana: Production 폴더의 모든 알림 규칙을 나열하세요.✓ 복사됨
    → UID + 표현식이 있는 규칙 목록
  2. 발화 기록 가져오기
    각각에 대해 지난 30일 동안의 알림 인스턴스 수를 세세요. >100인 규칙(노이즈)과 0인 규칙(휴면)을 표시하세요.✓ 복사됨
    → 규칙별 횟수 + 표시된 집합
  3. 권장 사항
    표시된 각 규칙에 대해 수정을 제안하세요: 임계값 강화, for: 5m 추가, 또는 휴면 규칙 삭제.✓ 복사됨
    → 규칙별 구체적인 YAML 변경사항

결과: PR 준비가 된 YAML이 있는 구체적인 정리 계획

함정
  • 인스턴스 수 ≠ 고유 알림 수 — 레이블별로 그룹화; 고유 발화 기간 수 세기
함께 쓰기: github

조합

다른 MCP와 조합해 10배 효율

mcp-grafana + sentry

Sentry 오류와 메트릭/로그 위반 상호 연관

Sentry: OrderService 오류 급증을 가져오세요. Grafana: 같은 시간 창의 Prometheus + Loki를 가져오세요.✓ 복사됨
mcp-grafana + github

알림 규칙 정리가 포함된 PR 열기

Grafana: 알림 규칙 감사. GitHub: 노이즈 규칙을 강화된 임계값으로 교체하는 PR 열기.✓ 복사됨
mcp-grafana + filesystem

Markdown 사후 분석에 인시던트 타임라인 저장

Grafana에서 타임라인을 구축하고, /pm/2026-05-incident.md에 저장하세요.✓ 복사됨

도구

이 MCP가 노출하는 것

도구입력언제 호출비용
list_datasources (없음) 첫 번째 호출, 사용 가능한 것 파악 1 API call
query_prometheus datasource_uid, query, time? 즉시 메트릭 값 1 call
query_prometheus_range datasource_uid, query, start, end, step 시계열 조사 1 call
query_loki_logs datasource_uid, expr, start, end, limit? 로그 가져오기 1 call
search_dashboards query: str 대시보드 찾기 1 call
get_dashboard uid: str 패널 검사 1 call
list_alert_rules folder? 감사 / 탐색 1 call
list_alert_instances state? 지금 발화 중인 것 확인 1 call
list_oncall_schedules (없음) 누가 온콜인지 확인 1 call

비용 및 제한

운영 비용

API 쿼터
Grafana 인스턴스 한도에 바인딩; Cloud에는 조직 수준 QPS 상한선
호출당 토큰
300–8000 (범위 쿼리는 클 수 있음)
금액
무료 OSS; Grafana Cloud는 정상 청구
범위 쿼리에 항상 step= 전달; 볼륨을 모를 경우 Loki limit=100 사용

보안

권한, 시크릿, 파급범위

최소 스코프: service-account with Viewer or Editor
자격 증명 저장: 환경 변수에 서비스 계정 토큰
데이터 외부 송신: 사용자의 Grafana URL만
절대 부여 금지: 규칙 변경이 필요한 경우를 제외한 Admin 역할

문제 해결

자주 발생하는 오류와 해결

401 Unauthorized

토큰이 잘못되었거나 서비스 계정이 비활성화됨

확인: curl -H 'Authorization: Bearer $TOKEN' $URL/api/health
Prometheus 쿼리 타임아웃

시간 범위 또는 step 줄이기

Loki '파싱 오류'

LogQL은 파이프라인 왼쪽에 레이블 필터가 필요; 예: {service="x"} |= "err"

대시보드를 찾을 수 없음

가져온 후 UID가 변경됨; 제목으로 먼저 검색

대안

Grafana MCP 다른 것과 비교

대안언제 쓰나단점/장점
직접 Prometheus MCPGrafana 없이 Prometheus만 사용할 때대시보드 없음, 알림 UI 통합 없음
Datadog MCPDatadog을 사용할 때다른 관찰 가능성 스택
Loki MCP 단독로그만 필요할 때더 좁은 범위

더 보기

리소스

📖 GitHub에서 공식 README 읽기

🐙 열린 이슈 보기

🔍 400+ MCP 서버 및 Skills 전체 보기