A Model Context Protocol (MCP) server that exposes access to an InfluxDB instance using the InfluxDB OSS API v2. Mostly built with Claude Code.
This MCP server provides:
The server exposes the following resources:
Organizations List: influxdb://orgs
Buckets List: influxdb://buckets
Bucket Measurements: influxdb://bucket/{bucketName}/measurements
Query Data: influxdb://query/{orgName}/{fluxQuery}
The server provides these tools:
write-data: Write time-series data in line protocol format
query-data: Execute Flux queries
create-bucket: Create a new bucket
create-org: Create a new organization
The server offers these prompt templates:
flux-query-examples: Common Flux query examplesline-protocol-guide: Guide to InfluxDB line protocol formatThe server requires these environment variables:
INFLUXDB_TOKEN (required): Authentication token for the InfluxDB APIINFLUXDB_URL (optional): URL of the InfluxDB instance (defaults to http://localhost:8086)INFLUXDB_ORG (optional): Default organization name for certain operationsTo install InfluxDB MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @idoru/influxdb-mcp-server --client claude
# Run directly with npx
INFLUXDB_TOKEN=your_token npx influxdb-mcp-server
# Install globally
npm install -g influxdb-mcp-server
# Run the server
INFLUXDB_TOKEN=your_token influxdb-mcp-server
# 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
Add the server to your claude_desktop_config.json:
{
"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"
}
}
}
}
The server code is organized into a modular structure:
src/
index.js - Main server entry pointconfig/ - Configuration related files
env.js - Environment variable handlingutils/ - Utility functions
influxClient.js - InfluxDB API clientloggerConfig.js - Console logger configurationhandlers/ - Resource and tool handlers
organizationsHandler.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 toolprompts/ - Prompt templates
fluxQueryExamplesPrompt.js - Flux query exampleslineProtocolGuidePrompt.js - Line protocol guideThis structure allows for better maintainability, easier testing, and clearer separation of concerns.
The repository includes comprehensive integration tests that:
To run the tests:
npm test
MIT