Skip to the content.

MCPg v0.8.0 — release notes

Released: 2026-08-19 Tool surface: 254 tools — the same ceiling as 0.7.1 for every existing deployment, unchanged unless you opt into something new. This release adds 2 new always-visible meta-tools behind the new, off-by-default MCPG_DYNAMIC_SESSION_INTENT flag, which raises the true all-flags-on maximal to 256 only when that flag is explicitly enabled; the default (read-only, nothing else set) surface stays at 186 either way. Tests: 2909 passed, 3 skipped in the full unit suite, plus contract snapshots, on this exact commit ahead of the tag; the full ci.yml matrix (lint, mypy, security audit, PG 14–19 + WarehousePG integration) passed on GitHub Actions. Runtime: Python 3.12–3.14 (requires-python >=3.12; CI/mypy target 3.14)

A 0.7.1 → 0.8.0 release: a MINOR bump — new opt-in behaviour, defaults unchanged. The headline is dynamic session intent (roadmap 22), which lets a deployment start a session with a small, focused tool surface and grow it on demand, instead of every session seeing the full read-only default of 186 tools up front.

New: the core session-intent preset

A sixth MCPG_SESSION_INTENT preset, "core", built from about.py’s curated headline tools rather than capability buckets. Setting MCPG_SESSION_INTENT=core on a default read-only deployment narrows the tool surface from 186 tools down to 12 — the ten headline schema-introspection and query-execution tools plus the two always-kept introspection tools. No new flag needed; this extends the existing, shipped session_intent.py static filter (roadmap 8.8) rather than replacing it.

New: opt-in dynamic session-intent growth

MCPG_DYNAMIC_SESSION_INTENT (default false): when set, a session starts at whatever MCPG_SESSION_INTENT already declares — or, if that’s left unset (its own default), the dynamic layer falls back to core specifically as its own starting point, rather than the unfiltered full surface an unset MCPG_SESSION_INTENT would otherwise mean. From there the session can grow its own visible tool surface at runtime — without a server restart, and without affecting any other concurrent session. Two new always-visible meta-tools:

Important: this is a visibility filter, not an authorization boundary. A tool absent from tools/list was always still callable via tools/call if a client already knew its name — that was true before this release too. MCPG_ACCESS_MODE (read-only / restricted / unrestricted) and the MCPG_ALLOW_* capability gates remain the real permission boundary, unaffected by either the static or dynamic session-intent layer. See the user guide’s “Dynamic session intent” section for the full model.

Off by default; adds the 2 meta-tools to the existing 254-tool ceiling (→ 256, the new all-flags-on maximal) only when enabled. Lives in mcpg.session_intent and the new mcpg.dynamic_session_intent.

New: Docker MCP Registry submission

Submitted MCPg to the Docker MCP Registry (roadmap 21). Added packaging/docker-mcp-registry/ with a server.yaml draft and a generated tools.json bypass file (their registry’s own {name, description, arguments} shape, not MCP-native inputSchema) derived from and guarded against drift by the tool surface contract snapshot — needed because MCPg requires a live MCPG_DATABASE_URL to start, which their build sandbox can’t supply.

Also added

Security hardening

Fixed

Upgrade impact

Upgrade

pip install --upgrade mcpg
docker pull ghcr.io/devopam/mcpg:0.8.0   # or :latest

Or grab mcpg-0.8.0.mcpb from this release and double-click it into Claude Desktop.

Full changelog

See ../CHANGELOG.md [0.8.0] for the complete itemised list.