chore(deps): update dependency mcp-clickhouse to v0.4.1 - #527
chore(deps): update dependency mcp-clickhouse to v0.4.1#527renovate[bot] wants to merge 1 commit into
Conversation
|
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:
For more information about GitHub Code Scanning, check out the documentation. |
🔒 MCP Security Scan Results✅ mcp-clickhouse
Summary: Scanned 1 MCP server(s), all passed security checks. ✅ |
a8beb02 to
24e0363
Compare
🛡️ Skill Security Scan Results |
5d053ce to
24e0363
Compare
|
@renovatebot rebase |
24e0363 to
ba0c8dd
Compare
Triage: build-containers blocked by genuine upstream CVEsLocal Grype scan (DB 2026-04-27) of the 0.3.0 image surfaces these HIGH/CRITICAL findings (severity-cutoff: high, only-fixed: true):
These are genuine upstream CVEs in Recommendation: Hold this bump until upstream ClickHouse/mcp-clickhouse widens its fastmcp constraint to allow 3.x. |
f9a6ae0 to
b6aa1a2
Compare
1d64991 to
81caeb0
Compare
81caeb0 to
7062f6d
Compare
60a14a8 to
ca9e67e
Compare
…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>
ca9e67e to
7877282
Compare
1a65d27 to
2957687
Compare
d64bbc5 to
6475655
Compare
6475655 to
f24dc1c
Compare
…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>
|
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
Because 0.2.0 leaves it open,
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 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 Please verify after adding the constraint rather than assuming: build the image and run Context: #668 (closed, mechanism delivered), #830, and the neo4j write-up in #528. |
This PR contains the following updates:
0.2.0→0.4.1Release Notes
ClickHouse/mcp-clickhouse (mcp-clickhouse)
v0.4.1Compare Source
Changed
v0.4.0Compare Source
Added
FASTMCP_SERVER_AUTHenvironment variable (e.g. Azure Entra, Google, GitHub, WorkOS). Static token, FastMCP OAuth, and disabled mode are now mutually exclusive; configure exactly one. (#171)ghcr.io/clickhouse/mcp-clickhouse:vX.Y.Z,:X.Y, and:latest.Changed
/healthendpoint 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 toOK/ generic error strings to avoid leaking ClickHouse version information or connection exception details; underlying errors are logged server-side.Fixed
run_queryandrun_chdb_select_querytools now await their thread-pool futures asynchronously, so concurrent tool calls are served while a slow query is in flight. (#128)v0.3.0Compare Source
Added
CLICKHOUSE_SNIenvironment variable for connections behind proxies or load balancers. (#127)CLICKHOUSE_WRITE_ACCESSenvironment variable, with built-in DROP and TRUNCATE protection. (#93)CLICKHOUSE_MCP_MIDDLEWAREenvironment variable for hooking into the MCP server lifecycle. Includes an example middleware module. (#114)Configuration
📅 Schedule: (UTC)
* 0-3 * * 1)🚦 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.
This PR was generated by Mend Renovate. View the repository job log.