Skip to content

mcp-data-platform-v1.49.0

Choose a tag to compare

@github-actions github-actions released this 04 Apr 08:08
· 208 commits to main since this release
8e09751

Highlights

Database-managed personas and API keys, persona-based tool visibility for agents, and a restructured admin UI.

Database-managed personas

Personas can now be created, edited, and deleted through the admin UI with full PostgreSQL persistence. DB-defined personas override file-configured personas with the same name, allowing file config to serve as defaults while the admin UI provides runtime control.

The persona_definitions table (migration 000028) stores all persona fields including roles, tool allow/deny rules, connection allow/deny rules, and context overrides as JSONB columns.

Database-managed API keys

API keys can now be created and deleted through the admin UI with full PostgreSQL persistence. Keys are bcrypt-hashed at rest — the plaintext value is returned exactly once at creation time. File-configured keys continue to work alongside DB-managed keys.

New fields on API keys:

  • Email — contact address for the key holder
  • Description — what the key is used for
  • Expiration — optional duration (e.g., 8760h for one year); expired keys are rejected at authentication time

The api_keys table (migration 000029) stores hashed keys with metadata and JSONB roles.

Persona-based tool visibility

Agents now only see tools their persona allows. Previously tools/list returned every registered tool regardless of the caller's persona — agents saw tools they couldn't call, wasting tokens and causing confusion. The visibility middleware resolves the caller's persona from the session and filters the tool list through the persona's allow/deny rules.

Admin UI restructure

The nested settings menu has been replaced with flat alphabetized navigation: Dashboard, Agent Instructions, Assets, Audit Log, Changelog, Connections, Description, Keys, Knowledge, Personas, Tools. Each section is a standalone page with its own URL for direct linking.

The Keys page has a table layout with role browser reference panel, expiration display, and inline email/description fields.

Connection UI improvements

  • Nested config objects render as formatted JSON instead of [object Object]
  • Connections managed in both file and database show as "database" (the authoritative source) instead of the confusing "file+db" label
  • Explanatory note when a DB-managed connection also has a file fallback

Other improvements

  • ${VAR:-default} environment variable expansion syntax in YAML config
  • .env.example for local development with remote backends

Database migrations

Migration Table Purpose
000028 persona_definitions Persona management
000029 api_keys API key management with bcrypt hashes

Migrations run automatically on startup when a database is configured.

Breaking changes

  • APIKeyManager.GenerateKey now accepts auth.APIKey struct instead of (name string, roles []string)

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:v1.49.0

Verification

All release artifacts are signed with Cosign. Verify with:

cosign verify-blob --bundle mcp-data-platform_1.49.0_linux_amd64.tar.gz.sigstore.json \
  mcp-data-platform_1.49.0_linux_amd64.tar.gz