日志查询服务器

VictoriaLogs MCP Server 是一个专为 VictoriaLogs 设计的模型上下文协议服务器,提供日志查询、数据探索和文档搜索功能,适用于日志分析和调试任务。

  • by VictoriaMetrics
  • Go
  • 本地部署
  • 107 星标
  • 更新于
在 GitHub 查看 VictoriaMetrics-Community/mcp-victorialogs

使用说明

VictoriaLogs MCP服务器

实施 模型上下文协议(MCP) 服务器 维多利亚原木.

这提供了对您的VictoriaLogs实例的访问,并与 VictoriaLogs原料药 和 文档. 它可以为您提供一个全面的界面,用于与VictoriaLogs实例相关的日志、可观察性和调试任务,为工程师和工具提供高级自动化和交互功能。

特性

此MCP服务器允许您使用VictoriaLogs的几乎所有只读API,即 Web用户界面:

  • 查询日志和探索日志数据
  • 显示您的VictoriaLogs实例的参数
  • 列出可用流、字段、字段值
  • 将日志的统计信息作为指标进行查询
  • 在根端点上具有设置说明和工具检查的UI(仅在Streamable HTTP模式下)

此外,MCP服务器包含嵌入式最新文档,无需在线访问即可搜索。

有关确切可用工具和提示的更多详细信息,请参阅 用法 部分。

您可以结合工具的功能,在提示中搜索文档,并为您的VictoriaLogs实例创造出色的使用场景。 请注意,MCP服务器及其响应的质量在很大程度上取决于您的客户端的功能和您使用的模型的质量。

您还可以将MCP服务器与其他可观察性或文档搜索相关的MCP服务器相结合,从而获得更强大的结果。

尝试不安装

有一个公开可用的VictoriaMetrics MCP服务器实例,您可以在不安装的情况下使用它来测试功能:

https://play-vmlogs-mcp.victoriametrics.com/mcp

注意! 此URL不应该在浏览器中打开,它旨在在MCP客户端中使用。

它可以在 流式HTTP模式 模式并配置为与一起工作 公共维多利亚原木游乐场.

以下是配置示例 克劳德桌面版:

需求

安装

去

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

二进制文件

只需从以下网址下载最新版本 发布 页面并将其放入PATH。

Linux x86_64示例(请注意,其他架构和平台也可用):

