这是一个模型上下文协议(MCP)服务器,通过JWT认证提供对InfluxDB 1.8的安全只读访问。
InfluxDB MCP 服务器允许AI助手通过标准化接口查询存储在InfluxDB中的时间序列数据。它通过JWT令牌进行身份验证,提供对您的InfluxDB实例的只读访问。
克隆仓库:
git clone https://github.com/m4tyn0/influx_mcp
cd influxdb-mcp-server
创建一个.env文件并配置:
cp env.example .env
INFLUXDB_HOST=
INFLUXDB_PORT=8086
INFLUXDB_USERNAME=
INFLUXDB_PASSWORD=
INFLUXDB_SSL=false
INFLUXDB_VERIFY_SSL=true
INFLUXDB_TIMEOUT=1
JWT_SECRET=
JWT_ALGORITHM=HS256
构建并运行Docker容器:
docker build -t influxdb-mcp-server .
docker run -d --env-file .env -p 8000:8000 influxdb-mcp-server
服务器使用JWT令牌进行认证。您需要生成一个令牌来与MCP服务器进行身份验证,这里有一个简单的脚本可以完成这个任务:
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)
保存此令牌以供您的MCP客户端使用。
使用JWT令牌与MCP服务器进行身份验证:
工具: auth
参数: {"token": "your.jwt.token.here"}
查询您的InfluxDB数据:
工具: list_databases
参数: {}
工具: list_measurements
参数: {"database": "your_database_name"}
工具: query
参数: {
"database": "your_database_name",
"query": "SELECT * FROM measurement_name LIMIT 10"
}
如果您遇到问题:
连接到InfluxDB的错误:
认证问题:
检查日志:
docker logs