mcp-victoriametrics

Integrations

  • Enables monitoring and analysis of Kubernetes metrics, including the ability to query container, pod, and other Kubernetes-specific metrics collected by VictoriaMetrics.

  • Supports Prometheus-compatible functionality including querying with PromQL, metric relabeling rules debugging, and integration with Prometheus configuration when used as a scraper for VictoriaMetrics.

  • Provides access to a VictoriaMetrics monitoring system, enabling querying metrics, exploring data, analyzing alerts/rules, viewing instance parameters, exploring data cardinality, analyzing queries, and debugging relabeling rules and retention configurations.

VictoriaMetrics MCP サーバー

VictoriaMetrics用のモデルコンテキストプロトコル (MCP)サーバーの実装。

これにより、VictoriaMetricsインスタンスへのアクセスと、 VictoriaMetrics APIおよびドキュメントとのシームレスな統合が可能になります。VictoriaMetricsインスタンスに関連する監視、可観測性、デバッグタスクのための包括的なインターフェースを提供し、エンジニアやツールのための高度な自動化とインタラクション機能を実現します。

特徴

この MCP サーバーを使用すると、VictoriaMetrics のほぼすべての読み取り専用 API、つまりVMUIで使用可能なすべての機能を使用できます。

  • メトリクスのクエリとデータの探索(クライアントがサポートしている場合はグラフの描画も可能)
  • 利用可能なメトリック、ラベル、ラベル値、およびシリーズ全体の一覧表示とエクスポート
  • アラートと記録ルールとアラートの分析
  • VictoriaMetricsインスタンスのパラメータを表示しています
  • データのカーディナリティとメトリクスの使用統計を調べる
  • クエリの分析
  • 再ラベル付けルール、ダウンサンプリング、保持ポリシー設定のデバッグ

さらに、MCP サーバーには最新のドキュメントが埋め込まれており、オンライン アクセスなしで検索できます。

使用可能なツールとプロンプトの詳細については、 「使用方法」セクションを参照してください。

ツールの機能やドキュメント検索機能をプロンプトに組み合わせることで、VictoriaMetricsインスタンスの優れた活用シナリオを構築できます。ダイアログサンプルのセクションで動作例をご確認ください。MCPサーバーとそのレスポンスの品質は、クライアントの能力と使用するモデルの品質に大きく依存することにご注意ください。

MCP サーバーを他の可観測性またはドキュメント検索関連の MCP サーバーと組み合わせて、さらに強力な結果を得ることもできます。

要件

インストール

行く

go install github.com/VictoriaMetrics-Community/mcp-victoriametrics/cmd/mcp-victoriametrics@latest

ソースコード

git clone https://github.com/VictoriaMetrics-Community/mcp-victoriametrics.git cd mcp-victoriametrics go build -o bin/mcp-victoriametrics ./cmd/mcp-victoriametrics/main.go # after that add bin/mcp-victoriametrics file to your PATH

バイナリ

リリースページから最新リリースをダウンロードし、PATH に配置するだけです。

ドッカー

近日公開...

構成

VictoriaMetrics の MCP サーバーは、環境変数を介して構成されます。

変数説明必須デフォルト許容値
VM_INSTANCE_ENTRYPOINTVictoriaMetricsインスタンスへのURLはい--
VM_INSTANCE_TYPEVictoriaMetricsインスタンスの種類はい-singlecluster
VM_INSTANCE_BEARER_TOKENVictoriaMetrics API の認証トークンいいえ--
MCP_SERVER_MODEサーバーの動作モードいいえstdiostdiosse
MCP_SSE_ADDRSSEサーバがリッスンするアドレスいいえlocalhost:8080-

設定例

# For a single-node instance export VM_INSTANCE_ENTRYPOINT="http://localhost:8428" export VM_INSTANCE_TYPE="single" export VM_INSTANCE_BEARER_TOKEN="your-token" # For a cluster export VM_INSTANCE_ENTRYPOINT="https://play.victoriametrics.com" export VM_INSTANCE_TYPE="cluster" # Server mode export MCP_SERVER_MODE="sse" export MCP_SSE_ADDR="0.0.0.0:8080"

