InfluxDB MCP Server - 时序数据库自然语言接口

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
2
3
4
5
6
7
8
9
10
11
12
13
{
"mcpServers": {
"influxdb": {
"command": "npx",
"args": ["-y", "@influxdata/influxdb3-mcp-server"],
"env": {
"INFLUX_URL": "https://your-cluster.influxdata.io",
"INFLUX_TOKEN": "your-admin-token",
"INFLUX_DATABASE": "your-database-name"
}
}
}
}

环境变量配置

1
2
3
4
5
6
7
8
# 基础配置
INFLUX_URL=https://your-cluster.influxdata.io
INFLUX_TOKEN=your-admin-token
INFLUX_DATABASE=your-database-name

# Cloud Dedicated 额外配置
INFLUX_CLUSTER_ID=your-cluster-id
INFLUX_ACCOUNT_ID=your-account-id

环境变量说明

  • 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
2
3
4
5
6
7
8
9
# 本地安装运行
npm install @influxdata/influxdb3-mcp-server
node dist/index.js

# 使用 npx 直接运行
npx @influxdata/influxdb3-mcp-server

# Docker 运行
docker run -e INFLUX_URL -e INFLUX_TOKEN -e INFLUX_DATABASE influxdb3-mcp-server

自然语言查询示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 查询最近的数据
"显示最近 10 条温度读数"

# 聚合查询
"过去一小时的平均 CPU 使用率是多少?"

# 数据库管理
"创建一个名为 metrics 的新数据库"

# 写入数据
"记录一条温度数据:25.5 度,位置在 sensor_01"

# Schema 查询
"显示 system_metrics 测量值的所有列"

# 时间范围查询
"显示昨天所有错误级别的日志"

实际应用场景

  1. IoT 传感器数据管理 - 存储和查询来自数千个传感器的实时数据,监控设备状态和环境参数

  2. 系统性能监控 - 收集服务器、应用和网络的性能指标,通过自然语言快速分析性能瓶颈

  3. 应用 APM 分析 - 存储应用性能追踪数据,使用自然语言查询响应时间、错误率等指标

  4. 业务指标仪表板 - 实时收集业务 KPI 数据,通过 AI 助手快速生成报表和洞察

  5. 设备预测性维护 - 分析设备历史数据模式,预测可能的故障并提前维护

  6. 能源管理系统 - 监控能源消耗数据,通过时序分析优化能源使用效率

技术实现

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 容器部署
  • 系统要求:
    • Node.js 16+
    • InfluxDB 3.x (Core/Enterprise/Cloud Dedicated)
    • 有效的 InfluxDB Token

相关资源

© 2026 Generative AI Discovery All Rights Reserved.
Theme by hiero