Skip to content

Releases: gizmodata/gizmosql-mcp

v0.4.5

Choose a tag to compare

@github-actions github-actions released this 10 Sep 21:33

Fixed

  • Hosted HTTP transport with OAuth: the documented scope setting requested
    only the API scope, so Microsoft Entra ID issued no refresh token and Claude
    lost the connector as soon as the access token expired (about an hour), with
    no way to re-authorize mid-conversation. The README, chart and deployment
    template now advertise offline_access (with openid profile email)
    alongside the API scope, and the server warns at startup when
    GIZMOSQL_MCP_OAUTH_SCOPES lacks it.
  • Rejected bearer tokens (401) are now logged with the reason, as 403s already
    were, so an expired-token loop is visible in the pod logs.

Container image: ghcr.io/gizmodata/gizmosql-mcp:0.4.5 (linux/amd64, linux/arm64)
Helm chart: oci://ghcr.io/gizmodata/charts/gizmosql-mcp --version 0.4.5

v0.4.4

Choose a tag to compare

@github-actions github-actions released this 09 Sep 22:08

Changed

  • Requires @gizmodata/gizmosql-client >= 2.2.1, which bundles gizmosql-adbc
    v2.0.13: parameterized DDL/DML sent through execute_statement with bound
    parameters now executes immediately instead of running lazily on the server,
    where it could be silently lost or interrupted by the client's own cancel.

Container image: ghcr.io/gizmodata/gizmosql-mcp:0.4.4 (linux/amd64, linux/arm64)
Helm chart: oci://ghcr.io/gizmodata/charts/gizmosql-mcp --version 0.4.4

v0.4.3

Choose a tag to compare

@github-actions github-actions released this 09 Sep 17:54

Added

  • Integration coverage for the hosted HTTP transport (test/integration/sessions.test.ts,
    runs in the existing CI job against the GizmoSQL service container and a
    throwaway OpenID Connect issuer): per-user isolation of use_schema,
    use_connection and unqualified name resolution under concurrent bursts,
    idle-session expiry end to end, and a sweep over every registered tool that
    checks for structured content, the version stamp, and conformance to the
    declared output schema.
  • Unit tests for login_sso (test/unit/sso.test.ts) and for the session
    reset notice.

Changed

  • When a user's HTTP session has expired and a new one starts, the first tool
    result says so (a note in the text and a session_reset field in the
    structured content) instead of silently applying the defaults.
  • GIZMOSQL_MCP_SESSION_IDLE_SECONDS accepts values down to 1 second (was 30).

Container image: ghcr.io/gizmodata/gizmosql-mcp:0.4.3 (linux/amd64, linux/arm64)
Helm chart: oci://ghcr.io/gizmodata/charts/gizmosql-mcp --version 0.4.3

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 09 Sep 15:38

Changed

  • list_schemas never lists the per-backend temporary schemas of an attached
    Postgres database (pg_temp_N, pg_toast_temp_N), even with
    include_system: true. They hold nothing usable, there is one pair per
    Postgres backend, and a busy attachment exposes hundreds of them. The
    result reports how many were skipped as hidden_temp_schemas.

Container image: ghcr.io/gizmodata/gizmosql-mcp:0.4.2 (linux/amd64, linux/arm64)
Helm chart: oci://ghcr.io/gizmodata/charts/gizmosql-mcp --version 0.4.2

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 09 Sep 15:23

Fixed

  • Calling run_query or execute_statement with fewer (or more) values than
    the statement has placeholders is now rejected before the query is sent,
    with a message that states both counts, instead of surfacing DuckDB's
    "Values were not provided for the following prepared statement parameters"
    wrapped in Arrow and Flight SQL transport noise.
  • Server errors are shown without the driver's wrappers (Arrow Error: C Data interface error: [FlightSQL] An execution error has occurred: and the
    trailing (Unknown; DoGet: endpoint 0: [])), whichever tool raised them.
  • The note about the LIMIT wrapper offsetting line numbers is only added to
    errors that actually cite a line.

Changed

  • list_schemas explains that DuckDB keeps information_schema and
    pg_catalog in the system catalog only, so include_system does not add
    schemas to a user catalog.

Container image: ghcr.io/gizmodata/gizmosql-mcp:0.4.1 (linux/amd64, linux/arm64)
Helm chart: oci://ghcr.io/gizmodata/charts/gizmosql-mcp --version 0.4.1

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 09 Sep 14:35

