Skip to content

Commit bd0097d

Browse files
authored
Merge pull request #30 from influxdata/release/v1.3.0
## Release v1.3.0 This is the first official release under the @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) — 10 tests verifying 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**: 7 tests with recorded error fixtures from live Core and Cloud Serverless covering JSON, plain-text, and `{code, message}` error formats - **CI workflow**: GitHub Actions with protocol tests on every PR, integration tests against Core via Docker, and Cloud Serverless tests via GitHub environment secrets - **Docker test infrastructure**: `docker-compose.test.yml` for local Core testing with preconfigured admin token - **Version consistency CI check**: Fails if `package.json`, `config.ts`, and `CHANGELOG.md` versions disagree - **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) surfaced in all 4 services - Query error handler now checks `data.message` for Cloud Serverless `{code, message}` JSON errors - Query error handler extraction order aligned with other services (`data.message` before `data.error`) ### Changed - npm package renamed from `influxdb-mcp-server` to `@influxdata/influxdb3-mcp-server` - Minimum Node.js version raised to v20.11 (Node 18 is EOL) - `@modelcontextprotocol/sdk` updated from `^1.12.1` to `1.27.1` - All dependencies updated and pinned to exact versions (no caret ranges) - Version aligned to 1.3.0 across `package.json`, `config.ts`, and `CHANGELOG.md` ## Verified against live instances | Target | Tests | Result | |---|---|---| | Protocol (no InfluxDB) | 10 protocol + 7 error-path unit | All pass | | InfluxDB 3 Core (Docker) | 3 happy-path + 2 error-path | All pass | | InfluxDB Cloud Serverless | 3 happy-path | All pass | ## PRs included - #29 — E2E test suite, CLAUDE.md, Claude Code skills (merged) - #31 — fix: add data.message check to query error handler, add error-path tests (merged) - #24 — fix(query): surface plain-text error responses from InfluxDB Core - #20 — Bump axios from 1.12.2 to 1.13.5 - #10 — Bump js-yaml from 4.1.0 to 4.1.1 - #26 — Bump flatted from 3.3.3 to 3.4.2 - Dependency updates within semver ranges, then pinned to exact versions - Version alignment to 1.3.0 - npm package rename to `@influxdata/influxdb3-mcp-server` - CI workflow with version check, Core integration, and Cloud Serverless integration
2 parents 9d29c5c + 3cad1b4 commit bd0097d

16 files changed

Lines changed: 1094 additions & 794 deletions

