Skip to content

mcp-data-platform-v0.17.1

Choose a tag to compare

@github-actions github-actions released this 13 Feb 19:33
· 366 commits to main since this release
0bbb888

This release delivers the Admin Portal — a React-based management UI embedded in the Go binary, served directly from the platform with zero external dependencies. The portal provides audit dashboards, tool execution, knowledge management, and persona browsing.

Closes #70 (partial — OAuth PKCE login, real-time WebSocket updates, and full CRUD deferred to future releases).

Note: This release does not include the COUNT(*) row estimation fix. If DataHub search enrichment is slow due to full table scans, upgrade to v0.17.2.

Admin Portal UI

A complete single-page application built with React 19, TypeScript, Vite, TanStack Query, Zustand, and Recharts. The compiled assets are embedded into the Go binary via go:embed — no separate static file server or CDN required.

Gated by config (off by default)

admin:
  enabled: true                # default: false
  persona: admin               # persona required for access
  path_prefix: /api/v1/admin   # URL prefix
  portal_title: Admin Portal   # sidebar title

When admin.enabled: false (the default), no admin assets are served and no admin routes are registered.

Pages

Page Description
Dashboard System info, audit event timeseries chart, dimensional breakdown tables (by user, tool, persona, toolkit)
Audit Log Filterable event table with detail drawer, time-range filtering, and CSV export
Tools Schema browser for all registered MCP tools with interactive executor — run any tool from the UI with auth token propagation via in-memory MCP transport
Personas Read-only listing of all persona definitions with roles and tool rules
Knowledge Browse captured insights and changesets

Features

  • Light/dark/system theme toggle with persistent preference via localStorage
  • Responsive layout for desktop and tablet
  • Client-side routing with sidebar navigation
  • SPA fallback — all non-API routes serve the index, enabling browser refresh on any page

New Backend Endpoints

Method Path Description
GET /audit/events Query audit events with filters (user, tool, time range, pagination)
GET /audit/export Export audit events as CSV download
GET /audit/stats/timeseries Audit event timeseries buckets for charts
GET /audit/stats/breakdown Dimensional breakdown (by user, tool, persona, toolkit)
GET /audit/stats/overview Aggregate stats (total calls, success rate, unique users, etc.)
GET /audit/stats/performance Latency percentiles (p50/p95/p99)
GET /tools/schemas List all MCP tool schemas with toolkit kind metadata
POST /tools/call Execute a tool via internal MCP session with auth propagation

SQL Query Builder Migration

Replaced hand-built SQL string concatenation with the squirrel query builder across:

  • Audit store (pkg/audit/postgres/)
  • Knowledge insight store
  • Knowledge changeset store

This improves safety (parameterized queries by construction) and maintainability.

Local Dev Environment

New Docker Compose setup for local development with seeded data:

make dev-up    # Start PostgreSQL + seed 5000 audit events + knowledge insights
make dev-down  # Tear down

The admin UI connects to the real backend with live data, enabling rapid frontend iteration.

Changelog

  • feat: add admin portal with audit dashboard, tool execution, and dev environment (#91) (@cjimti)

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

Verification

All release artifacts are signed with Cosign. Verify with:

cosign verify-blob --bundle mcp-data-platform_0.17.1_linux_amd64.tar.gz.sigstore.json \
  mcp-data-platform_0.17.1_linux_amd64.tar.gz