mcpField
D
dashmetrics

dashmetrics

ローカル
github.com/CloudCorpRecordsデータ・分析02 週間前に更新

dashmetrics について

dashmetricsは、Grafanaのダッシュボード、データソース、メトリクス、ログ、プロビジョニング済みアラートを読み取るMCPサーバー兼コマンドラインツールです。Grafanaの公開HTTP APIドキュメントに基づいています。

主な機能

  1. 01ダッシュボードの検索と取得
  2. 02設定済みデータソースの確認
  3. 03Prometheusの範囲クエリ実行
  4. 04Lokiログのクエリ
  5. 05アラートルールと連絡先の確認

活用シーン

  1. 01サービスに関連するダッシュボードの検索
  2. 02Prometheusのメトリクスとラベルの確認
  3. 03Lokiでのログとラベルの検索
  4. 04設定済みアラートルールと連絡先の確認

MCP 対応

stdio MCPサーバーとして動作し、ダッシュボード、データソース、Prometheus、Loki、アラートの操作をMCPクライアント向けのツールとして公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-dashmetrics": {
"command": "npx",
"args": [
"-y",
"@reneturcios/dashmetrics"
]
}
}
}
起動コマンドnpx -y @reneturcios/dashmetrics

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@reneturcios/dashmetrics0.1.0
ocighcr.io/cloudcorprecords/dashmetrics:0.1.0

ツール

14

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
typestringいいえGrafana の検索結果タイプを絞り込む任意のフィルターです。ダッシュボードには 'dash-db'、フォルダーには 'dash-folder' を指定します。
limitnumberいいえ検索結果の最大数(任意、デフォルトは 100、1~5000 の範囲に制限)。
querystringいいえ検索するタイトルのテキスト(任意)。タイトルが一致するダッシュボードとフォルダーが返されます。

詳細

dashmetrics

dashmetrics は、MCP クライアントまたはターミナルから Grafana インスタンスへの読み取りアクセスを提供します。ダッシュボードの検索と取得、データソースの調査、 メトリクスとラベルの検出を伴う Prometheus の範囲クエリ、ラベルの検出を伴う Loki のログ クエリ、プロビジョニングされたアラートルールと コンタクトポイントに対応しています。Grafana の公開 HTTP API ドキュメントに基づいて構築された、Grafana の MCP ツール群の文書化された中核機能を クリーンルーム方式で再構築したものです。

GRAFANA_URL(デフォルトは http://localhost:3000)でインスタンスを指定し、 GRAFANA_SERVICE_ACCOUNT_TOKEN にサービスアカウントトークンを設定して認証します。トークンは Bearer トークンとして 送信されます。プライマリ変数が未設定の場合、従来の GRAFANA_API_KEY 変数がフォールバックとして使用されます。トークンが設定されていない場合、すべての呼び出しは GRAFANA_SERVICE_ACCOUNT_TOKEN を示すエラーで失敗します。インスタンスに 接続できない場合は、試行したベース URL を示すエラーが返されます。

インストール

npx @reneturcios/dashmetrics list_datasources

または、コンテナーイメージを実行します。

docker run -i -e GRAFANA_URL -e GRAFANA_SERVICE_ACCOUNT_TOKEN ghcr.io/cloudcorprecords/dashmetrics

コンテナーはデフォルトで MCP サーバーとして起動します(下記を参照)。CLI として使うには、 CLI 引数を渡します。

CLI

すべての MCP ツールは CLI サブコマンドとしても利用できます。ツールの引数は --json を使って 1 つの JSON オブジェクトとして渡します。

export GRAFANA_URL=http://localhost:3000
export GRAFANA_SERVICE_ACCOUNT_TOKEN=<redacted>

dashmetrics search_dashboards --json '{"query": "api", "limit": 5}'
dashmetrics get_dashboard_by_uid --json '{"uid": "dash-1"}'
dashmetrics list_datasources
dashmetrics query_prometheus --json '{"datasourceUid": "prom1", "expr": "up", "start": "now-1h", "end": "now", "step": "15s"}'
dashmetrics query_loki_logs --json '{"datasourceUid": "loki1", "query": "{job=\"api\"}"}'
dashmetrics list_alert_rules

dashmetrics --version

結果は JSON として出力されます。終了コード:成功時は 0、API 呼び出しの失敗時(トークンがない場合を含む)は 1、使用方法のエラー時は 2 です。

MCP サーバー

1 つのバイナリで両方の用途に対応します。mcp サブコマンドで stdio MCP サーバーを起動します。

npx -y @reneturcios/dashmetrics mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "dashmetrics": {
      "command": "npx",
      "args": ["-y", "@reneturcios/dashmetrics", "mcp"],
      "env": {
        "GRAFANA_URL": "http://localhost:3000",
        "GRAFANA_SERVICE_ACCOUNT_TOKEN": "your Grafana service account token"
      }
    }
  }
}
ツール
ツール入力(太字は必須)機能
search_dashboardsquery、limit、typeダッシュボード/フォルダーを検索します(/api/search)。
get_dashboard_by_uiduidUID で指定したダッシュボードを返します。
list_datasources—設定済みのデータソースを一覧表示します。
get_datasource_by_uiduidUID で指定したデータソースを返します。
query_prometheusdatasourceUid、expr、start、end、stepデータソースプロキシ経由で Prometheus の範囲クエリを実行します。
list_prometheus_metric_namesdatasourceUid、regexメトリクス名を一覧表示します。正規表現で絞り込めます。
list_prometheus_label_namesdatasourceUid、metricラベル名を一覧表示します。
list_prometheus_label_valuesdatasourceUid、label、metric1 つのラベルの値を一覧表示します。
query_loki_logsdatasourceUid、query、start、end、limitプロキシ経由で Loki の LogQL 範囲クエリを実行します。
list_loki_label_namesdatasourceUidLoki のラベル名を一覧表示します。
list_loki_label_valuesdatasourceUid、label1 つの Loki ラベルの値を一覧表示します。
list_alert_ruleslimitプロビジョニングされたアラートルールを一覧表示します。
get_alert_rule_by_uiduidUID で指定したプロビジョニング済みアラートルールを返します。
list_contact_pointslimitプロビジョニングされたコンタクトポイントを一覧表示します。

Prometheus と Loki の呼び出しは、Grafana で文書化されているデータソース プロキシのパス(/api/datasources/proxy/uid/{uid}/...)を経由します。対象外: インシデントの作成/更新、オンコールスケジュール、Sift/Asserts、管理者/ユーザー管理については、 BUILD-REPORT.md を参照してください。

開発

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev     # run the CLI from source via tsx

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。