クライアントでの設定

カーソル

Settings -> Cursor Settings -> MCP -> Add new global MCP serverに移動し、次の構成をカーソルの~/.cursor/mcp.jsonファイルに貼り付けます。

{ "mcpServers": { "victoriametrics": { "command": "/path/to/mcp-victoriametrics", "env": { "VM_INSTANCE_ENTRYPOINT": "<YOUR_VM_INSTANCE>", "VM_INSTANCE_TYPE": "<YOUR_VM_INSTANCE_TYPE>", "VM_INSTANCE_BEARER_TOKEN": "<YOUR_VM_BEARER_TOKEN>" } } } }

詳細については、カーソル MCP のドキュメントを参照してください。

クロードデスクトップ

これを Claude Desktop のclaude_desktop_config.jsonファイルに追加します ( Settings -> Developer -> Edit configを開くと見つかります)。

{ "mcpServers": { "victoriametrics": { "command": "/path/to/mcp-victoriametrics", "env": { "VM_INSTANCE_ENTRYPOINT": "<YOUR_VM_INSTANCE>", "VM_INSTANCE_TYPE": "<YOUR_VM_INSTANCE_TYPE>", "VM_INSTANCE_BEARER_TOKEN": "<YOUR_VM_BEARER_TOKEN>" } } } }

詳細については、 Claude Desktop MCP のドキュメントを参照してください。

クロード・コード

次のコマンドを実行します。

claude mcp add victoriametrics -- /path/to/mcp-victoriametrics \ -e VM_INSTANCE_ENTRYPOINT=<YOUR_VM_INSTANCE> \ -e VM_INSTANCE_TYPE=<YOUR_VM_INSTANCE_TYPE> -e VM_INSTANCE_BEARER_TOKEN=<YOUR_VM_BEARER_TOKEN>

詳細については、 Claude Code MCP のドキュメントを参照してください。

ビジュアルスタジオコード

VS Code MCP 構成ファイルに以下を追加します。

{ "servers": { "victoriametrics": { "type": "stdio", "command": "/path/to/mcp-victoriametrics", "env": { "VM_INSTANCE_ENTRYPOINT": "<YOUR_VM_INSTANCE>", "VM_INSTANCE_TYPE": "<YOUR_VM_INSTANCE_TYPE>", "VM_INSTANCE_BEARER_TOKEN": "<YOUR_VM_BEARER_TOKEN>" } } } }

詳細については、 VS Code MCP ドキュメントを参照してください。

ゼッド

Zed 構成ファイルに次の内容を追加します。

"context_servers": { "victoriametrics": { "command": { "path": "/path/to/mcp-victoriametrics", "args": [], "env": { "VM_INSTANCE_ENTRYPOINT": "<YOUR_VM_INSTANCE>", "VM_INSTANCE_TYPE": "<YOUR_VM_INSTANCE_TYPE>", "VM_INSTANCE_BEARER_TOKEN": "<YOUR_VM_BEARER_TOKEN>" } }, "settings": {} } }

詳細については、 Zed MCP のドキュメントを参照してください。

JetBrains IDE

  • Settings -> Tools -> AI Assistant -> Model Context Protocol (MCP)を開きます。
  • Add (+)クリック
  • As JSON選択
  • 入力フィールドに次の内容を入力します。
{ "mcpServers": { "victoriametrics": { "command": "/path/to/mcp-victoriametrics", "env": { "VM_INSTANCE_ENTRYPOINT": "<YOUR_VM_INSTANCE>", "VM_INSTANCE_TYPE": "<YOUR_VM_INSTANCE_TYPE>", "VM_INSTANCE_BEARER_TOKEN": "<YOUR_VM_BEARER_TOKEN>" } } } }

ウィンドサーフィン

Windsurf MCP 構成ファイルに以下を追加します。

{ "mcpServers": { "victoriametrics": { "command": "/path/to/mcp-victoriametrics", "env": { "VM_INSTANCE_ENTRYPOINT": "<YOUR_VM_INSTANCE>", "VM_INSTANCE_TYPE": "<YOUR_VM_INSTANCE_TYPE>", "VM_INSTANCE_BEARER_TOKEN": "<YOUR_VM_BEARER_TOKEN>" } } } }

