mcp-data-platform-v0.28.3
What's Changed
Fix: Final 3 DataHub tools now work correctly in Claude.ai
This completes the DataHub toolkit repair across three releases:
| Release | Tools fixed | Root cause |
|---|---|---|
| v0.28.2 | 8 of 11 | All read handlers returned nil structured output |
| v0.28.3 | remaining 3 | outputSchema type declarations didn't match actual Go types |
datahub_get_entity, datahub_get_lineage, and datahub_get_data_product were still
failing with "Error occurred during tool execution" after v0.28.2. All 11 DataHub read tools
now work correctly.
Root cause
go-sdk validates structured output against outputSchema via applySchema before writing
structuredContent. v1.0.0 added outputSchema declarations for all tools but the schemas
were written against the wrong types — declaring object fields as string and string fields
as objects. When go-sdk validated the actual structured output against these schemas,
validation failed and a JSON-RPC error was returned instead of results.
The failure was silent in testing because the existing integration test used minimal mock
data with no owners, tags, or domain values populated, so the type-mismatched fields
were never present in the output during validation.
Mismatches fixed (via mcp-datahub v1.0.2)
datahub_get_entity — 5 mismatches
| Field | Schema declared | Actual type |
|---|---|---|
owners.items |
string |
types.Owner — {urn, name, type} object |
tags.items |
string |
types.Tag — {urn, name, description} object |
domain |
string |
*types.Domain — {urn, name, description} object |
deprecated |
boolean |
doesn't exist — actual field is deprecation *types.Deprecation (object) |
query_table (with query provider) |
string |
*integration.TableIdentifier struct |
The last mismatch also required a handler fix: handleGetEntity now calls table.String()
to return the fully-qualified table path (catalog.schema.table) as a string.
datahub_get_lineage — 1 mismatch
| Field | Schema declared | Actual type |
|---|---|---|
execution_context |
{type: object, additionalProperties: {type: object}} |
integration.ExecutionContext has connections []string and source string — not objects |
datahub_get_data_product — 3 mismatches
| Field | Schema declared | Actual type |
|---|---|---|
domain |
string |
*types.Domain — {urn, name, description} object |
owners.items |
string |
types.Owner — {urn, name, type} object |
assets.items |
{type: object, properties: {urn, name, type}} |
string (URN) |
Upgrade
Drop-in patch — no configuration changes required. Replace your binary or Docker image.
Installation
Claude Desktop (macOS/Windows)
Download the .mcpb bundle for your platform and double-click to install:
- macOS Apple Silicon (M1/M2/M3/M4):
mcp-data-platform_0.28.3_darwin_arm64.mcpb - macOS Intel:
mcp-data-platform_0.28.3_darwin_amd64.mcpb - Windows:
mcp-data-platform_0.28.3_windows_amd64.mcpb
Homebrew (macOS)
```bash
brew install txn2/tap/mcp-data-platform
```
Claude Code CLI
```bash
claude mcp add mcp-data-platform -- mcp-data-platform
```
Docker
```bash
docker pull ghcr.io/txn2/mcp-data-platform:v0.28.3
```
Verification
All release artifacts are signed with Cosign. Verify with:
```bash
cosign verify-blob --bundle mcp-data-platform_0.28.3_linux_amd64.tar.gz.sigstore.json
mcp-data-platform_0.28.3_linux_amd64.tar.gz
```
Full changelog: v0.28.2...v0.28.3