InfluxDB MCP Server
A Model Context Protocol (MCP) server that exposes access to an InfluxDB 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:
-
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
Tools
The server provides these tools:
-
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)
Prompts
The server offers these prompt templates:
flux-query-examples
: Common Flux query examplesline-protocol-guide
: Guide to InfluxDB line protocol format
Configuration
The server requires these environment variables:
INFLUXDB_TOKEN
(required): Authentication token for the InfluxDB APIINFLUXDB_URL
(optional): URL of the InfluxDB instance (defaults tohttp://localhost:8086
)INFLUXDB_ORG
(optional): Default organization name for certain operations
Installation
Option 1: Run with npx (recommended)
1# Run directly with npx 2INFLUXDB_TOKEN=your_token npx influxdb-mcp-server
Option 2: Install globally
1# Install globally 2npm install -g influxdb-mcp-server 3 4# Run the server 5INFLUXDB_TOKEN=your_token influxdb-mcp-server
Option 3: From source
1# Clone the repository 2git clone https://github.com/idoru/influxdb-mcp-server.git 3cd influxdb-mcp-server 4 5# Install dependencies 6npm install 7 8# Run the server 9INFLUXDB_TOKEN=your_token npm start
Integration with Claude for Desktop
Add the server to your claude_desktop_config.json
:
Using npx (recommended)
1{ 2 "mcpServers": { 3 "influxdb": { 4 "command": "npx", 5 "args": ["influxdb-mcp-server"], 6 "env": { 7 "INFLUXDB_TOKEN": "your_token", 8 "INFLUXDB_URL": "http://localhost:8086", 9 "INFLUXDB_ORG": "your_org" 10 } 11 } 12 } 13}
If installed locally
1{ 2 "mcpServers": { 3 "influxdb": { 4 "command": "node", 5 "args": ["/path/to/influxdb-mcp-server/src/index.js"], 6 "env": { 7 "INFLUXDB_TOKEN": "your_token", 8 "INFLUXDB_URL": "http://localhost:8086", 9 "INFLUXDB_ORG": "your_org" 10 } 11 } 12 } 13}
Code Structure
The server code is organized into a modular structure:
src/
index.js
- Main server entry pointconfig/
- Configuration related filesenv.js
- Environment variable handling
utils/
- Utility functionsinfluxClient.js
- InfluxDB API clientloggerConfig.js
- Console logger configuration
handlers/
- Resource and tool handlersorganizationsHandler.js
- Organizations listingbucketsHandler.js
- Buckets listingmeasurementsHandler.js
- Measurements listingqueryHandler.js
- Query executionwriteDataTool.js
- Data write toolqueryDataTool.js
- Query toolcreateBucketTool.js
- Bucket creation toolcreateOrgTool.js
- Organization creation tool
prompts/
- Prompt templatesfluxQueryExamplesPrompt.js
- Flux query exampleslineProtocolGuidePrompt.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:
1npm test
License
MIT