项目简介

VictoriaMetrics MCP 服务器是一个基于 Model Context Protocol (MCP) 的后端服务,旨在将 VictoriaMetrics 监控系统的能力以标准化的方式暴露给大型语言模型 (LLM) 客户端。它允许 LLM 直接访问 VictoriaMetrics 的数据和功能,从而实现智能化的监控数据查询、分析、告警规则管理和文档检索等任务。

主要功能点

  • 指标查询与探索: 执行 PromQL/MetricsQL 查询,获取实时和历史指标数据。
  • 元数据管理: 列出可用的指标、标签名称、标签值以及时间序列。
  • 规则与告警: 查看告警和记录规则,以及当前正在触发或待处理的告警。
  • 实例信息: 获取 VictoriaMetrics 实例的非默认配置参数。
  • 数据分析: 分析数据基数、指标使用统计,并识别很少查询的高基数指标。
  • 查询调试: 美化、解释 PromQL/MetricsQL 查询,并进行规则单元测试。
  • 配置调试: 调试重标签规则、降采样和保留策略配置。
  • 文档检索: 内嵌 VictoriaMetrics 官方文档,支持离线搜索,提供上下文信息。
  • VictoriaMetrics Cloud 集成: 支持列出部署、云提供商、区域、层级、访问令牌和规则文件等。

安装步骤

以下是几种安装和运行 VictoriaMetrics MCP 服务器的方法:

  1. 使用Go安装 (需要Go 1.24或更高版本): 打开终端并运行以下命令:

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

    这会将服务器二进制文件安装到您的Go二进制路径中(通常是 '$GOPATH/bin')。

  2. 下载预编译二进制文件: 访问项目的 GitHub Releases 页面,下载适合您操作系统和架构的最新版本二进制文件。下载后,将二进制文件解压并将其路径添加到您的系统 PATH 环境变量中,或直接从其存放位置运行。

  3. 使用Docker运行: 您可以使用Docker轻松运行 VictoriaMetrics MCP 服务器。打开终端并运行以下命令(请根据您的 VictoriaMetrics 实例信息替换环境变量):

    docker run -d --name mcp-victoriametrics \
      -e VM_INSTANCE_ENTRYPOINT=https://play.victoriametrics.com \
      -e VM_INSTANCE_TYPE=cluster \
      -e MCP_SERVER_MODE=sse \
      -e MCP_LISTEN_ADDR=:8080 \
      -p 8080:8080 \
      ghcr.io/victoriametrics-community/mcp-victoriametrics
    • 'VM_INSTANCE_ENTRYPOINT': 您的 VictoriaMetrics 实例的 URL。
    • 'VM_INSTANCE_TYPE': VictoriaMetrics 实例的类型 ('single' 或 'cluster')。
    • 'MCP_SERVER_MODE': 服务器运行模式,'sse' 模式会在 '8080' 端口监听。
    • '-p 8080:8080': 将容器的 8080 端口映射到主机的 8080 端口。

MCP客户端配置示例

MCP客户端(如Cursor, Claude Desktop, VS Code等)通常需要您在其设置中添加一个新的MCP服务器。您需要提供以下信息:

  • 服务器名称 (Server Name): 'victoriametrics' (这是在客户端中标识此MCP服务器的名称,可以根据偏好设置,但建议使用此名称以便识别)。
  • 命令 (Command): 用于启动 VictoriaMetrics MCP 服务器可执行文件的完整路径。例如,如果您通过 'go install' 安装,路径可能是 '/home/user/go/bin/mcp-victoriametrics';如果您下载了二进制文件,则是您存放二进制文件的路径。如果您选择通过 Docker 运行,命令将是 'docker'。
  • 命令参数 (Args): 如果使用 Docker 运行,您需要在此处指定 'docker run' 的所有参数,例如 '["run", "-i", "--rm", "-e", "VM_INSTANCE_ENTRYPOINT", "-e", "VM_INSTANCE_TYPE", "ghcr.io/victoriametrics-community/mcp-victoriametrics"]'。对于直接运行二进制文件,通常不需要额外参数,因为大部分配置通过环境变量完成。
  • 环境变量 (Environment Variables - Env): 这是配置 MCP 服务器与 VictoriaMetrics 实例连接以及其他行为的关键信息。根据您的需求,您需要在客户端配置界面中添加以下环境变量:
    • 'VM_INSTANCE_ENTRYPOINT': 您的 VictoriaMetrics 实例的 URL,例如 'http://localhost:8428'(单节点)或 'https://play.victoriametrics.com'(集群)。这是连接 VictoriaMetrics 实例的两种方式之一,与 'VMC_API_KEY' 二选一。
    • 'VM_INSTANCE_TYPE': 您的 VictoriaMetrics 实例的类型,必须是 'single' 或 'cluster'。与 'VMC_API_KEY' 二选一。
    • 'VM_INSTANCE_BEARER_TOKEN': 可选,如果您的 VictoriaMetrics API 需要 Bearer Token 进行身份验证,请在此处提供。
    • 'VMC_API_KEY': 可选,如果您要连接到 VictoriaMetrics Cloud,请提供您的 API 密钥。这是连接 VictoriaMetrics 实例的另一种方式,与 'VM_INSTANCE_ENTRYPOINT' 和 'VM_INSTANCE_TYPE' 二选一。
    • 'MCP_SERVER_MODE': 服务器运行模式,可以是 'stdio' (标准输入/输出,默认且适用于大多数本地客户端集成), 'sse' (Server-Sent Events) 或 'http' (流式HTTP)。客户端通常会自动管理此模式,除非您需要独立部署为 HTTP/SSE 服务。
    • 'MCP_LISTEN_ADDR': 在 'sse' 或 'http' 模式下,服务器将监听的地址,例如 '0.0.0.0:8080'。在 'stdio' 模式下通常不需要设置。
    • 'MCP_DISABLED_TOOLS': 可选,一个逗号分隔的列表,包含您希望禁用的工具名称,例如 'export,metric_statistics,test_rules'。
    • 'MCP_DISABLE_RESOURCES': 可选,设置为 'true' 可禁用所有资源,但文档工具仍将工作。默认为 'false'。
    • 'VM_INSTANCE_HEADERS': 可选,自定义 HTTP 头,以逗号分隔的 'key=value' 形式提供,例如 'Header1=Value1,Header2=Value2'。这在 VictoriaMetrics 实例位于反向代理后方时可能有用。

基本使用方法

  1. 启动MCP服务器: 按照上述安装和配置说明,确保您的 VictoriaMetrics MCP 服务器正在运行,并且您的 MCP 客户端已正确配置其启动命令和参数。
  2. 在MCP客户端中启用: 大多数 MCP 客户端会在配置后自动检测并激活服务器。您可能需要通过在对话中提及 "VictoriaMetrics" 或 "MCP VictoriaMetrics" 来明确指示AI助手使用该服务器。
  3. 开始提问: 您可以直接向AI助手提问关于您的 VictoriaMetrics 监控数据的问题,例如:
    • "我的VM中有哪些租户?"
    • "显示从未被查询的 Kubernetes 指标。"
    • "给我一个查询,显示过去一小时内CPU使用率最高的Pod。"
    • "解释一下PromQL中的 'rate()' 函数。"
    • "如何配置 VMAgent 来降采样 'kube_persistentvolumeclaim_deletion_timestamp' 指标?" AI助手将自动调用 VictoriaMetrics MCP 服务器提供的工具和文档来生成响应。

信息

分类

开发者工具