Skip to content

mcp-data-platform-v0.29.0

Choose a tag to compare

@github-actions github-actions released this 01 Mar 20:50
· 316 commits to main since this release
1c38b86

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/list and are readable via resources/read by any MCP client
  • Registered whenever resources.custom is non-empty, independent of resources.enabled (which gates only the dynamic schema/glossary/availability templates)
  • content — inline text, JSON, SVG, or any text content defined directly in YAML
  • content_file — absolute path to a file read on every resources/read request; update the file without restarting the server (hot-reload)
  • content and content_file are mutually exclusive
  • Invalid entries (missing uri, name, or mime_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 support
  • SessionMissingError — now exported for error handling
  • extensions field in client/server capabilities — MCP Apps development

Behaviour changes in v1.4.0:

  • DNS rebinding protection: requests to localhost with non-localhost Host headers are now rejected (opt-out via MCPGODEBUG=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-platform

Claude Code CLI

claude mcp add mcp-data-platform -- mcp-data-platform

Docker

docker pull ghcr.io/txn2/mcp-data-platform:v0.29.0

Verification

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