InfluxDB MCP Server

InfluxDB MCP Server

site icon
2025.03.14 1
Python时间序列数据库数据查询数据库
InfluxDB MCP Server 是一个基于 Model Context Protocol (MCP) 的服务,提供通过 JWT 认证对 InfluxDB 1.8 的安全只读访问。它允许 AI 助手通过标准化接口查询存储在 InfluxDB 中的时间序列数据。
View on GitHub

Overview

基本能力

产品定位

InfluxDB MCP Server 是一个中间件服务,旨在为 AI 助手提供对 InfluxDB 时间序列数据库的安全、只读访问。

核心功能

  1. 提供对 InfluxDB 1.8 的只读访问
  2. 支持 JWT 认证
  3. 标准化查询接口
  4. 数据查询功能(列出数据库、列出测量值、执行查询)

适用场景

  1. AI 助手需要访问时间序列数据的场景
  2. 需要安全控制对 InfluxDB 访问的场景
  3. 需要标准化接口查询 InfluxDB 的场景

工具列表

  1. auth - 使用 JWT 令牌进行认证
  2. list_databases - 列出可用的数据库
  3. list_measurements - 列出指定数据库中的测量值
  4. query - 执行查询语句

常见问题解答

  1. 连接问题:检查 INFLUXDB_HOST 是否正确,确认 InfluxDB 凭证正确,确保 InfluxDB 配置允许外部连接
  2. 认证问题:验证 JWT_SECRET 设置正确,确认令牌未过期且与 JWT_SECRET 匹配,检查 InfluxDB 凭证是否有读取权限
  3. 日志检查:使用 docker logs 命令查看容器日志

使用教程

使用依赖

  1. Docker
  2. 运行中的 InfluxDB 1.8 实例
  3. InfluxDB 实例的凭证

安装教程

  1. 克隆仓库: bash git clone https://github.com/m4tyn0/influx_mcp cd influxdb-mcp-server
  2. 创建 .env 文件: bash cp env.example .env 并配置以下内容: INFLUXDB_HOST= INFLUXDB_PORT=8086 INFLUXDB_USERNAME= INFLUXDB_PASSWORD= INFLUXDB_SSL=false INFLUXDB_VERIFY_SSL=true INFLUXDB_TIMEOUT=10 JWT_SECRET= JWT_ALGORITHM=HS256
  3. 构建并运行 Docker 容器: bash docker build -t influxdb-mcp-server . docker run -d --env-file .env -p 8000:8000 influxdb-mcp-server

JWT 认证

使用 Python 生成 JWT 令牌:

import jwt
import datetime

payload = {
    "sub": "username",
    "iat": datetime.datetime.utcnow(),
    "exp": datetime.datetime.utcnow() + datetime.timedelta(hours=1)
}
token = jwt.encode(payload, "your-jwt-secret", algorithm="HS256")
print(token)

调试方式

  1. 认证: Tool: auth Arguments: {"token": "your.jwt.token.here"}
  2. 查询数据: Tool: list_databases Arguments: {} Tool: list_measurements Arguments: {"database": "your_database_name"} Tool: query Arguments: { "database": "your_database_name", "query": "SELECT * FROM measurement_name LIMIT 10" }
  3. 查看日志: bash docker logs <container_id>

许可证

None