latest=$(curl -s https://api.github.com/repos/VictoriaMetrics/mcp-victorialogs/releases/latest | grep 'tag_name' | cut -d\" -f4)
wget https://github.com/VictoriaMetrics/mcp-victorialogs/releases/download/$latest/mcp-victorialogs_Linux_x86_64.tar.gz
tar axvf mcp-victorialogs_Linux_x86_64.tar.gz

码头工人

您可以使用Docker运行VictoriaLogs MCP服务器。

这是最简单的入门方法,无需安装Go或从源代码构建。

docker run -d --name mcp-victorialogs \
  -e VL_INSTANCE_ENTRYPOINT=https://play-vmlogs.victoriametrics.com \
  -e MCP_SERVER_MODE=http \
  -e MCP_LISTEN_ADDR=:8081 \
  -p 8081:8081 \
  ghcr.io/victoriametrics/mcp-victorialogs

您应该用自己的参数替换环境变量。

请注意 MCP_SERVER_MODE=http 标志用于启用Streamable HTTP模式。 有关服务器模式的更多详细信息,请参阅 配置 部分。

查看可用的docker镜像 github注册表.

另请参阅 使用Docker而不是二进制 有关在客户端处于stdio模式时将Docker与MCP服务器一起使用的更多详细信息,请参阅第节。

源代码

对于从源代码构建二进制文件,您可以使用以下方法:

  • 克隆仓库:

    git clone https://github.com/VictoriaMetrics/mcp-victorialogs.git
    cd mcp-victorialogs
    
  • 从克隆的源代码构建二进制文件:

    make build
    # after that you can find binary mcp-victorialogs and copy this file to your PATH or run inplace
    
  • 从克隆的源代码构建映像:

    docker build -t mcp-victorialogs .
    # after that you can use docker image mcp-victorialogs for running or pushing
    

舵

结账 VictoriaLogs MCP服务器Helm图 有关使用Helm安装的更多详细信息的文档。

配置

VictoriaLogs的MCP服务器是通过环境变量配置的:

变量 描述 必填 默认 允许值
VL_INSTANCE_ENTRYPOINT VictoriaLogs实例的URL 是 - -
VL_INSTANCE_BEARER_TOKEN VictoriaLogs API的身份验证令牌 否 - -
VL_INSTANCE_HEADERS 与请求一起发送的自定义HTTP标头(逗号分隔的键=值对) 否 - -
MCP_PASSTHROUGH_HEADERS 从传入的MCP请求转发到VictoriaLogs的HTTP标头名称(逗号分隔列表)。覆盖 VL_INSTANCE_HEADERS 碰撞。仅适用于 sse/http 模式。 否 - -
VL_DEFAULT_TENANT_ID 在请求中未指定租户时使用的默认租户ID(格式: AccountID:ProjectID 或 AccountID) 没有 0:0 -
MCP_SERVER_MODE 服务器操作模式。看 模式 了解详情。 没有 stdio stdio, sse, http
MCP_LISTEN_ADDR 要侦听的SSE或HTTP服务器的地址 否 localhost:8081 -
MCP_DISABLED_TOOLS 以逗号分隔的禁用工具列表 否 - -
MCP_HEARTBEAT_INTERVAL 定义可流式传输http协议的心跳间隔。
这意味着MCP服务器将通过GET连接向客户端发送心跳,
以防止连接被网络基础设施(如网关)关闭
否 30s -
MCP_LOG_FORMAT 日志输出格式 否 text text, json
MCP_LOG_LEVEL 最低日志级别 否 info debug, info, warn, error

模式

MCP服务器支持以下操作模式(传输):

  • stdio -标准输入/输出模式,服务器从标准输入读取命令并将响应写入标准输出。这是默认模式,适用于本地服务器。
  • sse -服务器发送事件。服务器将公开 /sse 和 /message SSE连接的端点。
  • http -流式HTTP。服务器将公开 /mcp HTTP连接的端点。

有关传输的更多信息,请参阅MCP文档:

配置示例

# For a public playground
export VL_INSTANCE_ENTRYPOINT="https://play-vmlogs.victoriametrics.com"

# Custom headers for authentication (e.g., behind a reverse proxy)
# Expected syntax is key=value separated by commas
export VL_INSTANCE_HEADERS="<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"

# Forward specific headers from incoming MCP requests to VictoriaLogs
export MCP_PASSTHROUGH_HEADERS="X-Token,X-Access-Key"

# Server mode
export MCP_SERVER_MODE="sse"
export MCP_SSE_ADDR="0.0.0.0:8081"
export MCP_DISABLED_TOOLS="hits,facets"

端点

在SSE和HTTP模式下,MCP服务器提供以下端点:

端点 描述
/ 带有设置帮助和工具检查的登录页面(仅限HTTP模式)
/sse + /message SSE模式下消息的端点(适用于支持SSE的MCP客户端)
/mcp HTTP模式下流式消息的HTTP端点(适用于支持流式HTTP的MCP客户端)
/metrics 用于监控MCP服务器的Prometheus格式的度量
/health/liveness 实时性检查端点,以确保服务器正在运行
/health/readiness 就绪检查端点,以确保服务器已准备好接受请求

在客户端中设置

光标

首选 Settings -> Cursor Settings -> MCP -> Add new global MCP server 并将以下配置粘贴到游标中 ~/.cursor/mcp.json 文件:

{
  "mcpServers": {
    "victorialogs": {
      "command": "/path/to/mcp-victorialogs",
      "env": {
        "VL_INSTANCE_ENTRYPOINT": "<YOUR_VL_INSTANCE>",
        "VL_INSTANCE_BEARER_TOKEN": "<YOUR_VL_BEARER_TOKEN>",
        "VL_INSTANCE_HEADERS": "<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
      }
    }
  }
}

看 光标MCP文档 了解更多信息。

克劳德桌面版

将此添加到您的Claude桌面 claude_desktop_config.json 文件(打开后可以找到它 Settings -> Developer -> Edit config):

{
  "mcpServers": {
    "victorialogs": {
      "command": "/path/to/mcp-victorialogs",
      "env": {
        "VL_INSTANCE_ENTRYPOINT": "<YOUR_VL_INSTANCE>",
        "VL_INSTANCE_BEARER_TOKEN": "<YOUR_VL_BEARER_TOKEN>",
        "VL_INSTANCE_HEADERS": "<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
      }
    }
  }
}

看 克劳德桌面MCP文档 了解更多信息。

克劳德代码

运行命令:

claude mcp add victorialogs -- /path/to/mcp-victorialogs \
  -e VL_INSTANCE_ENTRYPOINT=<YOUR_VL_INSTANCE> \
  -e VL_INSTANCE_BEARER_TOKEN=<YOUR_VL_BEARER_TOKEN> \
  -e VL_INSTANCE_HEADERS="<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"

看 克劳德代码MCP文档 了解更多信息。

法典

Codex CLI和IDE扩展使用相同的MCP配置文件: ~/.codex/config.toml (或 .codex/config.toml 在一个值得信赖的项目中)。

运行命令:

codex mcp add victorialogs \
  --env VL_INSTANCE_ENTRYPOINT=<YOUR_VL_INSTANCE> \
  --env VL_INSTANCE_BEARER_TOKEN=<YOUR_VL_BEARER_TOKEN> \
  --env VL_INSTANCE_HEADERS="<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>" \
  -- /path/to/mcp-victorialogs

或者将以下内容添加到您的Codex中 ~/.codex/config.toml 文件:

[mcp_servers.victorialogs]
command = "/path/to/mcp-victorialogs"

[mcp_servers.victorialogs.env]
VL_INSTANCE_ENTRYPOINT = "<YOUR_VL_INSTANCE>"
VL_INSTANCE_BEARER_TOKEN = "<YOUR_VL_BEARER_TOKEN>"
VL_INSTANCE_HEADERS = "<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"

如果您在Streamable HTTP模式下运行服务器,则可以向以下地址注册:

codex mcp add victorialogs --url http://localhost:8081/mcp

看 食品法典委员会MCP文件 了解更多信息。

Visual Studio Code

将此添加到您的VS Code MCP配置文件中:

{
  "servers": {
    "victorialogs": {
      "type": "stdio",
      "command": "/path/to/mcp-victorialogs",
      "env": {
        "VL_INSTANCE_ENTRYPOINT": "<YOUR_VL_INSTANCE>",
        "VL_INSTANCE_BEARER_TOKEN": "<YOUR_VL_BEARER_TOKEN>",
        "VL_INSTANCE_HEADERS": "<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
      }
    }
  }
}

看 VS代码MCP文档 了解更多信息。

泽德

将以下内容添加到Zed配置文件中:

  "context_servers": {
    "victorialogs": {
      "command": {
        "path": "/path/to/mcp-victorialogs",
        "args": [],
        "env": {
                  "VL_INSTANCE_ENTRYPOINT": "<YOUR_VL_INSTANCE>",
        "VL_INSTANCE_BEARER_TOKEN": "<YOUR_VL_BEARER_TOKEN>",
        "VL_INSTANCE_HEADERS": "<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
      }
      },
      "settings": {}
    }
  }
}

