InfluxDB MCP Server - 时序数据库自然语言接口
简介
InfluxDB MCP Server 是 InfluxData 官方推出的 Model Context Protocol 服务器实现,专门为 InfluxDB 3 时序数据库提供自然语言查询和管理接口。这个服务器使得用户无需编写复杂的 SQL 查询或 Line Protocol,即可通过 AI 助手与 InfluxDB 进行交互。它使用 TypeScript 实现,提供了完整的数据库管理、数据写入、SQL 查询、Token 管理等功能,支持 InfluxDB Core、Enterprise 和 Cloud Dedicated 全系列产品。该项目特别适合 IoT、监控、分析等需要处理时序数据的场景,本地运行确保数据隐私安全。
核心特性
- SQL 查询执行 - 使用标准 SQL 语法查询时序数据,支持多种输出格式(JSON、CSV、Pretty)
- Line Protocol 写入 - 通过 InfluxDB 的 Line Protocol 格式高效写入时序数据点
- 测量值管理 - 列出数据库中的所有测量值(表),获取 Schema 信息
- 数据库完整管理 - 创建、更新、删除数据库,配置保留策略和容量限制
- Token 权限管理 - 创建管理员和资源 Token,精细控制访问权限
- 健康检查功能 - 监控 InfluxDB 实例的健康状态和系统信息
- AI 智能查询 - 自动分析 Schema 生成 SQL,理解自然语言时序数据需求
- 多版本支持 - 全面支持 InfluxDB Core、Enterprise 和 Cloud Dedicated
工具列表
帮助和支持工具
get_help
描述: 获取 InfluxDB 操作的详细帮助信息和故障排除指导
参数: 无需参数
数据写入工具
write_line_protocol
描述: 使用 InfluxDB 的 Line Protocol 格式写入时序数据,高效且紧凑
参数:
database(string): 目标数据库名称 [必需]data(string): Line Protocol 格式的数据字符串 [必需]
数据库管理工具
create_database
描述: 创建新的 InfluxDB 数据库,支持 Cloud Dedicated 高级配置选项
参数:
name(string): 数据库名称 [必需]maxTables(number): 最大表数量(Cloud Dedicated)[可选]maxColumnsPerTable(number): 每表最大列数(Cloud Dedicated)[可选]retentionPeriod(string): 数据保留期限,如 “7d”、”30d”(Cloud Dedicated)[可选]
update_database
描述: 更新现有数据库的配置参数(仅支持 Cloud Dedicated)
参数:
name(string): 数据库名称 [必需]maxTables(number): 新的最大表数量 [可选]maxColumnsPerTable(number): 新的每表最大列数 [可选]retentionPeriod(string): 新的数据保留期限 [可选]
delete_database
描述: 永久删除数据库及其所有数据(不可逆操作,请谨慎使用)
参数:
name(string): 要删除的数据库名称 [必需]
查询工具
execute_query
描述: 对指定数据库执行 SQL 查询,支持多种输出格式
参数:
database(string): 数据库名称 [必需]query(string): SQL 查询语句 [必需]format(string): 返回格式(json、csv、pretty 等)[可选,默认: “json”]
get_measurements
描述: 列出数据库中的所有测量值(类似于传统数据库的表)
参数:
database(string): 数据库名称 [必需]
get_measurement_schema
描述: 获取特定测量值的完整 Schema,包括所有列名和数据类型
参数:
database(string): 数据库名称 [必需]measurement(string): 测量值/表名称 [必需]
Token 管理工具(Core/Enterprise)
create_admin_token
描述: 创建新的管理员令牌,拥有完全权限(仅 Core/Enterprise)
参数:
description(string): 令牌描述信息 [可选]
list_admin_tokens
描述: 列出所有管理员令牌,支持可选过滤(仅 Core/Enterprise)
参数: 无需参数
create_resource_token
描述: 为特定数据库和权限创建受限资源令牌(仅 Core/Enterprise)
参数:
description(string): 令牌描述 [可选]permissions(array): 权限列表,定义可访问的数据库和操作 [必需]
list_resource_tokens
描述: 列出所有资源令牌,支持过滤和排序(仅 Core/Enterprise)
参数: 无需参数
delete_token
描述: 按名称删除指定令牌(仅 Core/Enterprise)
参数:
name(string): 要删除的令牌名称 [必需]
regenerate_operator_token
描述: 重新生成操作员令牌(危险操作,不可逆,仅 Core/Enterprise)
参数: 无需参数
Cloud Dedicated Token 管理工具
cloud_list_database_tokens
描述: 列出 Cloud Dedicated 集群的所有数据库令牌
参数: 无需参数
cloud_get_database_token
描述: 按 ID 获取特定数据库令牌的详细信息
参数:
tokenId(string): 令牌 ID [必需]
cloud_create_database_token
描述: 为 Cloud Dedicated 集群创建新的数据库令牌
参数:
description(string): 令牌描述 [必需]permissions(array): 权限列表 [必需]
cloud_update_database_token
描述: 更新现有数据库令牌的描述或权限
参数:
tokenId(string): 令牌 ID [必需]description(string): 新的令牌描述 [可选]
cloud_delete_database_token
描述: 从 Cloud Dedicated 集群删除数据库令牌
参数:
tokenId(string): 要删除的令牌 ID [必需]
配置方式
Claude Desktop 配置示例
1 | { |
环境变量配置
1 | # 基础配置 |
环境变量说明
- INFLUX_URL: InfluxDB 实例的完整 URL 地址
- INFLUX_TOKEN: 管理员或具有足够权限的 Token
- INFLUX_DATABASE: 默认操作的数据库名称
- INFLUX_CLUSTER_ID: Cloud Dedicated 集群 ID(仅 Cloud Dedicated 需要)
- INFLUX_ACCOUNT_ID: Cloud Dedicated 账户 ID(仅 Cloud Dedicated 需要)
使用示例
1 | # 本地安装运行 |
自然语言查询示例
1 | # 查询最近的数据 |
实际应用场景
IoT 传感器数据管理 - 存储和查询来自数千个传感器的实时数据,监控设备状态和环境参数
系统性能监控 - 收集服务器、应用和网络的性能指标,通过自然语言快速分析性能瓶颈
应用 APM 分析 - 存储应用性能追踪数据,使用自然语言查询响应时间、错误率等指标
业务指标仪表板 - 实时收集业务 KPI 数据,通过 AI 助手快速生成报表和洞察
设备预测性维护 - 分析设备历史数据模式,预测可能的故障并提前维护
能源管理系统 - 监控能源消耗数据,通过时序分析优化能源使用效率
技术实现
InfluxDB MCP Server 使用 TypeScript 实现,充分利用了 TypeScript 的类型安全特性:
- TypeScript 类型安全 - 98% TypeScript 代码,编译时捕获类型错误,提高代码质量
- 模块化架构 - 清晰的模块划分,便于维护和扩展新功能
- 异步优先设计 - 使用 async/await 模式,高效处理 I/O 密集型操作
- 完整的 API 覆盖 - 封装了 InfluxDB 3 的完整 API,包括数据写入、查询、管理等
- 智能 Schema 分析 - 自动分析测量值 Schema,帮助 AI 生成准确的 SQL 查询
- 多部署选项支持 - 统一接口支持 Core、Enterprise 和 Cloud Dedicated
- 本地运行保护隐私 - 所有处理在本地完成,敏感数据不会发送到外部服务
- 环境变量灵活配置 - 支持通过环境变量配置所有参数,便于容器化部署
该服务器还实现了智能的查询生成能力,能够理解自然语言描述的时序数据需求,自动添加合适的时间过滤、聚合和限制条件。
获取方式
- GitHub: https://github.com/influxdata/influxdb3_mcp_server
- NPM: @influxdata/influxdb3-mcp-server
- 安装方式:
- NPM 安装:
npm install @influxdata/influxdb3-mcp-server - NPX 直接运行:
npx @influxdata/influxdb3-mcp-server - Docker 容器部署
- NPM 安装:
- 系统要求:
- Node.js 16+
- InfluxDB 3.x (Core/Enterprise/Cloud Dedicated)
- 有效的 InfluxDB Token
相关资源
- 官方文档: docs.influxdata.com
- InfluxDB University: 免费在线课程学习 InfluxDB 最佳实践
- 社区论坛: InfluxData 社区论坛获取支持
- 项目仓库: github.com/influxdata/influxdb3_mcp_server
- InfluxDB Cloud: 免费试用 InfluxDB Cloud Dedicated