mcp-data-platform-v1.60.0
Highlights
Prompts get a dedicated viewer page with a live arguments editor and asset-snapshot sharing. Clicking a prompt on the Prompts page now opens a full-page view (/prompts/:id) instead of an inline expand-row. Personal prompts can be edited inline; any prompt can be saved as a markdown asset or shared with another user via the existing asset-share infrastructure (public link + per-user share + TTL + viewer/editor permission).
What's new
Prompt viewer page
- Markdown rendering with a Preview / Source toggle, re-using the existing
MarkdownRenderer. - Edit mode for personal prompts: name, display name, description (now a multi-line textarea), category, content. Save is disabled until the form actually changes; Cancel discards.
- Copy button puts the prompt content on the clipboard.
- Save as Asset snapshots the prompt content into the user's asset library as
text/markdownand surfaces an "Open asset" link. - Share snapshots, then opens the standard asset Share dialog — same controls users already know from assets (public link with TTL, share with user by email, viewer/editor permission).
- Delete confirmation modal for personal prompts.
- Sidebar auto-collapses on the viewer route, same as the asset detail view.
Live arguments editor
Below the content textarea in both Create and Edit forms there's now a small editable table:
| Column | Behavior |
|---|---|
| Name | Read-only {{name}} chip, derived from the placeholders in your content. |
| Description | Multi-line textarea (resize-y), free-form. |
| Required | Checkbox; defaults to required for newly-discovered placeholders. |
Typing a placeholder in the content automatically adds a row. Removing it removes the row. The description and required flag you set are preserved across re-edits as long as the placeholder is still referenced in the content.
Placeholder syntax
Both {{name}} and {name} are now recognized end-to-end (UI extractor and backend substitution), so existing single-brace prompts keep working and new prompts can use the more standard double-brace style. Whitespace inside braces is rejected to match the backend's literal-string substitution.
List page
- Long descriptions wrap across multiple lines instead of being clipped mid-sentence.
- Row click navigates directly to the viewer.
Backend: POST /api/v1/portal/assets
New endpoint for creating an asset from inline text content (markdown, plain, html, jsx, csv, svg, json). Used by Save as Asset and Share. Same length validators as updateAsset (name ≤ 255, description ≤ 2000, ≤ 20 tags @ 100 chars each), case-insensitive content-type matching, 10 MB content cap with sufficient envelope headroom that legitimate near-cap payloads with maximum-allowed metadata return 201, not a misleading 400. OpenAPI/Swagger is regenerated.
Other
- ESLint config now honors the
^_underscore-prefix ignore pattern for unused destructured arguments. - MSW mock environment includes a
POST /portal/assetshandler and two long-form personal prompts (incident-retro,weekly-business-review) for exercising markdown rendering and the arguments panel. dev/seed.sqladds those two prompts as real database rows owned byadmin@example.comso the dev admin sees rich Personal content on first login.
Upgrade notes
No breaking changes. Single-brace {name} placeholders in existing prompts continue to work; nothing needs migration. The new POST /api/v1/portal/assets endpoint is additive.
Changelog
Features
Others
- b57367c: ci: bump the npm_and_yarn group across 1 directory with 2 updates (#391) (@dependabot[bot])
Installation
Homebrew (macOS)
brew install txn2/tap/mcp-data-platformClaude Code CLI
claude mcp add mcp-data-platform -- mcp-data-platformDocker
docker pull ghcr.io/txn2/mcp-data-platform:v1.60.0Verification
All release artifacts are signed with Cosign. Verify with:
cosign verify-blob --bundle mcp-data-platform_1.60.0_linux_amd64.tar.gz.sigstore.json \
mcp-data-platform_1.60.0_linux_amd64.tar.gz