Skip to content

mcp-data-platform-v0.12.1

Choose a tag to compare

@github-actions github-actions released this 05 Feb 02:24
· 402 commits to main since this release
00b3484

Overview

This release focuses on fixing audit logging functionality, introducing database migrations with golang-migrate, and updating dependencies.

Bug Fixes

Fix Audit Logging - Populate Missing PlatformContext Fields (#49)

Audit logging was not capturing complete context because MCPToolCallMiddleware only set ToolName in the PlatformContext. The following fields were missing:

  • ToolkitKind (e.g., "trino", "datahub", "s3")
  • ToolkitName (e.g., "production", "cloudsent")
  • PersonaName (e.g., "analyst", "admin")
  • Connection (e.g., "prod-trino", "main-datahub")

Changes:

  • Added ToolkitLookup interface for toolkit metadata retrieval
  • Added Connection() method to Toolkit interface
  • Implemented GetToolkitForTool() on Registry
  • Updated Authorizer interface to return persona name
  • MCPToolCallMiddleware now populates all context fields

Audit logs now include complete context:

{
  "timestamp": "2024-01-15T10:30:00Z",
  "request_id": "req-abc123",
  "user_id": "user@example.com",
  "persona": "analyst",
  "tool_name": "trino_query",
  "toolkit_kind": "trino",
  "toolkit_name": "production",
  "connection": "prod-trino",
  "success": true,
  "duration_ms": 150
}

New Features

Database Migrations with golang-migrate (#48)

Introduced proper database migration support using golang-migrate:

  • Migrations are embedded in the binary using Go embed
  • Automatic migration on startup when database is configured
  • Support for up/down migrations
  • Migration files located in pkg/database/migrate/migrations/

Current migrations:

  • 000001_oauth_clients - OAuth client storage
  • 000002_audit_logs - Audit log storage

Breaking Changes

Authorizer Interface

The Authorizer interface signature changed from 2 return values to 3:

// Before
IsAuthorized(...) (authorized bool, reason string)

// After
IsAuthorized(...) (authorized bool, personaName string, reason string)

Toolkit Interface

The Toolkit interface now requires a Connection() method:

type Toolkit interface {
    Kind() string
    Name() string
    Connection() string  // NEW
    // ... other methods
}

Dependency Updates

Dependency From To
github.com/golang-jwt/jwt/v5 5.3.0 5.3.1
github.com/lib/pq 1.10.9 1.11.1
Alpine base image 3.21 3.23
Go base image 1.24-alpine 1.25-alpine

CI/CD Updates

  • Bump docker/login-action from 3.6.0 to 3.7.0
  • Bump github/codeql-action from 4.31.11 to 4.32.0

Upgrade Notes

  1. Custom Authorizer Implementations: Update to return 3 values instead of 2
  2. Custom Toolkit Implementations: Add Connection() string method
  3. Database: Migrations run automatically on startup - no manual action needed

Full Changelog

  • Fix Audit Logging - Populate Missing PlatformContext Fields (#49)
  • Database Migrations with golang-migrate (#48)
  • deps: bump github.com/golang-jwt/jwt/v5 from 5.3.0 to 5.3.1 (#44)
  • deps: bump github.com/lib/pq from 1.10.9 to 1.11.1 (#43)
  • docker: bump alpine from 3.21 to 3.23 (#45)
  • docker: bump golang from 1.24-alpine to 1.25-alpine (#42)
  • ci: bump docker/login-action from 3.6.0 to 3.7.0 (#41)
  • ci: bump github/codeql-action from 4.31.11 to 4.32.0 (#46)

Changelog

Others

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

Verification

All release artifacts are signed with Cosign. Verify with:

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