grafana-mcp
grafana-mcp
Grafana APIの一部をMCP(Model Context Protocol)サーバーとして公開し、自然言語によるログクエリに焦点を当てています。主な目的は、「過去30分間のapiサービスのログを表示して」と言うだけで、LogQLやラベル、データソースUIDを手動で操作することなく、実際のログ行を取得することです。
ログデータソース、Lokiラベル、およびサービス名からホスティングデータソース/ラベルへのマッピングはディスクにキャッシュされるため、繰り返し呼び出しでは冗長なラベルスキャンがスキップされます。
インストールとセットアップ
npx (インストール不要)
~/.mcp.json に以下を追加します。
{
"mcpServers": {
"grafana": {
"command": "npx",
"args": ["@seungje.jun/grafana-mcp"],
"env": {
"GRAFANA_URL": "https://grafana.example.com",
"GRAFANA_SERVICE_ACCOUNT_TOKEN": "glsa_xxx"
}
}
}
}ソースからビルド
git clone https://github.com/ninanung/grafana-mcp.git
cd grafana-mcp
npm install
npm run build{
"mcpServers": {
"grafana": {
"command": "node",
"args": ["/path/to/grafana-mcp/dist/cli.js"],
"env": {
"GRAFANA_URL": "https://grafana.example.com",
"GRAFANA_SERVICE_ACCOUNT_TOKEN": "glsa_xxx"
}
}
}
}Claude Codeを再起動してMCPツールを有効にします。
認証
以下のいずれかが必要です。以下の順序でチェックされ、最初に見つかったものが使用されます。
変数 | 使用タイミング |
| Grafana 9.1以降 (推奨) |
| Grafana Cloud |
| レガシーAPIキー (10.xで非推奨) |
| 基本認証フォールバック |
すべてのベアラートークンは Authorization: Bearer <token> として送信されます。サーバーはトークンの種類を問わず、設定されているものを選択します。
環境変数
変数 | 説明 |
| GrafanaサーバーURL (シングルインスタンスモード、 |
| (オプション) マルチインスタンスモード用のJSON配列。例: |
| (オプション) |
| (オプション) |
| (オプション) ログレベル: |
| (オプション) 監査ログファイルのパス。デフォルトは |
| (オプション) ディスク上のログキャッシュを無効にするには |
| (オプション) ログキャッシュファイルのパス。デフォルトは |
| (オプション) ログデータソースリストキャッシュのTTL。デフォルト |
| (オプション) LokiラベルキーキャッシュのTTL。デフォルト |
| (オプション) Lokiラベル値キャッシュのTTL。デフォルト |
| (オプション) |
Related MCP server: Log Analyzer MCP Server
ツール
ツール | 説明 |
| 診断チェック — 接続性、バージョン、認証、機能プローブ ( |
| 設定されているすべてのデータソースを一覧表示します |
| クエリ/タグ/タイプでダッシュボードを検索します |
| uidでダッシュボードの完全なJSONを取得します |
| ダッシュボードからパネルクエリ (LogQL/PromQL) を |
| ログタイプのデータソース (Loki, Elasticsearch, CloudWatch, OpenSearch, Splunk) のみを一覧表示します。キャッシュされます |
| Lokiラベルから検出可能なサービス名を一覧表示します — |
| サービス/時間範囲/レベルでログをクエリします。ログデータソースとサービスラベルを自動検出します。マルチラベル/高度なセレクター用に |
| 現在キャッシュされている内容 (ログデータソース、ラベル、解決済みサービス) を確認します |
| 特定のサービスの解決を無効にするか、Grafanaインスタンスのすべてのエントリをクリアします |
| ログキャッシュをJSONファイルにエクスポートします |
| JSONファイルからログキャッシュをインポートします (マージ/置換) |
使用例
MCPクライアントによって調整される典型的な自然言語フロー:
ユーザー: 「過去30分間のapiサービスのエラーログを表示して。」
service: "api",level: "error",time_from: "now-30m"を指定してquery_logsを実行 → サーバーはservice="api"ラベルを所有するLokiデータソースを自動検出し、LogQLを実行します。(初回呼び出し) サービス → データソース/ラベルのマッピングがキャッシュに保存されます。以降の呼び出しでは検出ステップがスキップされます。
ユーザー: 「それらのエラーをパターン別に要約して。」 →
output: "summarize"を指定した同じ呼び出しで、パターン別にグループ化されたカウントが返されます。ユーザー: 「他にどんなサービスがある?」 →
list_servicesがサービスリスト全体を返します。
サービス名にタイプミスがある場合、query_logs は近い一致を表示します (例: Did you mean: checkout, checkout-api?)。
自動検出の仕組み
query_logs はターゲットのデータソースとラベルを独自に選択します:
すべてのデータソースをログタイプ (Loki/ES/CloudWatch/OpenSearch/Splunk) に絞り込みます。
各Lokiデータソースについて、
/loki/api/v1/labelsを取得し、一般的なサービスラベル候補 (service,service_name,app,app_name,application,container,job) を最初に走査し、次に残りのラベルを走査します。各候補ラベルについて、その値を取得し、要求された
service名がそのリストに含まれているかを確認します。ちょうど1つの
(datasource, label)ペアが一致する場合、それを使用します。複数一致する場合は、区別するためにdatasource_uidを要求します。一致しない場合は、近い名前の提案を返します。解決された
(service → ds_uid, label)はキャッシュされます。refresh: trueまたはrefresh_log_cacheで再検出を強制できます。
自動検出は現在Lokiのみをサポートしています。Elasticsearch / CloudWatch / Splunkデータソースの場合は、datasource_uid と service_label を明示的に渡してください (LogQL固有のフィルターは適用されません)。
出力モード
query_logs は output を受け入れます:
raw(デフォルト):<ISO timestamp> <log line>— ターミナルで直接読むのに適しています。summarize: 行を正規化されたパターン (数値 →N, UUID →UUID) でグループ化し、カウントとパターンごとのサンプルを表示します。行がノイズの多い場合や多すぎる場合に使用します。json: 構造化オブジェクト{ ts, line, labels }— 下流のツール用。
キャッシュ
ログキャッシュ:
~/.grafana-mcp/log-cache.jsonに永続化されます。GrafanaベースURLごとにキーが付けられるため、複数のインスタンスが競合することはありません。各カテゴリには独自のTTL (データソース / ラベル / ラベル値 / サービス解決) があります — 上記の環境変数テーブルを参照してください。
後で失敗したキャッシュされたサービス解決 (例: ラベル名が変更された) は自動的に無効化されるため、次の呼び出しで再検出されます。
get_log_cacheで確認、refresh_log_cacheでクリア、export_log_cache/import_log_cacheでチームメイトと共有できます。
キャッシュの場所とリセット
キャッシュ | 場所 | リセット |
ログキャッシュ |
|
|
キャッシュファイルはプレーンなJSONドキュメントであり、手動で確認、編集、バックアップしても安全です。
安全性と制約
読み取り専用: サーバーはGrafanaの状態を変更するエンドポイントを公開しません。ダッシュボード/データソースのCRUDやアラートの変更は行われません。
Stdioログ: すべてのログはstderrに出力され、MCP stdioチャネルをクリーンに保ちます。
TLSスキップ:
GRAFANA_TLS_SKIP_VERIFY=trueはプロセス全体でNODE_TLS_REJECT_UNAUTHORIZED=0を設定します。信頼できるネットワーク内の自己署名Grafanaに対してのみ使用してください。シークレットのログ記録なし: 認証トークンは監査ログに書き込まれません。
ライセンス
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP server giving access to Grafana dashboards, data and more.
The Grafbase MCP server sits in front of a GraphQL API and exposes an MCP protocol-compliant interface that allows AI agents and LLMs to explore and query GraphQL APIs using natural language. It provides tools to search schemas, introspect types and fields, and execute GraphQL queries while minimizing context bloat by returning only relevant schema subsets, with built-in support for authentication, authorization, and configurable access control.
The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.
The BigQuery remote MCP server is a fully managed service that uses the Model Context Protocol to connect AI applications and LLMs to BigQuery data sources. It provides secure, standardized tools for AI agents to list datasets and tables, retrieve schemas, generate and execute SQL queries through natural language, and analyze data—enabling direct access to enterprise analytics data without requiring manual SQL coding.
Related MCP Servers
- AlicenseAqualityDmaintenanceA server that enables AI assistants to access and query Grafana dashboards, metrics, logs, and configurations through an MCP protocol interface.106MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for intelligent log analysis providing semantic search, error pattern clustering, and smart error detection. It enables users to process, vectorize, and query local logs to efficiently identify issues and generate AI-powered summaries.MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables querying logs and metrics from Graylog, Prometheus, and InfluxDB 2.x. It provides tools for executing Lucene log searches, PromQL queries, and Flux queries directly within MCP-compatible clients.MIT
- AlicenseAqualityCmaintenanceAn MCP server for querying Grafana Loki directly with a discovery-first workflow — labels, values, series, and LogQL queries without requiring Grafana.56MIT