@flinkhouse/server-influxdb
v0.1.1
Published
MCP server for InfluxDB access
Downloads
23
Readme
@modelcontextprotocol/server-influxdb
这是一个MCP服务器,为LLM提供InfluxDB 1.x访问能力。
特性
- 执行InfluxQL查询
- 写入数据点
- 管理数据库
- 管理保留策略
- 检查InfluxDB服务器健康状态
- 获取数据库架构信息
- 用户管理
安装
npm install @modelcontextprotocol/server-influxdb使用方法
启动服务器
mcp-server-influxdb <host:port> <username:password> [database]参数:
<host:port>: InfluxDB服务器地址(例如 localhost:8086)<username:password>: InfluxDB用户名和密码[database]: 可选的默认数据库名称
示例:
mcp-server-influxdb localhost:8086 admin:password my_database可用工具
mcp_influxdb_queryData
使用InfluxQL查询语言查询InfluxDB 1.x数据。
参数:
query(必需): InfluxQL查询语句database(可选): 数据库名称(如果查询中未指定)
mcp_influxdb_writePoint
向InfluxDB 1.x写入单个数据点。
参数:
database(必需): 数据库名称measurement(必需): 测量名称fields(必需): 字段键值对tags(可选): 标签键值对timestamp(可选): 时间戳(毫秒)
mcp_influxdb_writePoints
向InfluxDB 1.x批量写入多个数据点。
参数:
database(必需): 数据库名称points(必需): 数据点数组,每个点包含:measurement: 测量名称fields: 字段键值对tags(可选): 标签键值对timestamp(可选): 时间戳(毫秒)
mcp_influxdb_listDatabases
列出InfluxDB 1.x中的所有数据库。
参数:
name(可选): 根据名称筛选数据库
mcp_influxdb_createDatabase
在InfluxDB 1.x中创建新的数据库。
参数:
name(必需): 数据库名称retentionPolicy(可选): 保留策略设置name: 保留策略名称duration: 保留时间(例如 "7d", "4w", "1h30m")replication: 复制因子isDefault: 是否为默认保留策略
mcp_influxdb_deleteDatabase
删除InfluxDB 1.x中的数据库。
参数:
name(必需): 要删除的数据库名称
mcp_influxdb_checkHealth
检查InfluxDB 1.x服务器的健康状态。
mcp_influxdb_getDatabaseSchema
获取InfluxDB 1.x数据库的架构信息。
参数:
database(必需): 数据库名称
mcp_influxdb_listUsers
列出InfluxDB 1.x中的所有用户。
参数:
name(可选): 根据名称筛选用户
mcp_influxdb_listRetentionPolicies
列出InfluxDB 1.x数据库的所有保留策略。
参数:
database(必需): 数据库名称
mcp_influxdb_createRetentionPolicy
为InfluxDB 1.x数据库创建新的保留策略。
参数:
database(必需): 数据库名称name(必需): 保留策略名称duration(必需): 保留时间(例如 "7d", "4w", "1h30m")replication(可选): 复制因子,默认为1isDefault(可选): 是否为默认保留策略,默认为false
mcp_influxdb_alterRetentionPolicy
修改InfluxDB 1.x数据库的保留策略。
参数:
database(必需): 数据库名称name(必需): 保留策略名称duration(可选): 保留时间(例如 "7d", "4w", "1h30m")replication(可选): 复制因子isDefault(可选): 是否为默认保留策略
mcp_influxdb_dropRetentionPolicy
删除InfluxDB 1.x数据库的保留策略。
参数:
database(必需): 数据库名称name(必需): 保留策略名称
示例
查询数据
// 从weather数据库的temperature测量中查询最近10个数据点
{
"query": "SELECT * FROM temperature ORDER BY time DESC LIMIT 10",
"database": "weather"
}写入数据点
// 向weather数据库写入一个温度数据点
{
"database": "weather",
"measurement": "temperature",
"tags": {
"location": "office",
"sensor": "A001"
},
"fields": {
"value": 22.5,
"humidity": 45.2
}
}创建数据库
// 创建一个带有保留策略的数据库
{
"name": "weather_data",
"retentionPolicy": {
"name": "one_month",
"duration": "30d",
"replication": 1,
"isDefault": true
}
}InfluxDB 1.x 和 2.x 的区别
本工具专为InfluxDB 1.x设计,与2.x版本的主要区别包括:
- 查询语言:1.x使用InfluxQL,而2.x引入了Flux查询语言
- 身份验证:1.x使用用户名/密码认证,2.x使用令牌认证
- 数据组织:1.x使用数据库和保留策略,2.x使用桶(bucket)概念
- API接口:API端点和交互方式存在显著差异
注意事项
- 确保你的InfluxDB 1.x服务器允许从执行此MCP服务器的主机进行连接
- 对于大量数据的查询,请考虑使用LIMIT子句以避免性能问题
- 时间戳以毫秒为单位(自Unix纪元以来的毫秒数)
许可证
MIT
