Skip to content

mcp-data-platform-v0.28.0

Choose a tag to compare

@github-actions github-actions released this 28 Feb 21:50
· 322 commits to main since this release
20b440a

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_descriptions in 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, and logo_svg fields in mcpapps.apps.platform-info.config control 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.yaml

Accepts 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/passwd required)

The development image (Dockerfile.dev) is unchanged and retains Alpine.


Dependencies

  • github.com/modelcontextprotocol/go-sdk bumped from 1.3.0 to 1.3.1 (#149)
  • CI: goreleaser/goreleaser-action bumped to 7.0.0 (#148)
  • CI: github/codeql-action bumped to 4.32.4 (#150)

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.28.0

Verification

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