mcp-data-platform-v1.92.0
Highlights
This release adds a universal fetch tool to the search toolkit. search returns navigational pointers with truncated snippets, and every search Hit already carries a reference. fetch(reference) is the missing consumer of that reference: it dereferences any pointer back to its complete content.
Two of the newest knowledge tiers had no MCP path to their full content before this release: knowledge pages (body served only by the portal HTTP handler) and context documents (snippet-only in search). An agent could write canonical knowledge but could not read it back. fetch closes that loop, and collapses the previously fragmented scoped readers (datahub_get_entity, manage_artifact get, manage_prompt get) into one verb.
What's New
fetch tool
A single fetch tool, registered alongside search, that resolves any reference search emits to full content. It dispatches by reference form across all six reference-emitting sources:
| Reference form | Source | Returns |
|---|---|---|
mcp:knowledge_page:<id> |
knowledge pages | full markdown body |
urn:li:document:<id> |
context documents | full document body (the only MCP path to it) |
urn:li:dataset:<id> |
catalog | the dataset's catalog context |
mcp:asset:<id> |
assets | the asset's metadata record (blob bytes stay in S3) |
mcp:prompt:<id> |
prompts | the full prompt |
mcp:connection:(kind,name) |
connections | the connection descriptor |
Memory, insights, feedback, and endpoints emit no reference and are not fetch targets. The tool description explains the two reference namespaces (urn:li:... external DataHub, mcp:... internal) and notes that a well-formed reference held from another tool is fetchable, not only one search produced.
Semantic layer: full document retrieval
GetDocument(urn) returns the full document body (not the search snippet) through DocumentSearcher, the DataHub adapter, the instrumented client, and the cache decorator, backed by the upstream dhclient.GetDocument.
Guidance
The platform instruction baseline now names fetch when the persona can reach it.
Scope and access model
- Per-user content is permission-scoped and fails closed. Assets are scoped by owner
UserID; prompts are gated onapproved && enabledthen global/persona/owner visibility. A miss and an out-of-scope reference both return not-found, so existence does not leak.fetchis gated by the same deny-by-default per-persona tool authorization and is audited by tool name like every tool. - Global catalog content (datasets, context documents, knowledge pages, connection metadata) is returned to anyone who can call the tool, exactly what
searchalready exposes.fetchadds no new exposure. - Stale citations (deleted dataset or asset, draft document, retired prompt) read as a structured
found: falserather than a hard failure, so existing references degrade gracefully.
Documentation
README, docs/server/tools.md, docs/llms.txt, and docs/llms-full.txt updated.
Changelog
- ee1c219: feat(knowledge): add universal fetch tool to read any search result by reference (#694) (#698) (@cjimti)
Full Changelog: v1.91.0...v1.92.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:v1.92.0Verification
All release artifacts are signed with Cosign. Verify with:
cosign verify-blob --bundle mcp-data-platform_1.92.0_linux_amd64.tar.gz.sigstore.json \
mcp-data-platform_1.92.0_linux_amd64.tar.gz