mcp-data-platform-v0.31.0
Session Initialization Gate
LLM agents frequently skip the platform_info tool and jump directly to data tools like datahub_search or trino_query, causing them to miss critical operational instructions embedded in the platform info response (query routing rules, persona context, enrichment capabilities). This release adds both soft and hard enforcement to ensure platform_info is always the first call in every session.
Soft enforcement: Strengthened tool description
The platform_info tool description now leads with "MANDATORY first call in every session", explicitly names the tools that must not precede it (datahub_search, trino_query, trino_describe_table, s3_list_objects), and states the consequences of skipping: incorrect query routing, operational rule violations, and degraded output quality.
Hard enforcement: Session gating middleware
A new MCPSessionGateMiddleware blocks all non-exempt tool calls with a SETUP_REQUIRED error until platform_info has been invoked in the current session. Most agents will self-correct by calling platform_info and retrying.
Key behaviors:
- Returns a structured
SETUP_REQUIREDerror that tells the agent exactly what to do - Configurable exempt tools list (e.g.,
list_connections,read_resource) - Per-session tracking with TTL-based expiration to prevent memory leaks
- Gating violations are logged with session ID, tool name, user ID, and cumulative count
- New tools added to the platform are automatically gated — no per-tool code changes
Middleware chain positioning:
Auth/Authz → Session Gate → Audit → Rules → Enrichment → handler
The gate sits inner to auth (so it has session/user context) and outer to audit (so gated calls don't produce audit events).
Configuration
Enable via session_gate in your platform config:
session_gate:
enabled: true
init_tool: platform_info # default
exempt_tools:
- list_connections
- read_resourceWhen disabled (the default), the platform behaves exactly as before — the description change is the only active enforcement.
Upgrade notes
- No breaking changes. Session gating is disabled by default.
- To enable, add
session_gate.enabled: trueto your config. - The
platform_infodescription change takes effect immediately and requires no configuration.
Changelog
Installation
Homebrew (macOS)
brew install txn2/tap/mcp-data-platformClaude Code CLI
claude mcp add mcp-data-platform -- mcp-data-platformDocker
docker pull ghcr.io/txn2/mcp-data-platform:v0.31.0Verification
All release artifacts are signed with Cosign. Verify with:
cosign verify-blob --bundle mcp-data-platform_0.31.0_linux_amd64.tar.gz.sigstore.json \
mcp-data-platform_0.31.0_linux_amd64.tar.gz