看 Zed MCP文件 了解更多信息。

JetBrains 集成开发环境

  • 打开 Settings -> Tools -> AI Assistant -> Model Context Protocol (MCP).
  • 点击 Add (+)
  • 选择 As JSON
  • 在输入字段中输入以下内容:
{
  "mcpServers": {
    "victorialogs": {
      "command": "/path/to/mcp-victorialogs",
      "env": {
        "VL_INSTANCE_ENTRYPOINT": "<YOUR_VL_INSTANCE>",
        "VL_INSTANCE_BEARER_TOKEN": "<YOUR_VL_BEARER_TOKEN>",
        "VL_INSTANCE_HEADERS": "<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
      }
    }
  }
}

帆板运动

将以下内容添加到您的Windsurf MCP配置文件中。

{
  "mcpServers": {
    "victorialogs": {
      "command": "/path/to/mcp-victorialogs",
      "env": {
        "VL_INSTANCE_ENTRYPOINT": "<YOUR_VL_INSTANCE>",
        "VL_INSTANCE_BEARER_TOKEN": "<YOUR_VL_BEARER_TOKEN>",
        "VL_INSTANCE_HEADERS": "<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
      }
    }
  }
}

看 Windsurf MCP文件 了解更多信息。

使用Docker而不是二进制

