mcp-data-platform-v0.30.0
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-platformClaude Code CLI
claude mcp add mcp-data-platform -- mcp-data-platformDocker
docker pull ghcr.io/txn2/mcp-data-platform:v0.30.0Verification
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