GrafanaのMCPサーバを使ってGrafana Cloudと接続する
はじめに
本記事では、Grafanaから提供されているMCPサーバを使用して、Grafana Cloudと接続する方法について説明します。
GitHubのリポジトリはこちらです。
前提条件
この記事は以下の環境下で検証しています。
- Windows 11
- Grafana Cloud(Freeプラン)登録済み
- Claude Desktop(Proプラン)で動作確認
APIキーの取得
GrafanaはHTTP APIを公開しています。AIアシスタントはMCPサーバと連携し、ユーザからの質問を元に適切なエンドポイントやリクエストパラメータを組み立て、APIから結果を取得します。そのため、GrafanaのMCPサーバを使用するにはAPIキーが必要です。
HTTP API | Grafana documentation
Grafana Cloudを起動し、左メニューから「Administration」⇒「Users and access」⇒「Service accounts」を選択します。
右上の「Add service account」をクリックします。
Display nameとRoleを任意に設定します。ここでは「Viewer」ロールに設定します。
下のような画面に遷移します。「Add service account token」をクリックします。
Display nameとExpirationを任意に設定します。
「Generate token」をクリックするとトークンが生成されます。トークンは後から参照することができないため、コピーしてどこかに保存しておきます。
mcp-grafanaのダウンロード
mcp-grafanaのREADMEに記載の通り、以下のページからご自身の環境にあったバイナリファイルをダウンロードします。
私はmcp-grafana_Windows_x86_64.zip
をダウンロードしました。
圧縮ファイルを解凍し、任意のディレクトリに配置します。
Claude Desktopの設定
Claude Desktopで、MCPサーバの設定ファイルを編集します。設定ファイルの編集方法については以下の記事を参照してください。
PostgreSQLのMCPサーバを使って自然言語でデータベースに問い合わせる | DevelopersIO
以下のように編集します。
{
"mcpServers": {
"grafana": {
"command": "C:\\exeを配置したパス\\mcp-grafana.exe",
"args": [],
"env": {
"GRAFANA_URL": "https://ご自身のスタック名.grafana.net/",
"GRAFANA_API_KEY": "取得したAPIキー"
}
}
}
}
Claude Desktopを再起動します。
動作確認
Claude Desktopを開くと、チャット欄の下にツールアイコンが表示されています。
このアイコンをクリックすると、Grafanaに対してどのようなツールが使えるかを参照できます。
どのようなダッシュボードがあるか聞いてみます。
Grafana Cloudにあるダッシュボードと同一の情報が返ってきました。
注意点
MCPサーバは基本的にGrafanaのHTTP APIを呼び出して動作しています。そのため、取得できる情報はGrafana HTTP APIが返すレスポンスに限定されます。例えば、データソースに対してSQLクエリを実行し、その結果をダッシュボードに表示しているようなケースでは、MCPを使ってその値を直接取得することはできません。
以下、Grafanaに対して可能な操作をClaudeに質問してみました。
Grafanaに関して、現在利用可能な操作や機能をご説明します。以下の主要な操作が可能です:
1. ダッシュボード管理
・ダッシュボードの検索・一覧表示(search_dashboards)
・特定のダッシュボードの詳細取得(get_dashboard_by_uid)
2. データソース管理
・データソース一覧の取得(list_datasources)
・特定のデータソースの詳細取得(get_datasource_by_uid、get_datasource_by_name)
3. アラート管理
・アラートルール一覧の取得(list_alert_rules)
・特定のアラートルールの詳細取得(get_alert_rule_by_uid)
4. メトリクスとログのクエリ
・Prometheusメトリクスのクエリ(query_prometheus)
・Prometheusラベル情報の取得(list_prometheus_label_names、list_prometheus_label_values)
・Prometheusメトリクス情報の取得(list_prometheus_metric_names、list_prometheus_metric_metadata)
・Lokiログのクエリ(query_loki_logs)
・Lokiログの統計情報取得(query_loki_stats)
・Lokiラベル情報の取得(list_loki_label_names、list_loki_label_values)
5. インシデント管理
・インシデントの一覧取得(list_incidents)
・インシデントの作成(create_incident)
・インシデントへの活動追加(add_activity_to_incident)
6. OnCall管理(オンコール当番)
・オンコールスケジュールの一覧・詳細取得(list_oncall_schedules)
・現在オンコール当番中のユーザー取得(get_current_oncall_users)
・オンコールシフトの詳細取得(get_oncall_shift)
・オンコールチームの一覧取得(list_oncall_teams)
・オンコールユーザーの一覧・詳細取得(list_oncall_users)
これらの機能を使って、Grafanaの監視環境全体を確認したり、特定のメトリクスやログを検索したり、アラートやインシデント管理を行ったりすることができます。何か特定の操作に関して詳しく知りたい点があれば、お知らせください。
現時点では、ログやアラートの管理や分析に役立てることができそうです。
おわりに
本記事では、GrafanaのMCPサーバを使用してGrafana Cloudと接続する手順を紹介しました。
現時点では対応しているAPIが限られていますが、今後のアップデートによってさらに機能が拡充されていく可能性があります。定期的に公式情報を確認されることをおすすめします。また、具体的な活用方法については、別途記事にできればと思います。
この記事がどなたかのお役に立てば幸いです。