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) サーバー。
これにより、Grafana インスタンスと周囲のエコシステムにアクセスできるようになります。
特徴
- [x] ダッシュボードを検索
- [x] UIDでダッシュボードを取得する
- [x] データソース情報の一覧表示と取得
- [ ] データソースのクエリ
- [x] プロメテウス
- [x] ロキ
- [x] ログクエリ
- [x] メトリッククエリ
- [ ] テンポ
- [ ] パイロスコープ
- [x] Prometheusメタデータのクエリ
- [x] メトリックメタデータ
- [x] メトリック名
- [x] ラベル名
- [x] ラベル値
- [x] Lokiメタデータのクエリ
- [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でインシデントを作成する |
add_activity_to_incident | 事件 | Grafana Incidentのインシデントにアクティビティ項目を追加する |
resolve_incident | 事件 | Grafanaでインシデントを解決する |
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 | オンコール | 特定のオンコールシフトの詳細を取得する |
get_current_oncall_users | オンコール | 特定のスケジュールで現在オンコール中のユーザーを取得する |
list_oncall_teams | オンコール | Grafana OnCall からチームを一覧表示する |
list_oncall_users | オンコール | Grafana OnCall からユーザーを一覧表示する |
使用法
- Grafanaで、必要なツールを使用するのに十分な権限を持つサービスアカウントを作成し、サービスアカウントトークンを生成して、設定ファイルで使用するためにクリップボードにコピーします。詳細については、 Grafanaのドキュメントを参照してください。
- リリース ページから
mcp-grafana
の最新リリースをダウンロードし、$PATH
に配置します。Goツールチェーンがインストールされている場合は、GOBIN
環境変数を使用してバイナリをインストールするディレクトリを指定し、ソースからビルドしてインストールすることもできます。このディレクトリはPATH
にも含まれている必要があります。Copy - サーバー設定をクライアント設定ファイルに追加します。例えば、Claude Desktopの場合は以下のようになります。Copy
注意: Claude Desktop で
Error: spawn mcp-grafana ENOENT
表示される場合は、mcp-grafana
へのフルパスを指定する必要があります。
デバッグモード
コマンドに-debug
フラグを追加することで、Grafana トランスポートのデバッグモードを有効にできます。これにより、MCP サーバーと Grafana API 間の HTTP リクエストとレスポンスの詳細なログが記録され、トラブルシューティングに役立ちます。
Claude Desktop 構成でデバッグ モードを使用するには、次のように構成を更新します。
発達
貢献を歓迎します!ご提案や改善点がありましたら、問題を報告するか、プルリクエストを送信してください。
このプロジェクトはGoで書かれています。お使いのプラットフォームの指示に従ってGoをインストールしてください。
サーバーを実行するには、次を使用します。
Docker内でSSEトランスポートを使用してサーバーを実行することもできます。イメージをビルドするには、
イメージを実行するには、次を使用します。
テスト
利用できるテストには 3 つの種類があります。
- ユニットテスト (外部依存関係は不要):
次のようにしてユニット テストを実行することもできます。
- 統合テスト (Docker コンテナが起動して実行されている必要があります):
- クラウド テスト (クラウド Grafana インスタンスと認証情報が必要です):
注: クラウドテストはCIで自動的に構成されます。ローカル開発の場合は、独自のGrafana Cloudインスタンスと認証情報を設定する必要があります。
より包括的な統合テストでは、Grafana インスタンスをポート 3000 でローカルに実行する必要があります。これは Docker Compose で起動できます。
統合テストは次のように実行できます。
ツールを追加する場合は、それらの統合テストを追加してください。既存のテストは良い出発点となるはずです。
リンティング
コードを lint するには、次を実行します。
これには、 jsonschema
構造体タグ内のエスケープされていないカンマをチェックするカスタムリンターが含まれています。 description
フィールド内のカンマは\\,
でエスケープする必要があります。このリンターだけを実行するには、次のコマンドを使用します。
詳細については、 JSONSchema Linter のドキュメントを参照してください。
ライセンス
このプロジェクトは、Apache License バージョン 2.0に基づいてライセンスされます。
This server cannot be installed
Grafana 用のモデル コンテキスト プロトコル (MCP) サーバー。
これにより、Grafana インスタンスと周囲のエコシステムにアクセスできるようになります。