詳細については、 Windsurf MCP のドキュメントを参照してください。

アマゾンの岩盤

近日公開....

バイナリの代わりにDockerを使用する

近日公開...

使用法

MCP サーバーをインストールし構成したら、お気に入りの MCP クライアントで使用を開始できます。

次のフレーズから AI アシスタントとの対話を開始できます。

Use MCP VictoriaMetrics in the following answers

しかし、必須ではありません。質問を始めるだけで、アシスタントが自動的にツールとドキュメントを活用して最適な回答を提供します。ダイアログの例のセクションをご覧いただくと、何ができるかをより深く理解できます。

ツールセット

MCP VictoriaMetrics は、VictoriaMetrics インスタンスと対話するためのさまざまなツールを提供します。

利用可能なツールのリストは次のとおりです。

道具説明
query即時PromQL/MetricsQLクエリを実行する
query_range一定期間にわたる範囲の PromQL/MetricsQL クエリを実行する
metrics利用可能な指標の一覧
labels利用可能なラベル名を一覧表示する
label_values特定のラベルの値を一覧表示する
series利用可能な時系列を一覧表示する
export生の時系列データをJSONまたはCSVにエクスポートする
rulesアラートと記録ルールを表示する
alerts現在のアラート(発動中および保留中)を表示する
flagsVictoriaMetricsインスタンスのデフォルト以外のフラグを表示する
metric_statisticsメトリクスの使用状況(クエリ内)の統計情報を取得する
active_queries現在実行中のクエリを表示する
top_queries最も頻繁なクエリや最も遅いクエリを表示する
tsdb_statusTSDB カーディナリティ統計を表示する
tenantsマルチテナント クラスタ セットアップで利用可能なテナントを一覧表示する
documentation埋め込まれたVictoriaMetricsドキュメントを検索
metric_relabel_debugPrometheus互換の再ラベル付けルールをデバッグする
downsampling_filters_debugダウンサンプリング構成のデバッグ
retention_filters_debug保持フィルタの設定をデバッグする

プロンプト

サーバーには、一般的なタスク用の事前定義されたプロンプトが含まれています。

これらは現時点では単なる例であり、プロンプト ライブラリは将来追加される予定です。

プロンプト説明
unused_metricsクエリが実行されないメトリクスを見つけて、それらの取り込みを停止するための再ラベル設定を作成します。
documentationVictoriaMetricsのドキュメントで特定のトピックを検索
rarely_used_metrics_with_high_cardinalityほとんどクエリされない高カーディナリティの指標を特定する

ダウンサンプリングはVictoriaMetricsのエンタープライズ機能です。ライセンスファイルの設定を確認したところ、現在のライセンスではダウンサンプリングをご利用いただけます。

ダイアログの例

