Repository navigation
v2.0.0
Strut Stack SQL v2.0.0
MCP SQL server with pluggable drivers — Postgres, MySQL, SQLite, DuckDB
(embedded analytics), SQL Server, ClickHouse — plus a policy engine, tool
profiles, and token thrift. All 29 Project Tracker V2 tasks (8 feat/v2 +
21 R1–R4) are complete, each with a merge/PR/tag URL as evidence in Notion.
What is new (per PR, verified)
- PR #1 (feat/v2 → main, merged 2026-11-04 08:54 WIB, 9ff62ca): 18
R1/R2/R4 tasks — the v2 foundation (pluggable drivers, tool profiles,
schema intelligence, query advisor, OAuth 2.1 + policy engine, measured
gates). - PR #2 (DuckDB R3-01 → main, merged 2026-11-04 21:13 WIB, 7f69c9a):
embedded DuckDB driver (the real C++ engine via official Rust bindings),
AST guard blocking read_csv/read_text/query_table/ATTACH/INSTALL/LOAD,
normalized EXPLAIN/EXPLAIN ANALYZE. Gates: 403 tests pass, conformance
51/0, CI all required PASS. - PR #3 (ClickHouse R3-03 → main, merged 2026-11-05 02:14 WIB, 63b650c):
ClickHouse HTTP driver (reqwest, pooled client), clickhouse:// and
clickhouses:// URLs, X-ClickHouse-User / X-ClickHouse-Key auth,
JSONCompactEachRowWithNamesAndTypes, readonly=1 + max_execution_time,
typed ? → {pN:Type} parameters, ClickHouseDialect guard + denylist,
backtick DDL + MODIFY COLUMN + EXPLAIN PLAN. Gates: fmt 0, clippy 1.99 0,
workspace tests 0, real-DB integration 5/5, conformance 51/0/3,
audit 0. CI run 41892311748 all required PASS. - PR #4 (SQL Server R3-02 → main, merged 2026-11-05 08:08 WIB, a5a687b):
SQL Server driver (Tiberius 0.13/Rustls, sqlserver:// + mssql:// alias,
trust_server_certificate + encrypt, TOP/OFFSET FETCH, EXEC/SET/USE
denylist, full-AST policy notes). Gates: fmt 0, clippy 1.99 0, workspace
tests 0, live driver 6/6, live root 5/5, BUILD 0, conformance 51/0/3,
audit 0. CI run 41945395064 all required PASS.
Breaking changes
- Version 2.0.0; there is NO V1 runtime compatibility layer.
- The mcp-sql-rust alias was removed (per PR #1).
- jsonwebtoken patch: crypto-bigint 0.5.5 → 0.7.10 via [patch.crates-io]
to upstream PR #551 rev 3739623a (not yet merged upstream) — fixing
RUSTSEC-2026-0387, with NO audit ignore. - DuckDB, ClickHouse, SQL Server: additive, no breaking changes.
Honest limitations
- DuckDB: row_cap limits decoded rows (not native materialization);
UUID/JSON parameters need explicit casts; :memory: read-only relies on
the guard. - ClickHouse: HTTP-only driver (not the native protocol); keyset treats
ClickHouse PKs as NOT unique; Binary → hex. - SQL Server: live verification ran only against a disposable SQL Server
2022 container, not production SQL Server; no production install or
deploy is included in this release. - Still-open PRD gaps (not claimed done): full tools/list token
measurement, cursor pagination, further masking/row-filter policy,
approval + migration tools, doctor/migrate CLI, HTTP benchmark misses.
This release is the tag + notes. Production install/deploy needs a
separate go-ahead.
Release mechanics note
- PR #5 (release workflow fix → main, merged 2026-11-05 08:53 WIB,
b6b0872): workflow-only, no product code changed. It unblocked this
release after run 41947059951 failed two Linux builds: Linux x64 size
budget 16,000,000 → 50,000,000 (the v2 binary embeds DuckDB, ~45MB) and
Linux arm64 builds moved from the cross-rs image (whose g++ lacks C++
headers) to Ubuntu host cross toolchain. The tag points to
b6b0872; product code is identical to a5a687b plus this workflow fix.