mcp-data-platform-v0.28.0
What's new in v0.28.0
platform_info tool — persona-aware, richer output
The platform_info tool response has been significantly expanded:
Persona-aware response — the tool now resolves the calling user's persona from the auth middleware context and returns it as a single persona object. Previously the tool returned a static list of all configured personas. The resolved persona reflects who is actually calling, with a fallback to the configured default persona when no auth context is present.
{
"persona": {
"name": "analyst",
"display_name": "Data Analyst",
"description": "Access to query and visualization tools"
}
}Toolkit descriptions — a new toolkit_descriptions map field (non-breaking, omitempty) is returned when toolkits have a description: key in their config block. Agents can use this to explain what each connected system covers without calling additional tools.
toolkits:
trino:
description: "Query the ACME data warehouse and OpenSearch indexes"
datahub:
description: "Browse the enterprise data catalog for ACME Corp"Dynamic tool title — when server.name is set to a custom value, it becomes the platform_info tool's display title. Claude Desktop and other MCP clients show e.g. ACME Data Platform instead of the bare tool name platform_info.
Auto-generated platform-overview prompt
When server.description is set, the platform now automatically registers a platform-overview MCP prompt. The prompt body includes the server description and directs agents to call platform_info for full capabilities. It is skipped if the operator has already defined a prompt named platform-overview, preventing conflicts with custom prompts.
Tool titles across all toolkits
All toolkit adapters now support a titles: config map (parallel to the existing descriptions: map) for overriding individual tool display names in MCP clients. The capture_insight and apply_knowledge tools in the Knowledge toolkit, and the list_connections platform tool, now have display titles set by default.
platform-info MCP App — full UI overhaul
The platform-info inline app (rendered inside AI assistant chat) has been completely redesigned:
- Tabbed layout: Overview · Toolkits · Capabilities · Agent Instructions. The Agent Instructions tab is hidden when the field is absent.
- Toolkits tab: each toolkit rendered as icon + name + description. Descriptions come from
toolkit_descriptionsin the tool result; known toolkits (trino, datahub, s3, opensearch, knowledge) have dry technical defaults that config can override. - Capabilities tab: feature flags shown as filled/empty circle indicators with human-readable descriptions of each capability.
- Markdown rendering: Overview and Agent Instructions tabs render full markdown — headings, ordered and unordered lists, tables, fenced code blocks, horizontal rules, and inline formatting.
- White-label branding:
brand_name,brand_url, andlogo_svgfields inmcpapps.apps.platform-info.configcontrol the hero logo area. Graceful fallback to server name and a default data-graph SVG mark. - Persona chip: the caller's resolved persona is shown in the header when present.
Developer preview tooling
Preview the platform-info app with real production config locally, without committing client data to the repo:
make preview-platform-info CONFIG=/path/to/configmap.yamlAccepts a Kubernetes ConfigMap YAML or a direct platform YAML. Extracts the relevant fields into a gitignored apps/preview-data.json file, then opens the test harness. The harness auto-loads the file on startup and renders the app immediately with real branding and data. Requires Python 3 and pyyaml (pip3 install pyyaml).
Smaller, more secure Docker image (#153)
The production Docker image now uses a scratch base instead of Alpine for the final stage. The binary is already fully statically compiled — Alpine's shell, package manager, and OS libraries were never used at runtime. The only runtime dependency (the CA certificate bundle for TLS) is copied from a named Alpine build stage.
- No shell (
/bin/sh) in the final image — eliminates container escape surface - No package manager (
apk) — prevents supply-chain attacks via runtime package installation - Zero OS-level CVEs by definition on scratch images
- Image runs as
USER 1000:1000(numeric, no/etc/passwdrequired)
The development image (Dockerfile.dev) is unchanged and retains Alpine.
Dependencies
github.com/modelcontextprotocol/go-sdkbumped from 1.3.0 to 1.3.1 (#149)- CI:
goreleaser/goreleaser-actionbumped to 7.0.0 (#148) - CI:
github/codeql-actionbumped to 4.32.4 (#150)
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.28.0Verification
All release artifacts are signed with Cosign. Verify with:
cosign verify-blob --bundle mcp-data-platform_0.28.0_linux_amd64.tar.gz.sigstore.json \
mcp-data-platform_0.28.0_linux_amd64.tar.gz