项目简介
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进行更准确的交互。
安装步骤
-
前提条件: 确保您的系统已安装 Node.js (版本18或更高) 和 npm。
-
方法一:使用npx (推荐): 无需全局安装,直接运行服务器。在终端中执行以下命令,其中 'your_token' 替换为您的InfluxDB API令牌。
INFLUXDB_TOKEN=your_token npx influxdb-mcp-server -
方法二:全局安装npm包: 首先安装:
npm install -g influxdb-mcp-server然后运行:
INFLUXDB_TOKEN=your_token influxdb-mcp-server -
方法三:从源代码安装:
- 克隆仓库:
git clone https://github.com/idoru/influxdb-mcp-server.git cd influxdb-mcp-server - 安装依赖:
npm install - 运行服务器:
INFLUXDB_TOKEN=your_token npm start
- 克隆仓库:
-
选择传输协议:
- 默认使用 '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'”。
信息
分类
数据库与文件