.claude/skills/build-run-core-enterprise/references/mcp-client-configs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ to npm first:
3636
"mcpServers": {
3737
"influxdb": {
3838
"command": "npx",
39-
"args": ["-y", "influxdb-mcp-server"],
39+
"args": ["-y", "@influxdata/influxdb3-mcp-server"],
4040
"env": {
4141
"INFLUX_DB_INSTANCE_URL": "http://localhost:8181/",
4242
"INFLUX_DB_TOKEN": "<YOUR_TOKEN>",

.github/workflows/ci.yml

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ on:
55
branches: [main]
66
pull_request:
77
branches: [main]
8+
workflow_dispatch:
89

910
jobs:
1011
check-versions:
@@ -101,7 +102,38 @@ jobs:
101102
if: always()
102103
run: docker stop influxdb3-core && docker rm influxdb3-core
103104

105+
test-integration-cloud-serverless:
106+
name: Integration tests (InfluxDB Cloud Serverless)
107+
runs-on: ubuntu-latest
108+
# Skip on forked PRs — environment secrets (INFLUXDB_CLOUD_URL/TOKEN) are
109+
# not exposed to fork runs, which would fail on empty credentials.
110+
if: |
111+
github.repository_owner == 'influxdata' &&
112+
(github.event_name == 'push' ||
113+
github.event.pull_request.head.repo.full_name == github.repository)
114+
environment: cloud-serverless
115+
steps:
116+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
117+
with:
118+
persist-credentials: false
119+
120+
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
121+
with:
122+
node-version: "22"
123+
cache: "npm"
124+
125+
- run: npm ci
126+
- run: npm run build
127+
128+
- name: Integration tests
129+
run: npm run test:integration
130+
env:
131+
INFLUX_TEST_ENABLED: "true"
132+
INFLUX_DB_INSTANCE_URL: ${{ secrets.INFLUXDB_CLOUD_URL }}
133+
INFLUX_DB_TOKEN: ${{ secrets.INFLUXDB_CLOUD_TOKEN }}
134+
INFLUX_DB_PRODUCT_TYPE: "cloud-serverless"
135+
104136
# Future: test-integration-enterprise
105137
# Requires Enterprise Docker image and license key.
106138
# Gate with: if: github.repository_owner == 'influxdata'
107-
# Pass license via: secrets.INFLUXDB_ENTERPRISE_LICENSE
139+
# Environment: enterprise (with INFLUXDB_ENTERPRISE_LICENSE secret)

CHANGELOG.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,35 @@ All notable changes to the official InfluxDB MCP Server will be documented in th
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [1.3.0] - 2026-03-24
8+
## [1.3.0] - 2026-05-18
99

1010
### Added
1111

1212
- **E2E test suite**: Protocol compliance tests (vitest) that verify server startup, MCP handshake, tool/resource/prompt registration, and error handling — no InfluxDB required
1313
- **Integration tests**: Live InfluxDB tests for `health_check`, `list_databases`, and `execute_query`, gated behind `INFLUX_TEST_ENABLED`
14-
- **CI workflow**: GitHub Actions with protocol tests on every PR and integration tests against InfluxDB 3 Core via Docker
14+
- **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
15+
- **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
1516
- **Docker test infrastructure**: `docker-compose.test.yml` for local Core testing with preconfigured admin token
17+
- **Version consistency CI check**: Verifies `package.json`, `config.ts`, and `CHANGELOG.md` versions match on every PR
1618
- **CLAUDE.md**: Architecture overview and codebase conventions for Claude Code
1719
- **Claude Code skills**: Build/run workflow for Core/Enterprise and testing workflow
1820

1921
### Fixed
2022

2123
- Server-level error catch now sets `isError: true`, consistent with handler-level error responses
24+
- 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"
25+
- Query error handler now checks `data.message` for Cloud Serverless `{code, message}` JSON error format, matching the other 3 services
2226

2327
### Changed
2428

2529
- Minimum Node.js version raised to v20.11 (Node 18 is EOL; vitest 4.x and `import.meta.dirname` require v20.11+)
26-
- `@modelcontextprotocol/sdk` updated from `^1.12.1` to `^1.27.1`
30+
- `@modelcontextprotocol/sdk` updated from `^1.12.1` to `1.27.1`
31+
- `@influxdata/influxdb3-client` updated from `^1.1.0` to `1.4.0`
32+
- All dependencies updated to latest within semver ranges
33+
- Version aligned across `package.json`, `config.ts`, and `CHANGELOG.md` (previously divergent)
34+
- npm package renamed from `influxdb-mcp-server` to `@influxdata/influxdb3-mcp-server`
35+
- Scoped package configured for public publish (`publishConfig.access: "public"`)
36+
- All dependencies pinned to exact versions (no caret ranges)
2737

2838
## [1.2.0] - 2025-11-05
2939

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# InfluxDB MCP Server
22

3+
[![CI](https://github.com/influxdata/influxdb3_mcp_server/actions/workflows/ci.yml/badge.svg)](https://github.com/influxdata/influxdb3_mcp_server/actions/workflows/ci.yml)
4+
<!-- [![Unit Tests](https://github.com/influxdata/influxdb3_mcp_server/actions/workflows/unit.yml/badge.svg)](https://github.com/influxdata/influxdb3_mcp_server/actions/workflows/unit.yml) -->
5+
<!-- [![Lint](https://github.com/influxdata/influxdb3_mcp_server/actions/workflows/lint.yml/badge.svg)](https://github.com/influxdata/influxdb3_mcp_server/actions/workflows/lint.yml) -->
6+
[![Trust Score](https://archestra.ai/mcp-catalog/api/badge/quality/influxdata/influxdb3_mcp_server)](https://archestra.ai/mcp-catalog/influxdata__influxdb3_mcp_server)
7+
38
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.
49

510
---
@@ -200,7 +205,7 @@ See corresponding `env.<instancetype>.example` for examples and detailed info.
200205
"mcpServers": {
201206
"influxdb": {
202207
"command": "npx",
203-
"args": ["-y", "@modelcontextprotocol/server-influxdb"],
208+
"args": ["-y", "@influxdata/influxdb3-mcp-server"],
204209
"env": {
205210
"INFLUX_DB_INSTANCE_URL": "http://localhost:8181/",
206211
"INFLUX_DB_TOKEN": "<YOUR_INFLUXDB_TOKEN>",

example-npx.mcp.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"mcpServers": {
33
"influxdb": {
44
"command": "npx",
5-
"args": ["-y", "@modelcontextprotocol/server-influxdb"],
5+
"args": ["-y", "@influxdata/influxdb3-mcp-server"],
66
"env": {
77
"INFLUX_DB_INSTANCE_URL": "http://localhost:8086/",
88
"INFLUX_DB_TOKEN": "<YOUR_INFLUXDB_OPERATOR_TOKEN>",

0 commit comments

Comments
 (0)