Added

  • OAuth for the Streamable HTTP transport. With GIZMOSQL_MCP_OAUTH_ISSUER and
    GIZMOSQL_MCP_PUBLIC_URL set, the server acts as an OAuth 2.1 resource server
    for any OpenID Connect provider that issues JWT access tokens (Microsoft Entra
    ID, Okta, Auth0, Keycloak, Cognito, Clerk): it discovers the provider's JWKS,
    verifies issuer, audience, signature and expiry on every request, serves the
    RFC 9728 protected-resource metadata at /.well-known/oauth-protected-resource
    (and the /mcp-suffixed form), and answers 401 with the WWW-Authenticate
    challenge Claude.ai uses to start the sign-in flow. Optional
    GIZMOSQL_MCP_OAUTH_AUTHORIZED_EMAILS restricts callers to an email allowlist
    (403), GIZMOSQL_MCP_OAUTH_AUDIENCE accepts several audiences, and
    GIZMOSQL_MCP_OAUTH_JWKS_URI skips discovery. The caller's token is never
    forwarded: GizmoSQL is reached with the configured service credentials.
  • Per-user sessions over HTTP. Each authenticated user gets their own
    GizmoSQL connections, current connection and search path, so use_schema,
    USE and use_connection no longer leak between people sharing one
    server. Sessions close after GIZMOSQL_MCP_SESSION_IDLE_SECONDS (default
    1800) without a request or when GIZMOSQL_MCP_MAX_SESSIONS (default 200)
    is reached, least recently used first. server_info reports
    session_scope, session_started and session_idle_timeout_seconds.
  • Every JSON-RPC request over HTTP is logged with the authenticated caller and
    the tool or resource it touched, and server_info reports authenticated_user.
  • A container image for the HTTP transport (ghcr.io/gizmodata/gizmosql-mcp,
    linux/amd64 and linux/arm64) and a Helm chart
    (oci://ghcr.io/gizmodata/charts/gizmosql-mcp), both published by the release
    workflow with versions locked to the npm package.

Changed

  • GIZMOSQL_MCP_BEARER_TOKEN and OAuth are mutually exclusive; configuring both
    is a startup error. The 401 for a static token now carries a JSON body.
  • login_sso is only registered on the stdio transport; over HTTP it would
    open a browser on the server.

Container image: ghcr.io/gizmodata/gizmosql-mcp:0.4.0 (linux/amd64, linux/arm64)
Helm chart: oci://ghcr.io/gizmodata/charts/gizmosql-mcp --version 0.4.0

v0.3.7

Choose a tag to compare

@github-actions github-actions released this 08 Sep 22:57

Fixed

  • explain_query appeared to return only the version envelope in 0.3.6:
    it was the one tool without structured content, and hosts that show
    structured content in preference to text saw nothing else. It now returns
    physical_plan and sections as structured JSON alongside the Markdown.

Added

  • Error results end with the server name and version, so the build is
    identifiable exactly when a bug report needs it. (Errors cannot carry
    structured content: clients validate it against run_query's output
    schema even for errors.)

v0.3.6

Choose a tag to compare

@github-actions github-actions released this 08 Sep 22:48

Added

  • Every successful tool result now includes mcp_server_version in its
    structured content (and run_query's output schema). Claude Desktop shows
    structured content to the model but not _meta, so the version added in
    0.3.4 was invisible there.

v0.3.5

Choose a tag to compare

@github-actions github-actions released this 08 Sep 22:38

Fixed

  • describe_table failed outright in 0.3.4 when the one-row estimate probe
    was refused (GizmoSQL's system-managed instrumentation catalog is
    admin-only). A refused probe now leaves estimated_rows as null.

Added

  • The schema-dialect unit test now compiles every advertised tool schema
    with a 2020-12-only Ajv validator, the same check that rejected
    run_query in Claude Desktop, with a draft-07 control that must fail.

v0.3.4

Choose a tag to compare

@github-actions github-actions released this 08 Sep 22:30

Changed

  • list_schemas hides system schemas (information_schema, pg_catalog,
    pg_toast, pg_temp_*, pg_toast_temp_*) by default and reports how
    many were hidden. Attached Postgres databases expose hundreds of
    pg_temp_N schemas, which made the unfiltered call unusable. Pass
    include_system: true to list them.

Added

  • Every tool result carries _meta.gizmosql_mcp with the server name and
    version, so a client can tell which build answered without calling
    server_info.

Fixed

  • describe_table no longer reports estimated_rows: 0 for populated
    tables DuckDB has no statistics for (attached Postgres catalogs). A
    one-row probe turns that into null (unknown) when data exists.