mcp-data-platform-v0.29.0
What's new
Config-driven custom MCP resources
Operators can now expose arbitrary static content as named MCP resources directly from YAML config — no code changes required. Brand assets, operational limits, environment documentation, or any structured blob that LLMs and agents can read by URI.
resources:
custom:
- uri: "brand://theme"
name: "Brand Theme"
description: "Primary brand colors and site URL"
mime_type: "application/json"
content: |
{
"colors": {"primary": "#FF6B35", "secondary": "#004E89"},
"url": "https://example.com"
}
- uri: "brand://logo"
name: "Brand Logo SVG"
mime_type: "image/svg+xml"
content_file: "/etc/platform/logo.svg"Key properties:
- Resources appear in
resources/listand are readable viaresources/readby any MCP client - Registered whenever
resources.customis non-empty, independent ofresources.enabled(which gates only the dynamic schema/glossary/availability templates) content— inline text, JSON, SVG, or any text content defined directly in YAMLcontent_file— absolute path to a file read on everyresources/readrequest; update the file without restarting the server (hot-reload)contentandcontent_fileare mutually exclusive- Invalid entries (missing
uri,name, ormime_type; both or neither content fields set) are skipped with a warning at startup — valid entries in the same list are still registered
Config reference:
| Field | Type | Required | Description |
|---|---|---|---|
uri |
string | Yes | Unique resource URI, e.g. brand://theme, docs://limits |
name |
string | Yes | Display name shown in resources/list |
description |
string | No | Optional description for MCP clients |
mime_type |
string | Yes | e.g. application/json, image/svg+xml, text/plain |
content |
string | One of | Inline content |
content_file |
string | One of | Absolute path; read on every request |
See Custom Resources Configuration for full documentation.
MCP Go SDK v1.4.0
Upgraded github.com/modelcontextprotocol/go-sdk from v1.3.1 to v1.4.0. This is a non-breaking upgrade — v1.4.0 adds new symbols only.
New capabilities available (not yet used by the platform):
CreateMessageWithTools/CreateMessageWithToolsHandler— sampling with tools supportSessionMissingError— now exported for error handlingextensionsfield in client/server capabilities — MCP Apps development
Behaviour changes in v1.4.0:
- DNS rebinding protection: requests to localhost with non-localhost
Hostheaders are now rejected (opt-out viaMCPGODEBUG=disablelocalhostprotection=1, will be mandatory in v1.6.0) - JSON encoding no longer HTML-escapes by default (opt-in to old behaviour via
MCPGODEBUG=jsonescaping=1, will be removed in v1.6.0)
Transitive dependency bumps:
| Module | Before | After |
|---|---|---|
golang.org/x/mod |
v0.29.0 | v0.32.0 |
golang.org/x/sync |
v0.18.0 | v0.19.0 |
golang.org/x/tools |
v0.38.0 | v0.41.0 |
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:v0.29.0Verification
All release artifacts are signed with Cosign. Verify with:
cosign verify-blob --bundle mcp-data-platform_0.29.0_linux_amd64.tar.gz.sigstore.json \
mcp-data-platform_0.29.0_linux_amd64.tar.gz