Repository navigation
Releases
Releases · Strazahq/adaptive-pg-mcp
v0.1.1
Added
- An SPDX SBOM of each release binary, which SHA256SUMS lists and a signed
attestation binds to its archive, so a scanner can check a deployed
binary for new vulnerabilities without the source. - An SPDX SBOM of the container image, stored with it in the registry.
- A dry run of the release workflow, started by hand with a tag, that
builds and scans a version without signing or publishing anything.
v0.1.0
Added
- The
serve,checkandtokencommands.checkruns the start checks
without serving, so a catalog repository can run it in CI. - Streamable HTTP at
/mcpwith a bearer token on every request, and stdio
with the token inADAPTIVE_PG_MCP_TOKEN, checked once at start. - HTTPS with
tls, which serves a renewed certificate without a restart.
Plain HTTP beyond loopback needsallow_plain_http: true, for a proxy or
service mesh that encrypts the traffic. - Standalone mode, where access.yaml names the tools, databases and tables
of each caller, and straza mode, where the Straza gateway decides per
agent. listing_tokens_sha256in straza mode, for the token Straza sends only to
list_databases. A listing token sees and calls that tool alone, so a
leaked one cannot reach data.- The built-in tools
list_schemas,list_tables,describe_table,
read_rows,aggregate,insert_rows,update_rowsanddelete_rows. - Free SQL as
query_sql,execute_sqlandexecute_ddl, split by what
Postgres reports about the statement, never by its text, so a policy can
hold changes of structure for approval on their own. - Caps on the rows, bytes and time of each call and on the rows a write
changes. A write over its cap rolls back, with triggers and cascades
counted. - The catalog, which turns reviewed SQL in
.sqlfiles into named tools
with typed parameters through a tools.yaml per folder. - Start checks that refuse to serve on a superuser login while free SQL is
on, dblink or postgres_fdw, logins of one database that reach different
databases, a login that cannot connect, or a TLS pair that does not load. - A grants check of each catalog statement at start, through EXPLAIN on
its own login, so a missing grant stops the start instead of failing the
first call. - The database id check, which refuses a call on a database dropped and
created again under the same name until Straza lists it again. list_databases, which lists the configured databases with an id that
joins the cluster's system identifier, the database OID and the config
name.- A container image at
ghcr.io/strazahq/adaptive-pg-mcpfor linux/amd64
and linux/arm64, on distroless static as a non-root user. - Release archives for Linux, macOS and Windows on amd64 and arm64, with a
SHA256SUMSfile and build provenance attestations. - Docker Compose and Kubernetes examples. The Kubernetes one takes its TLS
pair from cert-manager. - The direct dependencies github.com/modelcontextprotocol/go-sdk v1.8.0
(MIT and Apache-2.0), github.com/google/jsonschema-go v0.4.3 (MIT),
github.com/jackc/pgx/v5 v5.11.0 (MIT) and go.yaml.in/yaml/v3 v3.0.5 (MIT
and Apache-2.0). govulncheck and osv-scanner find no known vulnerability
in them.