Grafana MCP サーバー
Grafana 用のモデル コンテキスト プロトコル(MCP) サーバー。
これにより、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] Lokiメタデータのクエリ
[x] ラベル名
[x] ラベル値
[x] 統計
[x] インシデントの検索、作成、更新、クローズ
[x] Sift調査を開始して結果を表示する
[x] 調査を作成する
[x] 制限パラメータ付き調査の一覧表示
[x] 調査を受ける
[x] 分析を取得
[x] Siftを使用してログ内のエラーパターンを見つける
[x] Siftを使って遅いリクエストを見つける
[ ] 他のシフトチェックにツールを追加する
[ ] 警告
[x] アラートルール情報の一覧表示と取得
[x] アラートルールのステータス(実行中/正常/エラーなど)を取得します。
[ ] アラートルールの作成と変更
[x] 連絡先リスト
[ ] 連絡先の作成と変更
[x] Grafana OnCall機能にアクセスする
[x] スケジュールの一覧表示と管理
[x] シフトの詳細を取得する
[x] 現在のオンコールユーザーを取得する
[x] チームとユーザーの一覧
[ ] アラートグループの一覧
[x] 管理機能
[ ] ユーザー一覧
[x] チーム一覧
[ ] 役割をリストする
[ ] 役割の割り当てを一覧表示する
[ ] デバッグロールの割り当て
ツールリストは設定可能なので、MCPクライアントで利用できるようにするツールを選択できます。これは、特定の機能を使用しない場合や、コンテキストウィンドウをあまり占有したくない場合に便利です。特定のカテゴリのツールを無効にするには、サーバーの起動時に--disable-<category>フラグを使用します。例えば、OnCallツールを無効にするには、 --disable-oncallを使用します。
ツール
道具 | カテゴリ | 説明 |
| 管理者 | すべてのチームを一覧表示する |
| 検索 | ダッシュボードを検索 |
| ダッシュボード | uidでダッシュボードを取得する |
| ダッシュボード | ダッシュボードを更新または新規作成する |
| ダッシュボード | ダッシュボードからパネルのタイトル、クエリ、データソースの UID とタイプを取得します |
| データソース | データソースの一覧 |
| データソース | uidでデータソースを取得する |
| データソース | 名前でデータソースを取得する |
| プロメテウス | Prometheusデータソースに対してクエリを実行する |
| プロメテウス | メトリックメタデータの一覧表示 |
| プロメテウス | 利用可能なメトリック名を一覧表示する |
| プロメテウス | セレクタに一致するラベル名をリストする |
| プロメテウス | 特定のラベルの値を一覧表示する |
| 事件 | Grafanaインシデントでインシデントを一覧表示する |
| 事件 | Grafanaでインシデントを作成する |
| 事件 | Grafana Incidentのインシデントにアクティビティ項目を追加する |
| 事件 | Grafanaでインシデントを解決する |
| ロキ | LogQL(ログまたはメトリッククエリ)を使用してログをクエリおよび取得する |
| ロキ | ログで利用可能なすべてのラベル名を一覧表示する |
| ロキ | 特定のログラベルの値を一覧表示する |
| ロキ | ログストリームに関する統計情報を取得する |
| 警告 | アラートルールの一覧 |
| 警告 | UIDでアラートルールを取得する |
| オンコール | Grafana OnCall からスケジュールを一覧表示する |
| オンコール | 特定のオンコールシフトの詳細を取得する |
| オンコール | 特定のスケジュールで現在オンコール中のユーザーを取得する |
| オンコール | Grafana OnCall からチームを一覧表示する |
| オンコール | Grafana OnCall からユーザーを一覧表示する |
| ふるいにかける | UUIDで既存のSift調査を取得する |
| ふるいにかける | Sift調査から特定の分析を取得する |
| ふるいにかける | オプションの制限付きでSift調査のリストを取得します |
| ふるいにかける | Loki ログ内のエラー パターンの増加を検出します。 |
| ふるいにかける | 関連するテンポ データ ソースから遅いリクエストを見つけます。 |
Related MCP server: MCP Server
使用法
Grafanaで、必要なツールを使用するのに十分な権限を持つサービスアカウントを作成し、サービスアカウントトークンを生成して、設定ファイルで使用するためにクリップボードにコピーします。詳細については、 Grafanaのドキュメントを参照してください。
mcp-grafanaをインストールするにはいくつかのオプションがあります。Docker イメージ: Docker Hub から事前に構築された Docker イメージを使用します。
docker pull mcp/grafana docker run -p 8000:8000 -e GRAFANA_URL=http://localhost:3000 -e GRAFANA_API_KEY=<your service account token> mcp/grafanaバイナリをダウンロード:リリース ページから
mcp-grafanaの最新リリースをダウンロードし、$PATHに配置します。ソースからビルド:Goツールチェーンがインストールされている場合は、
GOBIN環境変数を使用してバイナリをインストールするディレクトリを指定し、ソースからビルドしてインストールすることもできます。このディレクトリはPATHにも含まれている必要があります。GOBIN="$HOME/go/bin" go install github.com/grafana/mcp-grafana/cmd/mcp-grafana@latest
サーバー設定をクライアント設定ファイルに追加します。例えば、Claude Desktopの場合は以下のようになります。
バイナリを使用する場合:
{ "mcpServers": { "grafana": { "command": "mcp-grafana", "args": [], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_API_KEY": "<your service account token>" } } } }Docker を使用する場合:
{ "mcpServers": { "grafana": { "command": "docker", "args": [ "run", "--rm", "-p", "8000:8000", "-e", "GRAFANA_URL", "-e", "GRAFANA_API_KEY", "mcp/grafana" ], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_API_KEY": "<your service account token>" } } } }
注意: 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トランスポートを使用してサーバーを実行することもできます。イメージをビルドするには、
イメージを実行するには、次を使用します。
テスト
利用できるテストには 3 つの種類があります。
ユニットテスト (外部依存関係は不要):
次のようにしてユニット テストを実行することもできます。
統合テスト (Docker コンテナが起動して実行されている必要があります):
クラウド テスト (クラウド Grafana インスタンスと認証情報が必要です):
注: クラウドテストはCIで自動的に構成されます。ローカル開発の場合は、独自のGrafana Cloudインスタンスと認証情報を設定する必要があります。
より包括的な統合テストでは、Grafana インスタンスをポート 3000 でローカルに実行する必要があります。これは Docker Compose で起動できます。
統合テストは次のように実行できます。
ツールを追加する場合は、それらの統合テストを追加してください。既存のテストは良い出発点となるはずです。
リンティング
コードを lint するには、次を実行します。
これには、 jsonschema構造体タグ内のエスケープされていないカンマをチェックするカスタムリンターが含まれています。 descriptionフィールド内のカンマは\\,でエスケープする必要があります。このリンターだけを実行するには、次のコマンドを使用します。
詳細については、 JSONSchema Linter のドキュメントを参照してください。
ライセンス
このプロジェクトは、Apache License バージョン 2.0に基づいてライセンスされます。