您可以使用Docker而不是本地二进制文件运行VictoriaLogs MCP Server。

您应该按照以下方式替换上述配置示例中的run命令:

{
  "mcpServers": {
    "victorialogs": {
      "command": "docker",
        "args": [
          "run",
          "-i", "--rm",
          "-e", "VL_INSTANCE_ENTRYPOINT",
          "-e", "VL_INSTANCE_BEARER_TOKEN",
          "-e", "VL_INSTANCE_HEADERS",
          "ghcr.io/victoriametrics/mcp-victorialogs",
        ],
      "env": {
        "VL_INSTANCE_ENTRYPOINT": "<YOUR_VL_INSTANCE>",
        "VL_INSTANCE_BEARER_TOKEN": "<YOUR_VL_BEARER_TOKEN>",
        "VL_INSTANCE_HEADERS": "<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
      }
    }
  }
}

用法

之后 安装 和 配置 MCP服务器,您可以开始将其与您最喜欢的MCP客户端一起使用。

您可以从以下短语开始与AI助手对话:

Use MCP VictoriaLogs in the following answers

但这不是必需的,你可以开始提问,助手会自动使用工具和文档为你提供最佳答案。

工具集

MCP VictoriaLogs提供了许多与您的VictoriaLog实例交互的工具。

以下是可用工具的列表:

工具 说明
documentation 在嵌入的VictoriaLogs文档中搜索
facets 每个日志字段的最频繁值
field_names 查询的字段名称列表
field_values 查询的字段值列表
flags 查看VictoriaLogs实例的非默认标志
hits 按桶分组的匹配日志条目数
query 执行LogsQL查询
stats_query 查询给定时间的日志统计信息
stats_query_range 查询给定时间范围内的日志统计信息
stream_field_names 查询的流字段列表
stream_field_values 查询的流字段值列表
stream_ids 查询的流ID列表
streams 查询的流列表

提示

服务器包括常见任务的预定义提示。

这些只是目前的示例,提示库将在未来添加:

提示 描述
documentation 在VictoriaLogs文档中搜索特定主题

常见问题

为什么MCP服务器使用的资源比我从一个简单的API代理所期望的要多?

该服务器包含一个嵌入式矢量数据库,其中包含VictoriaMetrics文档和博客文章 documentation 工具。 它有助于回答有关VictoriaLogs的复杂问题,而无需向LLM提供所有数据。
这是资源使用的主要来源。要减少它,请添加 documentation 到 MCP_DISABLED_TOOLS 环境变量,以完全禁用矢量数据库加载。

如何将一个MCP服务器实例用于多个VictoriaMetrics实例?

你可以使用 MCP_PASSTHROUGH_HEADERS MCP服务器中的参数以及 vmauth中基于标头的路由 根据MCP客户端配置中的HTTP标头值在实例之间路由MCP调用。

路线图

  • []支持“解释查询”工具
  • []支持与的可选集成 维多利亚指标云
  • []除了当前的文档工具外,还可以为服务器添加一些额外的知识:
  • []实施MCP的多租户版本(将支持多种部署)
  • []添加标志/配置验证工具
  • [x] 通过配置启用/禁用工具

免责声明

人工智能服务和代理以及这样的MCP服务器无法保证结果的准确性、完整性和可靠性。 您应该仔细检查使用AI获得的结果。

MCP服务器及其响应的质量在很大程度上取决于您的客户端的功能和您使用的模型的质量。

贡献

欢迎为MCP VictoriaLogs项目捐款!

请随时提交问题、功能请求或拉取请求。