Skip to content

mcp-data-platform-v0.30.0

Choose a tag to compare

@github-actions github-actions released this 01 Mar 23:30
· 315 commits to main since this release
c073604

What's new

read_resource tool — AI-autonomous access to MCP resources

MCP resources (brand://theme, brand://logo, operational hints, etc.) are registered on the server and advertised via the resources capability, but current MCP clients — including Claude Desktop and Claude.ai — do not expose resources/read as an AI-callable operation. The protocol's resources feature was designed for a human-driven Attachments panel that has not shipped in any major client. As a result, registered resource content was inaccessible to the AI at runtime.

v0.30.0 adds a read_resource platform tool that bridges this gap. The tool wraps the platform's internal resource registry and is registered automatically whenever resources are configured — no additional config required.

How the tool works:

At startup, registerCustomResources() and registerHintsResource() now populate an internal resourceRegistry map alongside the existing mcpServer.AddResource() call. After all resources are registered, registerResourceTool() builds and registers the tool with a description that lists every available URI:

Read an MCP resource by URI and return its content. Use this to fetch brand
assets, operational hints, and other registered resources.
Available URIs: brand://logo, brand://logo-dark, brand://theme, hints://operational

The AI sees the complete URI list in tools/list at session initialization — no separate discovery call needed.

Example calls:

read_resource(uri: "brand://theme")       → JSON with colors, typography, logo URI map
read_resource(uri: "brand://logo")        → inline SVG for light backgrounds
read_resource(uri: "brand://logo-dark")   → inline SVG for dark backgrounds
read_resource(uri: "hints://operational") → JSON array of tool usage hints

Any resource defined in config.resources.custom[] or the hints resource is automatically exposed. No code changes are needed to add new resources — define them in config and they appear in the tool description at next startup.

Typical agent workflow for branded visual output:

1. read_resource(uri: "brand://theme")
   → receives JSON: colors, typography, logos map

2. read_resource(uri: "brand://logo")
   → receives SVG text

3. Generates HTML embedding SVG directly and applying brand colors/fonts

Token cost:

What When Approximate cost
Tool description (URI list) Every session via tools/list ~60 tokens
Resource content (e.g. theme JSON) Only when read_resource is called Proportional to content size
Compact SVG logo Only when read_resource is called ~200–300 tokens

For large SVGs or binary assets, store a CDN URL in the theme JSON and have the agent use <img src> instead of fetching the content directly.

Protocol-level resources/read is unchanged — resources still appear in resources/list and remain readable via resources/read for any client that implements the Attachments UI in the future.

The tool is skipped entirely when no resources are configured, so deployments without custom resources or hints see no change to their tool list.

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

Verification

All release artifacts are signed with Cosign. Verify with:

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