Skip to content

mcp-data-platform-v1.54.0

Choose a tag to compare

@github-actions github-actions released this 11 Apr 08:10
· 193 commits to main since this release
2eaae77

Managed Resources

v1.54.0 adds managed resources — human-uploaded reference material (samples, playbooks, templates, references) that is available to both portal users and AI agents via the MCP resources protocol primitive.

Highlights

  • Three scope levels: global (all users), persona (role-based), and user (private). Admins can upload to any scope; regular users upload to their own scope and see persona/global resources read-only.
  • MCP-native access: Managed resources are served via the standard resources/list and resources/read protocol handlers, filtered by the caller's identity and scope. Models that support the MCP resources primitive can discover and read uploaded reference material automatically.
  • Portal UI: New "Resources" section in both the user portal and admin portal. Upload, search, filter by category, view metadata, edit, and delete. Admin view shows all resources across scopes with per-persona tabs.
  • Multi-target upload: Admins can upload a resource to multiple personas (checkboxes) or multiple users (by email) in a single operation.
  • Auto-enabled: Managed resources activate automatically when a database is available — no configuration required. S3 blob storage is optional but recommended.

New Configuration

resources:
  managed:
    enabled: true          # auto-enabled when DB available
    uri_scheme: "mcp"      # configurable per deployment
    s3_connection: "default"
    s3_bucket: "my-bucket"

Breaking Changes

  • read_resource tool removed. The tool-based resource read path is superseded by the protocol-native resources/list and resources/read handlers. MCP clients that speak the resources primitive (all current supported clients) are unaffected. If a future client requires tool-based access, it can be reintroduced.

Security & Robustness

  • S3 blob cleanup on DB insert failure (no orphaned blobs)
  • 409 Conflict on duplicate URI (instead of 500)
  • ILIKE wildcard escaping in text search
  • Denied file extensions (.exe, .sh, .bat, .ps1, etc.)
  • MCP middleware requires authentication for managed resources
  • Content-Type sanitization via mime.ParseMediaType for XSS prevention
  • MaxBytesReader limits upload body size
  • Permission model enforced server-side: scope visibility, write restrictions, modify/delete gated to uploader or admin

Portal UX

  • Download works for both cookie and API-key auth (fetch + blob URL)
  • Search debounced at 300ms
  • Client-side 100 MB file size validation
  • Partial multi-upload shows which targets succeeded vs failed
  • Double-click prevention on upload button

Changelog

Features

  • feat: resource CRUD — storage, API, MCP primitive, portal UI (#306)

Bug Fixes

  • fix: review findings — security, UX, and documentation
  • fix: lint, security, and coverage for resource CRUD

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

Verification

All release artifacts are signed with Cosign. Verify with:

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