これは、MCP サーバーを使用したアシスタントとのダイアログの単なる例であり、それがどのように機能するかを理解する上で役立ちます (ただし、これは Victoria Metrics MCP サーバーを Claude Desktop と共に使用し、パブリック プレイグラウンド インスタンスに構成された実際のダイアログです)。

  • あなた: 私の VM ではどのようなテナントが利用できますか?

  • アシスタント VictoriaMetrics インスタンスでは、次のテナントが利用可能です0:0 (デフォルト テナント)、 1:0 10:0 100:0

  • あなた: 今後はデフォルトのテナントのみを使用してください

  • アシスタント了解しました。今後は、VictoriaMetricsインスタンスのすべての操作にデフォルトのテナント(0:0)のみを使用します。

  • あなた: どのような指標がありますか?

  • アシスタントVictoriaMetricsインスタンスでは、多くのメトリクスが利用可能です。リストには、以下のような様々なシステムやコンポーネントからのメトリクスが含まれています。

    • システムメトリック( node_machine_など)
    • Kubernetes メトリクス ( kube_container_apiserver_など)
    • VictoriaMetrics固有のメトリック( vm_vmagent_vmalert_など)
    • Goランタイムメトリクス( go_
    • Prometheus関連のメトリクス( scrape_promhttp_ )、
    • さまざまなアプリケーション メトリック ( argocd_alertmanager_ )。

    これは、クエリ可能な2,000以上の指標を網羅したリストです。さらに詳しく調べたい指標の種類はありますか?

  • あなた: では、これからKubernetesのメトリクスを使ってみましょう。これらのメトリクスのうち、クエリが実行されていないものはどれですか?

  • アシスタント:結果に基づいて、クエリされたことがない Kubernetes メトリックが 2 つあることがわかります (クエリ数は 0)。

    • kube_persistentvolumeclaim_deletion_timestamp - このメトリックは、PersistentVolumeClaims が削除対象としてマークされた時期に関する情報を提供します。
    • kube_pod_init_container_status_last_terminated_reason - このメトリックは、ポッド内の init コンテナが最後に終了した理由を示します。

    これらのメトリックは、監視やトラブルシューティングに役立つ可能性があります。

    • PVC 削除タイムスタンプ メトリックは、削除パターンを追跡したり、スタックされた PVC を識別したりするのに役立ちます。
    • 初期化コンテナの終了理由メトリックは、初期化コンテナの一般的な障害パターンを識別するのに役立ちます。

    これらのメトリックが追跡する内容についてさらに詳しく説明したり、監視を開始するための便利なクエリを提案したりしますか?

  • あなた: はい、お願いします。また、これらのメトリクスの取り込みを停止するための再ラベル付けルールを作成していただけますか?

  • アシスタントこれらのクエリされていないメトリクスを収集から除外するための再ラベル設定を作成します。これにより、ストレージと処理のオーバーヘッドを削減できます。VictoriaMetricsのスクレイピング設定に追加できる再ラベル設定は次のとおりです。

    relabel_configs: - action: drop source_labels: [__name__] regex: kube_persistentvolumeclaim_deletion_timestamp|kube_pod_init_container_status_last_terminated_reason

    この構成では次のようになります。

    1. 各メトリックの名前( __name__ラベル)を確認します。
    2. 指定されたメトリックのいずれかに一致するかどうかを確認します
    3. 一致するメトリックを削除し、収集および保存されないようにします。

    VictoriaMetricsの設定ファイルに追加するか、PrometheusをVictoriaMetricsのスクレイパーとして使用している場合は、Prometheus設定内の関連するスクレイピングジョブ設定に追加してください。 この再ラベル設定を実装前にテストしたい場合は、メトリック再ラベルデバッグツールを使用して、メトリックにどのような影響があるかを確認できます。

  • あなた: はい、このラベル変更構成をリアルタイムシリーズでデバッグして、それが私のメトリクスにどのような影響を与えるかを確認してください。

  • アシスタント:完璧です! ラベル変更の設定は期待通りに動作しました:

    • 最初の 2 つのテスト ケースでは、 kube_persistentvolumeclaim_deletion_timestampkube_pod_init_container_status_last_terminated_reason両方のメトリックが正しくドロップされていることがわかります (結果のラベルは空の{}になります)。
    • 3 番目のテスト ケースでは、 kube_pod_status_phaseなどの他のメトリックが保持され、ドロップ ルールの影響を受けないことを確認します。

    VictoriaMetricsまたはPrometheusの設定にこの再ラベル設定を追加することで、これらの未使用のメトリクスの収集を停止できます。これにより、現在の監視機能に影響を与えることなく、ストレージ容量を節約し、処理オーバーヘッドを削減できます。

  • あなた: しかし、私は VictoriaMetrics オペレーターの vmagent リソースを使用しているので、この再ラベル構成を使用したエージェントの仕様の一部を教えていただけますか?

  • アシスタント:おっしゃる通りです。VictoriaMetrics Operator と VMAgent カスタムリソースをご利用なので、設定は CR に適した形式である必要があります。VMAgent 仕様に relabel 設定を追加する手順は以下のとおりです。

    apiVersion: operator.victoriametrics.com/v1beta1 kind: VMAgent metadata: name: your-vmagent-name spec: # ... your existing configuration ... # Add this section to configure global metric relabeling inlineRelabelConfig: - action: drop sourceLabels: ["__name__"] regex: kube_persistentvolumeclaim_deletion_timestamp|kube_pod_init_container_status_last_terminated_reason # ... rest of your configuration ...

    要点:

    • VMAgent仕様では、インライン再ラベル付けルールにinlineRelabelConfigを使用します。
    • このフィールドはsourceLabelsと呼ばれます(Prometheus設定のsource_labelsではありません)。
    • これは、保存される前にすべての指標に適用されるグローバルな再ラベル付けです。
  • あなた: これらのメトリックは削除せず、ダウンサンプリングを使ってサンプルレートを下げることにしました。ダウンサンプリングのパラメータは今どうなっていますか?

  • アシスタント:現在、ダウンサンプリング構成は次のようになっています。

    -downsampling.period="7d:1m,30d:5m,180d:30m"

    これはつまり:

    • 7日以上経過したデータは元の解像度で保存されます
    • 7~30日前のデータは1分単位の解像度にダウンサンプリングされます
    • 30~180日前のデータは5分単位の解像度にダウンサンプリングされます
    • 180日以上前のデータは30分単位にダウンサンプリングされます

    クエリ頻度の低い指標に特定のダウンサンプリングルールを追加したい場合は、ダウンサンプリングフィルターのデバッグツールを使用して、新しいルールの動作をテストできます。これらの特定の指標に、より積極的なダウンサンプリングを適用する設定をテストしてみましょう。

    ...シリーズを取得し、ダウンサンプリング フィルター デバッガーを使用しています...

    素晴らしい!これでテストは正常に動作しています。現在の設定とテスト結果に基づき、VMAgent CR の推奨ダウンサンプリング設定を以下に示します。この設定では、クエリ頻度の低いメトリクスに対して、より積極的なダウンサンプリングが適用されます。

    apiVersion: operator.victoriametrics.com/v1beta1 kind: VMCluster metadata: name: monitoring-vm-cluster spec: # ... your existing configuration ... # Update the vmstorage section with the new downsampling parameters vmstorage: extraArgs: downsampling.period: - "{__name__=\"kube_persistentvolumeclaim_deletion_timestamp\"}:1d:10m" - "{__name__=\"kube_pod_init_container_status_last_terminated_reason\"}:1d:10m" - "7d:1m" - "30d:5m" - "180d:30m" # ... rest of your configuration ...

    この構成:

    - わずか 1 日後に、ほとんどクエリされないメトリクスに対して 10 分解像度のダウンサンプリングを適用します - 他のすべてのメトリクスに対しては、既存のダウンサンプリング ポリシーを維持します

    ダウンサンプリング ルールの順序は重要です。より具体的なルールを最初にリストする必要があります。

このダイアログ中、アシスタントは次のツールを使用していました。

  • 利用可能なテナントのリストを取得するには、 tenants使用します。
  • 機能とデータ形式に関する情報を取得するためのdocumentation
  • 利用可能なメトリックのリストを取得するためのmetrics
  • メトリクスの使用状況に関する情報を取得するためのmetrics_staistics
  • デバッグ用の時系列を取得するためのseries
  • 再ラベル付けルールをデバッグするためのmetric_relabel_debug
  • インスタンスパラメータに関する情報を取得するためのflags
  • ダウンサンプリング設定をデバッグするためのdownsampling_filters_debug

ただし、他のツールを使用して、独自の方法で組み合わせることもできます。

免責事項

AIサービスやエージェント、そしてこのようなMCPサーバーは、結果の正確性、完全性、信頼性を保証するものではありません。AIで得られた結果は、ご自身で再確認する必要があります。MCPサーバーとその応答の品質は、クライアントの能力と使用するモデルの品質に大きく依存します。

貢献

MCP VictoriaMetrics プロジェクトへの貢献を歓迎します。問題、機能リクエスト、プルリクエストなど、お気軽にご提出ください。

Related MCP Servers

View all related MCP servers

ID: 4ogwgtlwc2