MCP Host Output Prior Art
define-mcp-agent-entrypoint-surfaceProject noteResearch
Created Updated openspec/changes/define-mcp-agent-entrypoint-surface/design-notes/mcp-host-output-prior-art-2026-06-09.mdView on GitHub →
Status: researched
Date: 2026-06-09
Source report: tmp/workstreams/mcp-host-output-prior-art-2026-06-09-report.md
Findings
content[]is the only portable model-visible channel.structuredContentis host-dependent: some clients expose it to the model, some hide it, and_metais UI-only.outputSchemais useful for programmatic consumers, but does not change model-visibility rules. Any handle needed for the next model step belongs incontent[].- Tool annotations are advisory, not security boundaries. The normal PDPP MCP
tools should advertise
readOnlyHint: true,destructiveHint: false,idempotentHint: true, andopenWorldHint: false, while the RS grant remains the actual authority boundary. - Compact index plus scoped detail is consistent with current MCP/server prior
art. Global schema discovery should be an index; field-level detail belongs
behind scoped
schema(stream, connection_id?). - PDPP's
t=,r=,a=compact field-capability grammar has no direct shipping MCP-server prior art. It can remain only if each scoped response carries a visible legend or the grammar is replaced with explicit compact fields. - Per-result source provenance is not standardized across major MCP servers.
PDPP's
connection_id+connector_keyconstruction is the right answer to "which configured connection produced this record?" without profiles.
Design Consequences
- Global
schema()SHALL remain a bounded index as a whole tool result, not only as bounded prose. schema(stream, connection_id?)is the SLVP detail path for common stream names shared across connectors or connections.search(limit: N)SHALL return at most N merged hits across a package fan-in, and each hit SHALL carry source identity plus a compact source mix in text.query_records(fields)SHALL narrow canonical record payloads and preserve only operational source/addressing handles outside the requested payload.fetch(fields)SHALL project the source record before rendering the OpenAI-compatible document and SHALL NOT expose a second canonical record payload understructuredContent.data.- No next cursor, bookmark, source selector, record id, or setup instruction may
live only in
structuredContent.
Residual Host Unknowns
- ChatGPT-specific pre-dispatch blocks on particular
messagessort/count calls appear to be host-side false positives when raw MCP, Claude, Claude Code, and Codex paths pass. The server-side gate is to verify hostedtools/listannotations and request-not-reached evidence, not to infer private classifier rules. - Whether each host counts hidden
structuredContenttoward context remains host-specific. The safe PDPP posture is to keep broad discovery and duplicated hit arrays small even when hidden.