VictoriaMetrics MCP サーバー
VictoriaMetrics用のモデルコンテキストプロトコル (MCP)サーバーの実装。
これにより、VictoriaMetricsインスタンスへのアクセスと、 VictoriaMetrics APIおよびドキュメントとのシームレスな統合が可能になります。VictoriaMetricsインスタンスに関連する監視、可観測性、デバッグタスクのための包括的なインターフェースを提供し、エンジニアやツールのための高度な自動化とインタラクション機能を実現します。
特徴
この MCP サーバーを使用すると、VictoriaMetrics のほぼすべての読み取り専用 API、つまりVMUIで使用可能なすべての機能を使用できます。
メトリクスのクエリとデータの探索(クライアントがサポートしている場合はグラフの描画も可能)
利用可能なメトリック、ラベル、ラベル値、およびシリーズ全体の一覧表示とエクスポート
アラートと記録ルールとアラートの分析
VictoriaMetricsインスタンスのパラメータを表示しています
データのカーディナリティとメトリクスの使用統計を調べる
クエリの分析
再ラベル付けルール、ダウンサンプリング、保持ポリシー設定のデバッグ
さらに、MCP サーバーには最新のドキュメントが埋め込まれており、オンライン アクセスなしで検索できます。
使用可能なツールとプロンプトの詳細については、 「使用方法」セクションを参照してください。
ツールの機能やドキュメント検索機能をプロンプトに組み合わせることで、VictoriaMetricsインスタンスの優れた活用シナリオを構築できます。ダイアログサンプルのセクションで動作例をご確認ください。MCPサーバーとそのレスポンスの品質は、クライアントの能力と使用するモデルの品質に大きく依存することにご注意ください。
MCP サーバーを他の可観測性またはドキュメント検索関連の MCP サーバーと組み合わせて、さらに強力な結果を得ることもできます。
Related MCP server: Vectara MCP server
要件
VictoriaMetricsインスタンス (単一ノードまたはクラスター)
Go 1.24以上(ソースからビルドする場合)
インストール
行く
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 サーバーは、環境変数を介して構成されます。
変数 | 説明 | 必須 | デフォルト | 許容値 |
| VictoriaMetricsインスタンスへのURL | はい | - | - |
| VictoriaMetricsインスタンスの種類 | はい | - |
|
| VictoriaMetrics API の認証トークン | いいえ | - | - |
| サーバー動作モード | いいえ |
|
|
| SSEサーバがリッスンするアドレス | いいえ |
| - |
設定例
# 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 インスタンスと対話するためのさまざまなツールを提供します。
利用可能なツールのリストは次のとおりです。
道具 | 説明 |
| 即時PromQL/MetricsQLクエリを実行する |
| 一定期間にわたる範囲のPromQL/MetricsQLクエリを実行する |
| 利用可能な指標の一覧 |
| 利用可能なラベル名を一覧表示する |
| 特定のラベルの値を一覧表示する |
| 利用可能な時系列を一覧表示する |
| 生の時系列データをJSONまたはCSVにエクスポートする |
| アラートと記録ルールを表示する |
| 現在のアラート(発動中および保留中)を表示する |
| VictoriaMetricsインスタンスのデフォルト以外のフラグを表示する |
| メトリクスの使用状況(クエリ内)の統計情報を取得する |
| 現在実行中のクエリを表示する |
| 最も頻繁なクエリや最も遅いクエリを表示する |
| TSDB カーディナリティ統計を表示する |
| マルチテナント クラスタ セットアップで利用可能なテナントを一覧表示する |
| 埋め込まれたVictoriaMetricsドキュメントを検索 |
| Prometheus互換の再ラベル付けルールをデバッグする |
| ダウンサンプリング構成のデバッグ |
| 保持フィルタの設定をデバッグする |
プロンプト
サーバーには、一般的なタスク用の事前定義されたプロンプトが含まれています。
これらは現時点では単なる例であり、プロンプト ライブラリは将来追加される予定です。
プロンプト | 説明 |
| クエリが実行されないメトリクスを見つけて、それらの取り込みを停止するための再ラベル設定を作成します。 |
| VictoriaMetricsのドキュメントで特定のトピックを検索 |
| ほとんどクエリされない高カーディナリティの指標を特定する |
ダイアログの例
これは、MCP サーバーを使用したアシスタントとのダイアログの単なる例であり、それがどのように機能するかを理解する上で役立ちます (ただし、これは Victoria Metrics MCP サーバーを Claude Desktop と共に使用し、パブリック プレイグラウンド インスタンスに構成された実際のダイアログです)。
あなた: 私の VM ではどのようなテナントが利用できますか?
アシスタント VictoriaMetrics インスタンスでは、次のテナントが利用可能です
あなた: 今後はデフォルトのテナントのみを使用してください
アシスタント:了解しました。今後は、VictoriaMetricsインスタンスのすべての操作にデフォルトのテナント(0:0)のみを使用します。
あなた: どのような指標がありますか?
アシスタント: VictoriaMetricsインスタンスでは、多くのメトリクスが利用可能です。リストには、以下のような様々なシステムやコンポーネントからのメトリクスが含まれています。
システムメトリック(
Kubernetes メトリクス (
VictoriaMetrics固有のメトリック(
Goランタイムメトリクス(
Prometheus関連のメトリクス(
さまざまなアプリケーション メトリック (
これは、クエリ可能な2,000以上の指標を網羅したリストです。さらに詳しく調べたい指標の種類はありますか?
あなた: では、これからKubernetesのメトリクスを使ってみましょう。これらのメトリクスのうち、クエリが実行されていないものはどれですか?
アシスタント:結果に基づいて、クエリされたことがない Kubernetes メトリックが 2 つあることがわかります (クエリ数は 0)。
kube_persistentvolumeclaim_deletion_timestampkube_pod_init_container_status_last_terminated_reason
これらのメトリックは、監視やトラブルシューティングに役立つ可能性があります。
PVC 削除タイムスタンプ メトリックは、削除パターンを追跡したり、スタックされた PVC を識別したりするのに役立ちます。
初期化コンテナの終了理由メトリックは、初期化コンテナの一般的な障害パターンを識別するのに役立ちます。
これらのメトリックが追跡する内容についてさらに詳しく説明したり、監視を開始するための便利なクエリを提案したりしますか?
あなた: はい、お願いします。また、これらのメトリクスの取り込みを停止するための再ラベル付けルールを作成していただけますか?
アシスタント:これらのクエリされていないメトリクスを収集から除外するための再ラベル設定を作成します。これにより、ストレージと処理のオーバーヘッドを削減できます。VictoriaMetricsのスクレイピング設定に追加できる再ラベル設定は次のとおりです。
relabel_configs: - action: drop source_labels: [__name__] regex: kube_persistentvolumeclaim_deletion_timestamp|kube_pod_init_container_status_last_terminated_reasonこの構成では次のようになります。
各メトリックの名前(
指定されたメトリックのいずれかに一致するかどうかを確認します
一致するメトリックを削除し、収集および保存されないようにします。
VictoriaMetricsの設定ファイルに追加するか、PrometheusをVictoriaMetricsのスクレイパーとして使用している場合は、Prometheus設定内の関連するスクレイピングジョブ設定に追加してください。 この再ラベル設定を実装前にテストしたい場合は、メトリック再ラベルデバッグツールを使用して、メトリックにどのような影響があるかを確認できます。
あなた: はい、このラベル変更構成をリアルタイムシリーズでデバッグして、それが私のメトリクスにどのような影響を与えるかを確認してください。
アシスタント:完璧です! ラベル変更の設定は期待通りに動作しました:
最初の 2 つのテスト ケースでは、
3 番目のテスト ケースでは、
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仕様では、インライン再ラベル付けルールに
このフィールドは
これは、保存される前にすべての指標に適用されるグローバルな再ラベル付けです。
あなた: これらのメトリックは削除せず、ダウンサンプリングを使ってサンプルレートを下げることにしました。ダウンサンプリングのパラメータは今どうなっていますか?
アシスタント:現在、ダウンサンプリング構成は次のようになっています。
-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 プロジェクトへの貢献を歓迎します。問題、機能リクエスト、プルリクエストなど、お気軽にご提出ください。