For the March 2026 modernization sequencing and implementation backlog, see docs/PROTOCOL_MODERNIZATION_WORKPLAN.md.
This guide maps legacy adk_ui tool outputs to protocol-aware outputs for a2ui, ag_ui, and mcp_apps.
Protocol-aware outputs let the same agent/toolset serve:
- A2UI clients
- AG-UI consumers
- MCP Apps hosts
without maintaining separate tool implementations.
render_screen: returns A2UI payload objectrender_page: returns A2UI JSONL stringrender_kit: returns a draft brand-kit manifest, complete catalog, semantic tokens, assets, templates, agent constraints, and scoped CSS- other render tools: return legacy
UiResponseJSON
protocol="a2ui": A2UI payloads or protocol envelopesprotocol="ag_ui": AG-UI event payloadsprotocol="mcp_apps": MCP Apps resource payloads withui://URIs
No behavior change is required for existing A2UI consumers.
- Keep
protocolomitted for existing behavior. - Set
protocolexplicitly when targeting AG-UI or MCP Apps.
When protocol is set, output is wrapped:
{
"protocol": "a2ui",
"surface_id": "kit",
"payload": { "...": "kit artifacts" }
}render_form, render_card, render_alert, render_confirm, render_table, render_chart, render_layout, render_progress, render_modal, and render_toast keep legacy UiResponse behavior by default.
When protocol is set, these tools emit protocol envelopes:
{
"protocol": "ag_ui",
"version": "1.0",
"surface_id": "form",
"payload": {
"events": [ "... AG-UI events ..." ]
}
}Pass an approved kit_id to these tools when a company brand kit should drive rendering. The value is preserved on legacy UiResponse payloads and becomes the catalog id in A2UI, AG-UI, and MCP Apps projections. For native render_screen and render_page calls, pass the same value as catalog_id.
- Keep existing calls unchanged and verify no regressions.
- Add explicit
protocolonly at integration boundaries that need AG-UI or MCP Apps. - For MCP Apps, provide optional validated metadata under
mcp_apps. - Pin tests to protocol contracts using
adk-ui/tests/tool_protocol_matrix_tests.rs.
- Legacy default outputs are still supported.
- No forced cutover is required for existing
UiResponseconsumers. - New integrations should prefer explicit
protocolselection to avoid ambiguous defaults.
- Announced:
2026-02-07 - Legacy runtime profile:
adk_ui - Sunset target for new integrations:
2026-12-31 - Preferred profiles:
a2ui,ag_ui,mcp_apps
adk-serveremits warning logs when requests explicitly or implicitly useadk_ui./api/ui/capabilitiesnow includes deprecation metadata foradk_uiso clients can surface migration prompts.- The endpoint uses capability schema
2026-08-13and exposes per-version maturity, negotiation metadata, scoped support claims, and protocol-specific details. Consumers should prefercapabilityClaimsover inferring support from the legacy flatfeaturesarray. - A claim marked
partial,candidate, orhost_ownedmust not be treated as an end-to-end runtime guarantee.