返回市场
时序数据库MCP服务器

时序数据库MCP服务器

作者:idoru28 星标更新:2025-11-17

项目介绍

MseeP 徽章

InfluxDB MCP 服务器

smithery 徽章

信任评分

这是一个使用 InfluxDB OSS API v2 提供对 InfluxDB 实例访问的 Model Context Protocol (MCP) 服务器。主要由 Claude Code 构建。

功能

此 MCP 服务器提供:

  • 资源:访问组织、存储桶和测量数据
  • 工具:写入数据、执行查询和管理数据库对象
  • 提示:常见 Flux 查询模板和 Line Protocol 格式指南

资源

该服务器暴露以下资源:

  1. 组织列表influxdb://orgs

    • 显示 InfluxDB 实例中的所有组织
  2. 存储桶列表influxdb://buckets

  • 显示所有存储桶及其元数据
  1. 存储桶测量influxdb://bucket/{bucketName}/measurements

    • 列出指定存储桶内的所有测量
  2. 查询数据influxdb://query/{orgName}/{fluxQuery}

    • 执行 Flux 查询并返回结果作为资源

工具

该服务器提供以下工具:

  1. write-data:以 Line Protocol 格式写入时间序列数据

    • 参数:org, bucket, data, precision(可选)
  2. query-data:执行 Flux 查询

    • 参数:org, query
  3. create-bucket:创建新的存储桶

    • 参数:name, orgID, retentionPeriodSeconds(可选)
  4. create-org:创建新的组织

    • 参数:name, description(可选)

提示

该服务器提供以下提示模板:

  1. flux-query-examples:常见的 Flux 查询示例
  2. line-protocol-guide:InfluxDB Line Protocol 格式指南

配置

该服务器需要以下环境变量:

  • INFLUXDB_TOKEN(必需):用于 InfluxDB API 的身份验证令牌
  • INFLUXDB_URL(可选):InfluxDB 实例的 URL(默认为 http://localhost:8086
  • INFLUXDB_ORG(可选):某些操作的默认组织名称

安装

通过 Smithery 安装

要通过 Smithery 自动安装 InfluxDB MCP 服务器到 Claude Desktop:

npx -y @smithery/cli install @idoru/influxdb-mcp-server --client claude

方案 1:使用 npx 运行(推荐)

# 直接使用 npx 运行
INFLUXDB_TOKEN=your_token npx influxdb-mcp-server

方案 2:全局安装

# 全局安装
npm install -g influxdb-mcp-server

# 运行服务器
INFLUXDB_TOKEN=your_token influxdb-mcp-server

方案 3:从源代码运行

# 克隆仓库
git clone https://github.com/idoru/influxdb-mcp-server.git
cd influxdb-mcp-server

# 安装依赖
npm install

# 运行服务器
INFLUXDB_TOKEN=your_token npm start

influxdb-mcp-server 默认使用 stdio 传输。你可以显式请求它使用 --stdio,或者通过提供 --http 选项(可选端口号,默认为 3000)启动 Streamable HTTP 传输模式。此模式使用内部的 Express.js 服务器:

# 在默认端口 3000 上启动 Streamable HTTP 传输
INFLUXDB_TOKEN=your_token npm start -- --http

# 在特定端口上启动 Streamable HTTP 传输
INFLUXDB_TOKEN=your_token npm start -- --http 8080

如果你已全局安装或使用 npx,可以运行:

INFLUXDB_TOKEN=your_token influxdb-mcp-server --http
# 或显式强制使用 stdio
INFLUXDB_TOKEN=your_token influxdb-mcp-server --stdio
# 或
INFLUXDB_TOKEN=your_token influxdb-mcp-server --http 8080

与 Claude for Desktop 的集成

在你的 claude_desktop_config.json 中添加服务器:

使用 npx(推荐)

{
  "mcpServers": {
    "influxdb": {
      "command": "npx",
      "args": ["influxdb-mcp-server"],
      "env": {
        "INFLUXDB_TOKEN": "your_token",
        "INFLUXDB_URL": "http://localhost:8086",
        "INFLUXDB_ORG": "your_org"
      }
    }
  }
}

如果本地安装

{
  "mcpServers": {
    "influxdb": {
      "command": "node",
      "args": ["/path/to/influxdb-mcp-server/src/index.js"],
      "env": {
        "INFLUXDB_TOKEN": "your_token",
        "INFLUXDB_URL": "http://localhost:8086",
        "INFLUXDB_ORG": "your_org"
      }
    }
  }
}

代码结构

服务器代码采用模块化结构:

  • src/
    • index.js - 主服务器入口点
    • config/ - 与配置相关的文件
      • env.js - 环境变量处理
    • utils/ - 工具函数
      • influxClient.js - InfluxDB API 客户端
      • loggerConfig.js - 控制台日志配置
    • handlers/ - 资源和工具处理器
      • organizationsHandler.js - 组织列表
      • bucketsHandler.js - 存储桶列表
      • measurementsHandler.js - 测量列表
      • queryHandler.js - 查询执行
      • writeDataTool.js - 数据写入工具
      • queryDataTool.js - 查询工具
      • createBucketTool.js - 创建存储桶工具
      • createOrgTool.js - 创建组织工具
    • prompts/ - 提示模板
      • fluxQueryExamplesPrompt.js - Flux 查询示例
      • lineProtocolGuidePrompt.js - Line Protocol 指南

这种结构有助于更好的维护性、更简单的测试以及更清晰的关注点分离。

测试

该仓库包含全面的集成测试,这些测试:

  • 启动一个带有 InfluxDB 的 Docker 容器
  • 使用示例数据填充它
  • 测试所有 MCP 服务器功能

要运行测试:

npm test

许可证

MIT