Database · MODEL CONTEXT PROTOCOL

influxdb-mcp-server

An MCP Server for querying InfluxDB

连接能力

influxdb-mcp-server 为 AI Agent 提供什么

  • **Resources**: Access to organization, bucket, and measurement data
  • **Tools**: Write data, execute queries, and manage database objects
  • **Prompts**: Templates for common Flux queries and Line Protocol format
  • **Organizations List**: `influxdb://orgs`
  • Displays all organizations in the InfluxDB instance
  • **Buckets List**: `influxdb://buckets`
  • Shows all buckets with their metadata
  • **Bucket Measurements**: `influxdb://bucket/{bucketName}/measurements`
  • Lists all measurements within a specified bucket
  • **Query Data**: `influxdb://query/{orgName}/{fluxQuery}`
  • Executes a Flux query and returns results as a resource
  • `write-data`: Write time-series data in line protocol format
  • Parameters: org, bucket, data, precision (optional)
  • `query-data`: Execute Flux queries
  • Parameters: org, query
  • `create-bucket`: Create a new bucket
  • Parameters: name, orgID, retentionPeriodSeconds (optional)
  • `create-org`: Create a new organization
  • Parameters: name, description (optional)
  • `flux-query-examples`: Common Flux query examples
  • `line-protocol-guide`: Guide to InfluxDB line protocol format
  • `INFLUXDB_TOKEN` (required): Authentication token for the InfluxDB API
  • `INFLUXDB_URL` (optional): URL of the InfluxDB instance (defaults to `http://localhost:8086`)
  • `INFLUXDB_ORG` (optional): Default organization name for certain operations
  • `src/`
  • `index.js` - Main server entry point
  • `config/` - Configuration related files
  • `env.js` - Environment variable handling
  • `utils/` - Utility functions
  • `influxClient.js` - InfluxDB API client
  • `loggerConfig.js` - Console logger configuration
  • `handlers/` - Resource and tool handlers
  • `organizationsHandler.js` - Organizations listing
  • `bucketsHandler.js` - Buckets listing
  • `measurementsHandler.js` - Measurements listing
  • `queryHandler.js` - Query execution
  • `writeDataTool.js` - Data write tool
  • `queryDataTool.js` - Query tool
  • `createBucketTool.js` - Bucket creation tool
  • `createOrgTool.js` - Organization creation tool
  • `prompts/` - Prompt templates
  • `fluxQueryExamplesPrompt.js` - Flux query examples
  • `lineProtocolGuidePrompt.js` - Line protocol guide
  • Spin up a Docker container with InfluxDB
  • Populate it with sample data
  • Test all MCP server functionality

安全

MCP 收录不等于安全审核

MCP 服务器可能获得模型上下文、凭据、本地文件或调用外部系统的权限。连接 Agent 前,请检查代码、环境变量、网络行为、软件包来源与维护状态。

README

仓库文档

MseeP Badge

InfluxDB v2 MCP Server

smithery badge

Trust Score

A Model Context Protocol (MCP) server that exposes access to an InfluxDB v2 instance using the InfluxDB OSS API v2. Mostly built with Claude Code.

Features

This MCP server provides:

  • Resources: Access to organization, bucket, and measurement data
  • Tools: Write data, execute queries, and manage database objects
  • Prompts: Templates for common Flux queries and Line Protocol format

Resources

The server exposes the following resources:

  1. Organizations List: influxdb://orgs

    • Displays all organizations in the InfluxDB instance
  2. Buckets List: influxdb://buckets

    • Shows all buckets with their metadata
  3. Bucket Measurements: influxdb://bucket/{bucketName}/measurements

    • Lists all measurements within a specified bucket
  4. Query Data: influxdb://query/{orgName}/{fluxQuery}

    • Executes a Flux query and returns results as a resource

Tools

The server provides these tools:

  1. write-data: Write time-series data in line protocol format

    • Parameters: org, bucket, data, precision (optional)
  2. query-data: Execute Flux queries

    • Parameters: org, query
  3. create-bucket: Create a new bucket

    • Parameters: name, orgID, retentionPeriodSeconds (optional)
  4. create-org: Create a new organization

    • Parameters: name, description (optional)

Prompts

The server offers these prompt templates:

  1. flux-query-examples: Common Flux query examples
  2. line-protocol-guide: Guide to InfluxDB line protocol format

Configuration

The server requires these environment variables:

  • INFLUXDB_TOKEN (required): Authentication token for the InfluxDB API
  • INFLUXDB_URL (optional): URL of the InfluxDB instance (defaults to http://localhost:8086)
  • INFLUXDB_ORG (optional): Default organization name for certain operations

Installation

Installing via Smithery

To install InfluxDB MCP Server for Claude Desktop automatically via Smithery:

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

Option 1: Run with npx (recommended)

# Run directly with npx
INFLUXDB_TOKEN=your_token npx influxdb-mcp-server

Option 2: Install globally

# Install globally
npm install -g influxdb-mcp-server

# Run the server
INFLUXDB_TOKEN=your_token influxdb-mcp-server

Option 3: From source

# Clone the repository
git clone https://github.com/idoru/influxdb-mcp-server.git
cd influxdb-mcp-server

# Install dependencies
npm install

# Run the server
INFLUXDB_TOKEN=your_token npm start

influxdb-mcp-server uses stdio transport by default. You can explicitly request it with --stdio, or start the server with Streamable HTTP transport by providing the --http option with an optional port number (defaults to 3000). This mode uses an internal Express.js server:

# Start with Streamable HTTP transport on default port 3000
INFLUXDB_TOKEN=your_token npm start -- --http

# Start with Streamable HTTP transport on a specific port
INFLUXDB_TOKEN=your_token npm start -- --http 8080

If you installed globally or are using npx, you can run:

INFLUXDB_TOKEN=your_token influxdb-mcp-server --http
# or explicitly force stdio
INFLUXDB_TOKEN=your_token influxdb-mcp-server --stdio
# or
INFLUXDB_TOKEN=your_token influxdb-mcp-server --http 8080

Integration with Claude for Desktop

Add the server to your claude_desktop_config.json:

Using npx (recommended)

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

If installed locally

{
  "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"
      }
    }
  }
}

Code Structure

The server code is organized into a modular structure:

  • src/
    • index.js - Main server entry point
    • config/ - Configuration related files
      • env.js - Environment variable handling
    • utils/ - Utility functions
      • influxClient.js - InfluxDB API client
      • loggerConfig.js - Console logger configuration
    • handlers/ - Resource and tool handlers
      • organizationsHandler.js - Organizations listing
      • bucketsHandler.js - Buckets listing
      • measurementsHandler.js - Measurements listing
      • queryHandler.js - Query execution
      • writeDataTool.js - Data write tool
      • queryDataTool.js - Query tool
      • createBucketTool.js - Bucket creation tool
      • createOrgTool.js - Organization creation tool
    • prompts/ - Prompt templates
      • fluxQueryExamplesPrompt.js - Flux query examples
      • lineProtocolGuidePrompt.js - Line protocol guide

This structure allows for better maintainability, easier testing, and clearer separation of concerns.

Testing

The repository includes comprehensive integration tests that:

  • Spin up a Docker container with InfluxDB
  • Populate it with sample data
  • Test all MCP server functionality

To run the tests:

npm test

License

MIT

在 GitHub 查看 README

社区

收藏、评分与讨论

正在载入社区数据…