Skip to content

Releases: influxdata/influxdb3_mcp_server

v1.4.1

Choose a tag to compare

@jstirnaman jstirnaman released this 01 Sep 18:01
Immutable release. Only release title and notes can be modified.

Fixed

  • Write-path errors now preserve InfluxDB's error body.
    write_line_protocol discarded 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 of Bad 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 as Failed to write data to database 'x': [object Object].
  • Cloud Dedicated/Serverless write errors now classify correctly.
    The InfluxDB SDK throws HttpError (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.
  • zod moved from devDependencies to dependencies.
    It's imported at runtime by src/tools/index.ts and every tool category module.
    A clean npm i --omit=dev install, 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 through eslint/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 order handleQueryError already 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

v1.4.1-test.1 Pre-release
Pre-release

Choose a tag to compare

@jstirnaman jstirnaman released this 30 Jul 21:28
Immutable release. Only release title and notes can be modified.

Test release — no functional changes. Verifies the environment-gated release-publish workflow (#95, #96): npm publish under the prerelease dist-tag and Docker Hub publish without moving latest on either registry.

v1.4.0

Choose a tag to compare

@jstirnaman jstirnaman released this 30 Jul 16:01
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, and investigate_database, each enforcing read-only access at the tool boundary
    • New QuerySafetyService validates queries against an allow list (SELECT, SHOW, EXPLAIN, WITH for SQL; SELECT, SHOW for 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 TelemetryService logs tool-boundary events (request id, query id, duration, row count, truncation, success/error code) to a local telemetry file
  • Enterprise/Core Retention Policy Support: Added database retention policy configuration for Core/Enterprise instances via update_database tool
    • New method updateDatabaseCoreEnterprise() in DatabaseManagementService for PUT /api/v3/configure/database
    • Support for retentionPeriod parameter on Core/Enterprise (sent as retention_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

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_database from "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

Choose a tag to compare

@jstirnaman jstirnaman released this 18 May 17:39
bd0097d

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, and execute_query, gated behind INFLUX_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.yml for local Core testing with preconfigured admin token
  • Version consistency CI check: Verifies package.json, config.ts, and CHANGELOG.md versions 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.message for 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.dirname require v20.11+)
  • @modelcontextprotocol/sdk updated from ^1.12.1 to 1.27.1
  • @influxdata/influxdb3-client updated from ^1.1.0 to 1.4.0
  • All dependencies updated to latest within semver ranges
  • Version aligned across package.json, config.ts, and CHANGELOG.md (previously divergent)
  • npm package renamed from influxdb-mcp-server to @influxdata/influxdb3-mcp-server
  • Scoped package configured for public publish (publishConfig.access: "public")
  • All dependencies pinned to exact versions (no caret ranges)