MCP Connector

Connect to InfluxDB for Time Series Data

MCP server for InfluxDB v2: write time-series data, run Flux queries, and manage buckets and organizations.

Works with influxdb

90
Spark score
out of 100
Updated 6 months ago
Version 0.2.0
Models
universal

Add to Favorites

Why it matters

Integrate your AI applications with InfluxDB to perform time series queries, write data, and manage your database. This connector allows for seamless interaction with InfluxDB OSS API v2.

Outcomes

What it gets done

01

Write time series data using line protocol.

02

Execute Flux queries for data retrieval.

03

Create new InfluxDB buckets and organizations.

04

Access organization, bucket, and measurement data.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-influxdb | bash

Capabilities

Tools your agent gets

write-data

Writes time series data in line protocol format to InfluxDB

query-data

Executes Flux queries against InfluxDB and returns results

create-bucket

Creates a new bucket in InfluxDB for storing time series data

create-org

Creates a new organization in InfluxDB

Overview

InfluxDB MCP Server

An MCP server for InfluxDB v2 exposing organizations, buckets, and measurements as resources, plus tools to write line-protocol data, run Flux queries, and create buckets or organizations. Use to have Claude query, write, or manage InfluxDB v2 data via the OSS API v2. Requires a valid API token; targets v2 specifically, not InfluxDB 1.x's older query language.

What it does

InfluxDB v2 MCP Server exposes access to an InfluxDB v2 instance via the InfluxDB OSS API v2, providing resources, tools, and prompts for time-series data work. It exposes four resources: an organizations list (influxdb://orgs), a buckets list with metadata (influxdb://buckets), bucket measurements for a specified bucket (influxdb://bucket/{bucketName}/measurements), and query results as a resource by running a Flux query directly through a URI (influxdb://query/{orgName}/{fluxQuery}).

It provides four tools: write-data (writes time-series data in line protocol format, with org/bucket/data parameters and optional precision), query-data (executes Flux queries against org and query parameters), create-bucket (creates a new bucket with name/orgID and optional retention period in seconds), and create-org (creates a new organization with name and optional description). It also ships two prompt templates: flux-query-examples for common Flux query patterns, and line-protocol-guide explaining InfluxDB's line protocol write format.

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

Configuration requires INFLUXDB_TOKEN (authentication token for the InfluxDB API), with optional INFLUXDB_URL (defaults to http://localhost:8086) and INFLUXDB_ORG (default organization for certain operations). The server uses stdio transport by default, or Streamable HTTP transport via an internal Express.js server when started with --http (default port 3000, or a specified port).

The codebase is organized into a modular structure: config/env.js for environment handling, utils/influxClient.js for the InfluxDB API client, handlers/ split per resource and tool (organizations, buckets, measurements, query, write-data, query-data, create-bucket, create-org), and prompts/ for the Flux query and line protocol templates. The repository includes integration tests that spin up a Docker container with InfluxDB, populate it with sample data, and exercise the full MCP server functionality.

When to use - and when NOT to

Use this connector when you want Claude to read from or write to an InfluxDB v2 time-series database directly - browsing organizations and buckets, inspecting measurements, running ad hoc Flux queries, writing new time-series data points, or provisioning new buckets and organizations.

It targets InfluxDB v2's OSS API specifically (not InfluxDB 1.x's older query language or InfluxDB Cloud-specific features beyond the standard v2 API), and requires a valid API token with appropriate permissions for whatever operations (read, write, or admin-level bucket/org creation) you intend to perform.

Capabilities

Resource browsing: organizations list, buckets list, per-bucket measurements, and Flux query results as a URI-addressable resource. Tools: write-data (line protocol writes), query-data (Flux query execution), create-bucket, and create-org. Prompts: flux-query-examples and line-protocol-guide reference templates.

How to install

Install via Smithery for automatic Claude Desktop setup, run directly with npx (INFLUXDB_TOKEN=your_token npx influxdb-mcp-server), install globally via npm, or clone and run from source. Add the server to claude_desktop_config.json's mcpServers block with the INFLUXDB_TOKEN, INFLUXDB_URL, and INFLUXDB_ORG environment variables set.

Who it's for

Developers and data engineers working with InfluxDB v2 time-series data who want Claude to query, write, and manage buckets and organizations directly.

Source 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

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.