Skip to content

chore(deps): update dependency mcp-clickhouse to v0.4.1 - #527

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/mcp-clickhouse-0.x
Open

chore(deps): update dependency mcp-clickhouse to v0.4.1#527
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/mcp-clickhouse-0.x

Conversation

@renovate

@renovate renovate Bot commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
mcp-clickhouse 0.2.00.4.1 age confidence

Release Notes

ClickHouse/mcp-clickhouse (mcp-clickhouse)

v0.4.1

Compare Source

Changed
  • Added FastMCP server-level instructions that point agents to official ClickHouse Agent Skills (replacing tool-based advisory guidance).

v0.4.0

Compare Source

Added
  • Support for FastMCP OAuth/OIDC auth providers on HTTP/SSE transports via the FASTMCP_SERVER_AUTH environment variable (e.g. Azure Entra, Google, GitHub, WorkOS). Static token, FastMCP OAuth, and disabled mode are now mutually exclusive; configure exactly one. (#​171)
  • Official multi-arch Docker images published to GitHub Container Registry on each release: ghcr.io/clickhouse/mcp-clickhouse:vX.Y.Z, :X.Y, and :latest.
Changed
  • /health endpoint is now unauthenticated across all auth modes (previously gated only under static-token mode, which was asymmetric and incompatible with redirect-based OAuth providers). Response bodies trimmed to OK / generic error strings to avoid leaking ClickHouse version information or connection exception details; underlying errors are logged server-side.
Fixed
  • Tool responses now return JSON-encoded strings, avoiding MCP protocol validation errors on successful queries. (#​154)
  • Long-running queries no longer block other tool calls. The MCP-facing run_query and run_chdb_select_query tools now await their thread-pool futures asynchronously, so concurrent tool calls are served while a slow query is in flight. (#​128)

v0.3.0

Compare Source

Added
  • SNI override support via CLICKHOUSE_SNI environment variable for connections behind proxies or load balancers. (#​127)
  • Lazy-load chdb to avoid ~80-100 MB memory overhead when the feature is disabled. (#​144)
  • Made chdb an optional dependency for Windows compatibility. (#​145)
  • Optional write access mode via CLICKHOUSE_WRITE_ACCESS environment variable, with built-in DROP and TRUNCATE protection. (#​93)
  • Client config override support through MCP Context session states, enabling dynamic connection switching at runtime. (#​115)
  • Custom middleware injection via CLICKHOUSE_MCP_MIDDLEWARE environment variable for hooking into the MCP server lifecycle. Includes an example middleware module. (#​114)

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Between 12:00 AM and 03:59 AM, only on Monday (* 0-3 * * 1)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@github-actions

github-actions Bot commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

🔒 MCP Security Scan Results

✅ mcp-clickhouse

  • Status: Passed
  • Tools scanned: 3
  • Result: No security issues detected

Summary: Scanned 1 MCP server(s), all passed security checks. ✅

@renovate
renovate Bot force-pushed the renovate/mcp-clickhouse-0.x branch from a8beb02 to 24e0363 Compare April 21, 2026 08:20
@github-actions

Copy link
Copy Markdown
Contributor

🛡️ Skill Security Scan Results

⚠️ No skills were scanned in this PR.

@rdimitrov
rdimitrov force-pushed the renovate/mcp-clickhouse-0.x branch from 5d053ce to 24e0363 Compare April 21, 2026 14:03
@rdimitrov

Copy link
Copy Markdown
Member

@renovatebot rebase

@renovate
renovate Bot force-pushed the renovate/mcp-clickhouse-0.x branch from 24e0363 to ba0c8dd Compare April 21, 2026 15:32
@JAORMX

JAORMX commented Apr 27, 2026

Copy link
Copy Markdown
Collaborator

Triage: build-containers blocked by genuine upstream CVEs

Local Grype scan (DB 2026-04-27) of the 0.3.0 image surfaces these HIGH/CRITICAL findings (severity-cutoff: high, only-fixed: true):

Package Installed GHSA Severity Fixed in
fastmcp 2.14.7 GHSA-vv7q-7jx5-f767 Critical 3.2.0
fastmcp 2.14.7 GHSA-rww4-4w9c-7733 High 3.2.0

These are genuine upstream CVEs in fastmcp, not false positives. The fix requires bumping fastmcp to 3.2.0, which is blocked by mcp-clickhouse's own constraint fastmcp<3.0.0,>=2.0.0.

Recommendation: Hold this bump until upstream ClickHouse/mcp-clickhouse widens its fastmcp constraint to allow 3.x.

@renovate
renovate Bot force-pushed the renovate/mcp-clickhouse-0.x branch from f9a6ae0 to b6aa1a2 Compare April 30, 2026 12:33
@renovate
renovate Bot force-pushed the renovate/mcp-clickhouse-0.x branch 2 times, most recently from 1d64991 to 81caeb0 Compare May 14, 2026 17:57
@renovate
renovate Bot force-pushed the renovate/mcp-clickhouse-0.x branch from 81caeb0 to 7062f6d Compare June 3, 2026 20:00
@renovate renovate Bot changed the title chore(deps): update dependency mcp-clickhouse to v0.3.0 chore(deps): update dependency mcp-clickhouse to v0.4.0 Jun 3, 2026
@renovate
renovate Bot force-pushed the renovate/mcp-clickhouse-0.x branch 2 times, most recently from 60a14a8 to ca9e67e Compare July 3, 2026 10:15
samuv pushed a commit that referenced this pull request Jul 3, 2026
…n spec.yaml

Renovate version bumps fail the build-containers Grype gate when the bumped
package pins or caps a transitive dependency to a vulnerable version. Add an
optional dependency-override mechanism to the spec.yaml schema, plumbed into the
generated Dockerfile.

- npx: spec.overrides ([]{package, version, reason}) is injected as an npm
  "overrides" block in the generated package.json before the npm install step.
- uvx: spec.constraints ([]{spec, reason}) is written to a uv overrides
  requirements file and passed to "uv tool install --overrides".

Both injection points match the install step by content (not line number) so
they stay robust to toolhive template formatting. Every entry requires a
non-empty reason (validation fails otherwise) so the justification for
circumventing an upstream pin is auditable in-repo.

Verified end-to-end against the CI build + Grype recipe:
- #469 @brightdata/mcp 2.9.5 + override @modelcontextprotocol/sdk 1.26.0:
  resolves to SDK 1.26.0, grype --fail-on high --only-fixed passes.
- #527 mcp-clickhouse 0.3.0 + constraint fastmcp>=3.2.0: fastmcp 3.4.0,
  import mcp_clickhouse OK, grype passes.

Refs #668

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@renovate
renovate Bot force-pushed the renovate/mcp-clickhouse-0.x branch from ca9e67e to 7877282 Compare July 8, 2026 07:53
@renovate
renovate Bot force-pushed the renovate/mcp-clickhouse-0.x branch 2 times, most recently from 1a65d27 to 2957687 Compare July 17, 2026 17:52
@renovate renovate Bot changed the title chore(deps): update dependency mcp-clickhouse to v0.4.0 chore(deps): update dependency mcp-clickhouse to v0.4.1 Jul 17, 2026
@renovate
renovate Bot force-pushed the renovate/mcp-clickhouse-0.x branch 3 times, most recently from d64bbc5 to 6475655 Compare July 29, 2026 06:55
@renovate
renovate Bot force-pushed the renovate/mcp-clickhouse-0.x branch from 6475655 to f24dc1c Compare August 3, 2026 15:02
danbarr added a commit that referenced this pull request Aug 5, 2026
…n spec.yaml (#669)

* feat(dockhand): support transitive dependency overrides/constraints in spec.yaml

Renovate version bumps fail the build-containers Grype gate when the bumped
package pins or caps a transitive dependency to a vulnerable version. Add an
optional dependency-override mechanism to the spec.yaml schema, plumbed into the
generated Dockerfile.

- npx: spec.overrides ([]{package, version, reason}) is injected as an npm
  "overrides" block in the generated package.json before the npm install step.
- uvx: spec.constraints ([]{spec, reason}) is written to a uv overrides
  requirements file and passed to "uv tool install --overrides".

Both injection points match the install step by content (not line number) so
they stay robust to toolhive template formatting. Every entry requires a
non-empty reason (validation fails otherwise) so the justification for
circumventing an upstream pin is auditable in-repo.

Verified end-to-end against the CI build + Grype recipe:
- #469 @brightdata/mcp 2.9.5 + override @modelcontextprotocol/sdk 1.26.0:
  resolves to SDK 1.26.0, grype --fail-on high --only-fixed passes.
- #527 mcp-clickhouse 0.3.0 + constraint fastmcp>=3.2.0: fastmcp 3.4.0,
  import mcp_clickhouse OK, grype passes.

Refs #668

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(dockhand): harden dependency-override injection against template drift

The injection anchors are matched against toolhive's generated Dockerfile,
but the tests only exercised hand-written samples that mirror it, so drift
in the real template would pass tests and silently ship an image with no
overrides applied.

- Match the uvx install step on the bare "uv tool install" verb instead of
  requiring the quoted package spec to follow immediately. toolhive's
  template conditionally emits its own flags in between (RuntimeConfig
  .BuildWith renders as "--with '<spec>'"), which the old anchor missed
  entirely.
- Parse the package.json payload toolhive emits and add the overrides key
  to it, rather than rebuilding the file from hardcoded name/version
  constants. Any other field toolhive puts there is now preserved instead
  of silently dropped.
- Add tests that inject into Dockerfiles generated by the pinned toolhive
  version, covering the uvx step both with and without build-time
  constraints. These fail on anchor drift; they catch the --with case the
  previous anchor could not.

* fix(mcp-scan): reapply uvx dependency overrides during the security scan

The security scan runs the package directly rather than the built image,
so it never saw the overrides injected into the Dockerfile and exercised
a different dependency set than the one that ships.

Pass spec.constraints through to the scanner as a uv overrides
requirements file (uv takes a file, not inline specifiers), written to a
temp file for the duration of the scan.

npx spec.overrides are not reapplied: npm honors "overrides" only from a
package.json it installs into, and the scan has no project directory.
That is safe for the intended use case, since swapping a vulnerable but
working dependency changes neither startup nor the tool surface being
analyzed, but log a note so a future startup-affecting override does not
fail confusingly.

* fix(adb-mysql-mcp-server): constrain mcp to <2 to fix broken build

adb-mysql-mcp-server depends on mcp[cli]>=1.8.0 with no upper bound.
mcp 2.0.0 removed the mcp.server.fastmcp module this server imports at
startup, breaking both the container build and the smoke test canary in
build-containers.yml.

This is also the first spec.yaml to exercise the override mechanism, so
CI now actually covers it end to end rather than only unit tests.

* fix(dockhand): quote override values interpolated into the Dockerfile

Override values were interpolated into RUN lines inside unescaped single
quotes. A PEP 508 requirement legitimately contains single quotes in an
environment marker, so

    fastmcp>=3.2.0; python_version < '3.14'

was written to the overrides file as

    fastmcp>=3.2.0; python_version < 3.14

which is no longer a valid marker. Anything following the quote also ran
as shell at image build time, so a spec value was able to execute
arbitrary commands during the build. The npm path had the same flaw via
the echoed package.json payload.

- Add shellSingleQuote and use it for both the uv override specs and the
  npm package.json payload, escaping embedded quotes as '\''.
- Reject control characters in override/constraint values. Quoting makes
  shell metacharacters inert, but a newline would still terminate the RUN
  instruction, and none of these fields has a legitimate use for one.
- Cover quoted markers, embedded quotes, and injection attempts. These
  execute the emitted line through a real shell and compare the file it
  writes, rather than assuming how the line parses.

* test(dockhand): extract repeated literals to satisfy goconst

The new test cases pushed "1.26.0" and "injection attempt" past
goconst's occurrence threshold, failing CI lint.

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Dan Barr <6922515+danbarr@users.noreply.github.com>
@danbarr

danbarr commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

This bump needs a constraint added, or it regresses the Grype gate. Flagging because the analysis in #668 no longer matches what these versions declare.

Upstream added a fastmcp cap between the version on main and the one here:

Version Declares
0.2.0 (current on main) fastmcp>=2.0.0, unbounded
0.4.1 (this PR) fastmcp<3.0.0,>=2.0.0

Because 0.2.0 leaves it open, main resolves fastmcp 3.4.6 today and passes the gate. Capping below 3 drops it to the 2.x line and re-exposes two advisories whose only fix is 3.2.0, with no 2.x backport:

So as it stands this makes the security posture worse rather than better.

Unlike the neo4j servers, this one is override-fixable. Add a constraint to uvx/mcp-clickhouse/spec.yaml to undo the cap:

spec:
  package: "mcp-clickhouse"
  version: "0.4.1"
  constraints:
    - spec: "fastmcp>=3.2.0"
      reason: |
        mcp-clickhouse 0.4.1 adds a fastmcp<3.0.0 cap that 0.2.0 did not have.
        GHSA-vv7q-7jx5-f767 (Critical) and GHSA-rww4-4w9c-7733 (High) are
        patched only at fastmcp 3.2.0 with no 2.x backport, so the cap excludes
        the only fix.

The reason this is safe here but not for the neo4j servers is worth stating explicitly, since the failure mode there was subtle. Those three pass stateless_http=True to the FastMCP constructor, which 3.x removed with a hard raise, so forcing 3.x gives an image that builds and imports and then cannot start. mcp-clickhouse constructs it as FastMCP(name=MCP_SERVER_NAME, auth=auth_provider) with no such kwarg, and it is already running fastmcp 3.4.6 in production on main, so 3.x compatibility is established by what ships rather than by inference.

Please verify after adding the constraint rather than assuming: build the image and run grype --fail-on high --only-fixed from the repo root so .grype.yaml applies, and confirm the scan still enumerates the tools. Note that "the package imports successfully" is not sufficient evidence on its own, which is what made the neo4j case look fixable when it was not.

Context: #668 (closed, mechanism delivered), #830, and the neo4j write-up in #528.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants