项目简介

InfluxDB MCP Server是一个基于Model Context Protocol (MCP) 构建的后端服务,旨在让大语言模型(LLM)能够与InlfuxDB时序数据库进行无缝交互。它将InlfuxDB的各项功能(如组织、存储桶管理、数据查询和写入)封装成LLM可理解的资源、工具和Prompt模板,从而扩展LLM在时序数据分析和管理方面的能力。

主要功能点

  • 数据资源访问: 允许LLM访问InlfuxDB中的组织列表 ('influxdb://orgs')、存储桶列表 ('influxdb://buckets') 以及特定存储桶中的测量数据(measurements,'influxdb://bucket/{bucketName}/measurements')。LLM可以通过统一资源标识符(URI)来读取这些数据。
  • 数据与数据库操作工具: LLM可以调用服务器提供的工具来执行数据写入 ('write-data')(支持行协议格式)、复杂的Flux查询 ('query-data')、创建新的存储桶 ('create-bucket') 和创建新的组织 ('create-org') 等操作。
  • Flux查询与行协议Prompt模板: 服务器提供预设的Prompt模板,帮助LLM理解和生成InfluxDB的Flux查询语言示例 ('flux-query-examples') 以及行协议(Line Protocol)数据格式指南 ('line-protocol-guide'),方便LLM进行更准确的交互。

安装步骤

  1. 前提条件: 确保您的系统已安装 Node.js (版本18或更高) 和 npm。

  2. 方法一:使用npx (推荐): 无需全局安装,直接运行服务器。在终端中执行以下命令,其中 'your_token' 替换为您的InfluxDB API令牌。

    INFLUXDB_TOKEN=your_token npx influxdb-mcp-server
  3. 方法二:全局安装npm包: 首先安装:

    npm install -g influxdb-mcp-server

    然后运行:

    INFLUXDB_TOKEN=your_token influxdb-mcp-server
  4. 方法三:从源代码安装

    • 克隆仓库:
      git clone https://github.com/idoru/influxdb-mcp-server.git
      cd influxdb-mcp-server
    • 安装依赖:
      npm install
    • 运行服务器:
      INFLUXDB_TOKEN=your_token npm start
  5. 选择传输协议:

    • 默认使用 'stdio' 传输。
    • 要使用 'Streamable HTTP' 传输,可以指定 '--http' 选项,端口默认为 3000。
      # 默认端口 3000
      INFLUXDB_TOKEN=your_token npm start -- --http
      # 或指定端口 8080
      INFLUXDB_TOKEN=your_token npm start -- --http 8080

服务器配置 (供MCP客户端连接)

MCP客户端需要以下配置信息来连接InfluxDB MCP Server。以下是一个JSON格式的配置示例,您需要根据实际环境替换占位符。

{
  "mcpServers": {
    "influxdb": {
      "command": "npx",
      "args": ["influxdb-mcp-server"],
      "env": {
        "INFLUXDB_TOKEN": "您的InfluxDB API令牌 (必需)",
        "INFLUXDB_URL": "您的InfluxDB实例URL (可选,默认为 http://localhost:8086)",
        "INFLUXDB_ORG": "默认组织名称 (可选)"
      }
    }
  }
}

说明:

  • 'command': 启动MCP服务器的命令。推荐使用 'npx',因为它无需预先全局安装。
  • 'args': 传递给命令的参数列表。默认情况下,MCP服务器将使用 'stdio' 模式运行。如果您希望使用 HTTP 模式,例如在端口 8080 运行,可以将 'args' 修改为 '["influxdb-mcp-server", "--http", "8080"]'。
  • 'env': 环境变量,用于配置InfluxDB连接信息。
    • 'INFLUXDB_TOKEN': 必需。您的InfluxDB API认证令牌。
    • 'INFLUXDB_URL': 可选。您的InfluxDB实例的URL。如果未提供,默认为 'http://localhost:8086'。
    • 'INFLUXDB_ORG': 可选。进行某些操作时的默认InfluxDB组织名称。

基本使用方法

一旦MCP服务器成功运行并通过MCP客户端(如Claude Desktop)连接,LLM就可以通过自然语言请求来与InfluxDB互动。

  • 获取组织列表: LLM可以询问“列出InfluxDB中的所有组织”。
  • 查询存储桶: LLM可以询问“显示所有存储桶及其元数据”。
  • 写入数据: LLM可以生成Line Protocol格式的数据,并调用写入工具来将数据写入指定的存储桶。例如:“写入CPU使用率数据到 'my-bucket',内容为 'cpu_usage,host=server01 cpu=70.5'”。
  • 执行Flux查询: LLM可以提供Flux查询语句,调用查询工具来获取数据。例如:“执行Flux查询 'from(bucket: "my-bucket") |> range(start: -1h)'”。
  • 创建存储桶: LLM可以请求“创建一个名为 'new-project-data' 的存储桶,组织ID为 'your_org_id'”。

信息

分类

数据库与文件