InfluxDB MCP 服务器
模型上下文协议 (MCP) 服务器通过 JWT 身份验证提供对 InfluxDB 1.8 的安全只读访问。
概述
InfluxDB MCP 服务器允许 AI 助手通过标准化接口查询存储在 InfluxDB 中的时间序列数据。它通过 JWT 令牌进行身份验证,提供对 InfluxDB 实例的只读访问权限。
Related MCP server: MongoDB MCP Server
先决条件
Docker
InfluxDB 1.8 实例(已运行)
您的 InfluxDB 实例的凭证
安装
克隆存储库:
git clone https://github.com/m4tyn0/influx_mcp cd influxdb-mcp-server使用您的配置创建一个
.env文件:cp env.example .envINFLUXDB_HOST= INFLUXDB_PORT=8086 INFLUXDB_USERNAME= INFLUXDB_PASSWORD= INFLUXDB_SSL=false INFLUXDB_VERIFY_SSL=true INFLUXDB_TIMEOUT=10 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 身份验证
服务器使用 JWT 令牌进行身份验证。您需要生成一个令牌来与 MCP 服务器进行身份验证,以下是一个简单的脚本:
import jwt
import datetime
# Create a token
payload = {
"sub": "username", # Replace with the username you want to identify with
"iat": datetime.datetime.utcnow(),
"exp": datetime.datetime.utcnow() + datetime.timedelta(hours=1)
}
token = jwt.encode(payload, "your-jwt-secret", algorithm="HS256")
print(token)保存此令牌以供您的 MCP 客户端使用。
与 MCP 客户端一起使用
使用 JWT 令牌向 MCP 服务器进行身份验证:
Tool: auth Arguments: {"token": "your.jwt.token.here"}查询您的 InfluxDB 数据:
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" }
故障排除
如果您遇到问题:
与 InfluxDB 的连接错误:
验证 INFLUXDB_HOST 是否正确并且可以从 Docker 容器访问
检查您的 InfluxDB 凭据是否正确
确保您的 InfluxDB 实例配置为接受来自外部主机的连接
身份验证问题:
验证您的 JWT_SECRET 设置是否正确
确保您使用的令牌与 JWT_SECRET 匹配并且未过期
检查您的 InfluxDB 凭据是否具有对数据库的读取权限
检查日志:
docker logs
安全说明
MCP 服务器仅允许对 InfluxDB 实例进行只读访问
所有查询都经过验证,以确保它们以 SELECT 开头
JWT 身份验证保护对 MCP 服务器的访问
考虑在专用网络中运行服务器以获得额外的安全性
感谢您与我合作。如果您对代码有任何疑问,或者想要构建更多功能,请联系我: m4tyn0@gmail.com
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.