The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Influxdb3 MCP Server listing page.
Model Context Protocol (MCP) server for InfluxDB 3 integration. Provides tools, resources, and prompts for interacting with InfluxDB v3 (Core/Enterprise/Cloud Dedicated/Clustered/Cloud Serverless) via MCP clients.
Set INFLUX_MCP_TOOL_PROFILE=readonly when you want an MCP client to explore
and query InfluxDB 3 data without exposing write, admin, token-management, or
host-level tools. In Enterprise deployments that use preview user auth, the
same read-only flow works when the configured bearer credential is a JWT instead
of an apiv3_ token.
An analyst can connect an MCP client such as Claude Desktop, Cursor, Codex, or another agent harness and ask a question like:
With the read-only profile, the agent can:
list_databases to see accessible databases.list_tables and describe_table to discover measurements and
columns.unknown.db, q, and optional params.query_sql with structured JSON output.The user gets a grounded answer and a reusable query while the agent explores and queries data without access to mutation or administration tools.
An operator can troubleshoot an existing InfluxQL dashboard panel and ask:
With the read-only profile, the agent can:
query_influxql.SHOW queries and schema discovery to verify the measurement and
referenced columns.SELECT INTO or destructive
statements.request_id, query_id, and query_id_source so the operator can
correlate the MCP result with system.queries.id when query history is
available.The user gets a practical diagnosis, such as missing data, renamed schema, a wrong time predicate, or a query failure. The investigation is traceable without logging full query text by default.
| Tool Name | Description | Availability |
|---|---|---|
load_database_context | Load optional custom database context and documentation | All versions |
get_help | Get help and troubleshooting guidance for InfluxDB operations | All versions |
write_line_protocol | Write data using InfluxDB line protocol | All versions |
create_database | Create a new database (with cloud-specific config options) | All versions |
update_database | Update database configuration (retention for all; maxTables/maxColumns for Cloud Dedicated/Clustered) | All versions |
delete_database | Delete a database by name (irreversible) | All versions |
execute_query | Run a SQL query against a database (supports multiple formats) | All versions |
query_sql | Run bounded read-only SQL with structured response metadata | All versions |
query_influxql | Run bounded read-only InfluxQL with structured response metadata | All versions |
get_measurements | List all measurements (tables) in a database | All versions |
get_measurement_schema | Get schema (columns/types) for a measurement/table | All versions |
list_tables | List tables, also called measurements, in a database | All versions |
describe_table | Describe table schema with conservative column categories | All versions |
investigate_database | Run high-level read-only database discovery and sampling | All versions |
create_admin_token | Create a new admin token (full permissions) | Core/Enterprise only |
list_admin_tokens | List all admin tokens (with optional filtering) | Core/Enterprise only |
create_resource_token | Create a resource token for specific DBs and permissions | Core/Enterprise only |
list_resource_tokens | List all resource tokens (with filtering and ordering) | Core/Enterprise only |
delete_token | Delete a token by name | Core/Enterprise only |
regenerate_operator_token | Regenerate the operator token (dangerous/irreversible) | Core/Enterprise only |
cloud_list_database_tokens | List all database tokens for Cloud-Dedicated/Clustered cluster | Cloud Dedicated/Clustered |
cloud_get_database_token | Get details of a specific database token by ID | Cloud Dedicated/Clustered |
cloud_create_database_token | Create a new database token for Cloud-Dedicated/Clustered cluster | Cloud Dedicated/Clustered |
cloud_update_database_token | Update an existing database token | Cloud Dedicated/Clustered |
cloud_delete_database_token | Delete a database token from Cloud-Dedicated/Clustered cluster | Cloud Dedicated/Clustered |
list_databases | List all available databases in the instance | All versions |
health_check | Check InfluxDB connection and health status | All versions |
| Resource Name | Description |
|---|---|
influx-config | Read-only access to InfluxDB configuration |
influx-status | Real-time connection and health status |
influx-databases | List of all databases in the instance |
context-file | Custom user-provided database context and documentation |
| Prompt Name | Description |
|---|---|
list-databases | Generate a prompt to list all available databases |
check-health | Generate a prompt to check InfluxDB health status |
load-context | Load custom database context and documentation |
You must provide:
INFLUX_DB_INSTANCE_URL (e.g. http://localhost:8181/)INFLUX_DB_TOKENINFLUX_DB_PRODUCT_TYPE (core or enterprise)Example .env:
You must provide:
INFLUX_DB_INSTANCE_URL (e.g. https://us-east-1-1.aws.cloud2.influxdata.com)INFLUX_DB_TOKENINFLUX_DB_PRODUCT_TYPE (cloud-serverless)Example .env:
You must provide INFLUX_DB_PRODUCT_TYPE=cloud-dedicated and INFLUX_DB_CLUSTER_ID, plus one of these token combinations:
Option 1: Database Token Only (Query/Write operations only):
Option 2: Management Token Only (Database management only):
Option 3: Both Tokens (Full functionality):
You must provide INFLUX_DB_PRODUCT_TYPE=clustered and INFLUX_DB_INSTANCE_URL, plus one of these token combinations:
Option 1: Database Token Only (Query/Write operations only):
Option 2: Management Token Only (Database management only):
Option 3: Both Tokens (Full functionality):
See corresponding env.<instancetype>.example for examples and detailed info.
Use INFLUX_MCP_TOOL_PROFILE=readonly to expose only read-only tools. If
unset, the server uses the full operator tool profile.
Tool-call telemetry is enabled by default and writes structured JSON lines to
stderr, which keeps stdout reserved for MCP stdio protocol messages. To
disable telemetry:
To write telemetry to a file, configure the file backend:
The telemetry log includes tool name, request ID, query ID, duration, database,
row count, truncation state, success state, and error code. It does not log API
tokens, request headers, tool arguments, or query text. Sample harness profiles
live in harness-profiles/; for approval settings and repeatable E2E prompts,
see AGENT_E2E_TESTS.md.
example-local.mcp.json):
Before running the Docker integration, you must build the Docker image:
a) Docker with remote InfluxDB instance (see example-docker.mcp.json):
b) Docker with InfluxDB running in Docker on the same machine (see example-docker.mcp.json):
Use host.docker.internal as the InfluxDB URL so the MCP server container can reach the InfluxDB container:
context/database-context.md file or remove it and create your own context file with "context" in the name (.json, .txt, .md) to provide database documentation. Use the load_database_context tool or load-context prompt to access it.example-*.mcp.json files for ready-to-use configuration templates:
example-local.mcp.json - Local development setupexample-npx.mcp.json - NPX-based setupexample-docker.mcp.json - Docker-based setupexample-cloud-dedicated.mcp.json - Cloud Dedicated with all variablesexample-clustered.mcp.json - Clustered with all variablesexample-cloud-serverless.mcp.json - Cloud Serverless configurationenv.example, env.cloud-dedicated.example, env.clustered.example, and env.cloud-serverless.example files for environment variable templates.AGENT_E2E_TESTS.md for MCP harness tips, read-only profile runs, and telemetry correlation checks.| Duration | Nanoseconds |
|---|---|
| 7 days | 604,800,000,000,000 |
| 30 days | 2,592,000,000,000,000 |
| 90 days | 7,776,000,000,000,000 |
| 180 days | 15,552,000,000,000,000 |
| 1 year | 31,536,000,000,000,000 |
get_help tool for built-in help and troubleshooting..env and MCP config files.write_line_protocol surfaces InfluxDB's own error text, not a generic
message. If InfluxDB rejects a write — a duplicate tag key, an
unauthenticated token, a payload over the size limit — the tool error
includes the specific reason, for example:
A 503 reaching this server is phrased as retryable
(Service temporarily unavailable, retry the write: ...) — safe to retry
the write. Any other status is not.
Verified against InfluxDB 3.11.2 Core and Enterprise (including a
multi-node Enterprise cluster). Core and Enterprise write through
POST /api/v3/write_lp, which 3.11's write-availability changes for the
legacy /api/v2/write endpoint do not affect; only clustered calls
/api/v2/write. Query and schema-discovery tools behave the same whether
the target database is on Parquet (Core, or Enterprise before an upgrade)
or PachaTree (Enterprise 3.11+ by default, or after
--upgrade-pacha-tree) — new system.pt_* tables are excluded from
get_measurements/get_measurement_schema results by the same
table_schema = 'iox' filter that already excludes other system tables.