Releases: influxdata/influxdb3_mcp_server
Releases · influxdata/influxdb3_mcp_server
Release list
v1.4.1
Immutable
release. Only release title and notes can be modified.
Fixed
- Write-path errors now preserve InfluxDB's error body.
write_line_protocoldiscarded InfluxDB's response body on 400/401/403/413/422 and threw a fixed generic string instead.
A duplicate-tag-key write (rejected by InfluxDB 3.11+ before it reaches storage) now returns an error naming the tag.
For example,Bad request: invalid line protocol - multiple instances of 'region' tag found, instead ofBad request: Invalid line protocol format or parameters.
Verified against live Core and Enterprise 3.11.2. - Added a 503 arm to the write error handler, phrased as retryable (
Service temporarily unavailable, retry the write: ...), so callers can distinguish a transient failure from a bad request.
Previously any unhandled status, including 503, fell through to the generic fallback. - The write error fallback now serializes a parsed JSON body instead of interpolating it directly.
The unserialized version previously rendered asFailed to write data to database 'x': [object Object]. - Cloud Dedicated/Serverless write errors now classify correctly.
The InfluxDB SDK throwsHttpError(error.statusCode,error.json/error.body), a different shape than the axios-based Core/Enterprise/Clustered path (error.response.status/.data).
Every status branch previously missed on the SDK shape, so cloud writes always fell through to the generic fallback even for a 400 or 401.
Both shapes now normalize to one internal form before branching. zodmoved fromdevDependenciestodependencies.
It's imported at runtime bysrc/tools/index.tsand every tool category module.
A cleannpm i --omit=devinstall, or any consumer installing the published package, previously got a server that failed to start.- 8 transitive dependency vulnerabilities resolved via
npm audit fix(2 moderate, 6 high), all transitive througheslint/vitest.
No direct runtime dependency was affected.
Added
src/services/error-resolution.service.ts: shared error normalization (normalizeError,resolveErrorMessage) extracted from the write-path fix.
It follows the same body-resolution orderhandleQueryErroralready used.
It's available for the query path and the other services with their own ad hoc body-preserving variants (token-management.service.ts,database-management.service.ts,cloud-token-management.service.ts) to adopt in a later pass.
v1.4.1-test.1
Immutable
release. Only release title and notes can be modified.
v1.4.0
Immutable
release. Only release title and notes can be modified.
Added
- Read-only query tools (Phase 1):
query_sql,query_influxql,list_tables,describe_table, andinvestigate_database, each enforcing read-only access at the tool boundary- New
QuerySafetyServicevalidates queries against an allow list (SELECT,SHOW,EXPLAIN,WITHfor SQL;SELECT,SHOWfor InfluxQL) and rejects write/DDL statements before they reach InfluxDB - Row limit enforcement: default 1000 rows, hard max 5000, applied consistently across query paths including outer-query limits on wrapped queries
- Query routing options forwarded through to the underlying query execution (e.g. per-request timeout, query parameters)
- New
TelemetryServicelogs tool-boundary events (request id, query id, duration, row count, truncation, success/error code) to a local telemetry file
- New
- Enterprise/Core Retention Policy Support: Added database retention policy configuration for Core/Enterprise instances via
update_databasetool- New method
updateDatabaseCoreEnterprise()inDatabaseManagementServicefor PUT/api/v3/configure/database - Support for
retentionPeriodparameter on Core/Enterprise (sent asretention_period, a humantime duration string such as"60d") - Warning when unsupported parameters (maxTables, maxColumnsPerTable) are provided for Core/Enterprise
- Enhanced tool description to indicate Core/Enterprise support for retention configuration
- New method
Fixed
- Query routing options (timeout, parameters) are now forwarded correctly instead of being dropped
- Outer query limits are now enforced on wrapped/nested queries, not just top-level queries
Enhanced
- Tool Availability: Updated
update_databasefrom "Cloud Dedicated only" to "All versions"- Cloud Dedicated: supports maxTables, maxColumnsPerTable, retentionPeriod
- Core/Enterprise: supports retentionPeriod only
- Documentation: Added retention policy examples for Enterprise and common retention period reference table
Full Changelog: v1.3.0...v1.4.0
v1.3.0
Note
Release v1.3.0
This is the first official release under the https://github.com/influxdata scope and contains breaking changes, including the package > name change to @influxdata/influxdb3-mcp-server. However, the MCP tools, resources, and prompts are unchanged.
Added
- E2E test suite: Protocol compliance tests (vitest) that verify server startup, MCP handshake, tool/resource/prompt registration, and error handling — no InfluxDB required
- Integration tests: Live InfluxDB tests for
health_check,list_databases, andexecute_query, gated behindINFLUX_TEST_ENABLED - Error-path unit tests: Tests with recorded error fixtures from live Core and Cloud Serverless instances covering JSON, plain-text, and
{code, message}error formats - CI workflow: GitHub Actions with protocol tests on every PR, integration tests against InfluxDB 3 Core via Docker, and Cloud Serverless integration tests via GitHub environment secrets
- Docker test infrastructure:
docker-compose.test.ymlfor local Core testing with preconfigured admin token - Version consistency CI check: Verifies
package.json,config.ts, andCHANGELOG.mdversions match on every PR - CLAUDE.md: Architecture overview and codebase conventions for Claude Code
- Claude Code skills: Build/run workflow for Core/Enterprise and testing workflow
Fixed
- Server-level error catch now sets
isError: true, consistent with handler-level error responses - Plain-text error responses from InfluxDB Core (HTTP 500) are now surfaced in all 4 services instead of falling through to generic "Internal Server Error"
- Query error handler now checks
data.messagefor Cloud Serverless{code, message}JSON error format, matching the other 3 services
Changed
- Minimum Node.js version raised to v20.11 (Node 18 is EOL; vitest 4.x and
import.meta.dirnamerequire v20.11+) @modelcontextprotocol/sdkupdated from^1.12.1to1.27.1@influxdata/influxdb3-clientupdated from^1.1.0to1.4.0- All dependencies updated to latest within semver ranges
- Version aligned across
package.json,config.ts, andCHANGELOG.md(previously divergent) - npm package renamed from
influxdb-mcp-serverto@influxdata/influxdb3-mcp-server - Scoped package configured for public publish (
publishConfig.access: "public") - All dependencies pinned to exact versions (no caret ranges)