Skip to content

mcp-data-platform-v0.31.0

Choose a tag to compare

@github-actions github-actions released this 02 Mar 02:20
· 314 commits to main since this release
b14636f

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_REQUIRED error 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_resource

When 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: true to your config.
  • The platform_info description change takes effect immediately and requires no configuration.

Changelog

  • feat: enforce platform_info as mandatory first call via session gating middleware (#164) (#165)

Installation

Homebrew (macOS)

brew install txn2/tap/mcp-data-platform

Claude Code CLI

claude mcp add mcp-data-platform -- mcp-data-platform

Docker

docker pull ghcr.io/txn2/mcp-data-platform:v0.31.0

Verification

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