An hour on every MCP Apps primitive and how to get into the three big stores, ending on the claim that MCP is the new website
MCP Apps: Primitives, discovery, and the Future of Software - Pietro Zullo, Manufact, Inc · Pietro Zullo
29 min total·Actually worth watching closely: ~9 min·3 must-watch clips
- 0:01 – 5:28Listen
From MCP UI to an official extension
Where MCP Apps came from: MCP UI converted into MCP Apps, now the official extension of the Model Context Protocol, while ChatGPT, Claude and Cursor all opened their stores to self-serve submission.
MCP Apps are the official standard and the stores are open — this is the moment to publish yours
Purely spoken background and timeline, nothing on screen that matters — fine to listen to like a podcast▶ Jump to 0:01Speaker · Pietro Zullo - 5:31 – 9:58Skim
How it works, and set state
The basic mechanism: the model streams text, decides to call a tool, and the tool returns a UI just underneath, rendered in a sandboxed iframe; the set state primitive then updates what the model knows about the UI.
The model can't see what happens inside the widget by default — set state is the protocol's channel for syncing UI state back to it
Mostly architecture and flow slides (the diagrams at 429s and 481s are worth a glance) — skim the visuals alongside the narration, no need to watch frame by frame▶ Jump to 5:31Speaker · Pietro Zullo - 10:01 – 14:54Watch
Advanced primitives: follow-up, streaming and the privacy split
Covers send follow-up message (clients handle it differently), calling other tools from the widget, incremental widget rendering as the model streams arguments, and returning private data to the user's view without sending it to the model.
Tool output splits two ways — full information rendered for the human, sanitized data for the model, with model visibility explicitly the developer's choice
The streaming demo from 714s is the most striking thing on screen all talk — SVG and Remotion video taking shape as tokens arrive, worth watching▶ Jump to 10:01Speaker · Pietro Zullo - 14:57 – 18:42Watch
Display modes, theme sync and real-client demos
Shows inline, fullscreen and picture-in-picture display modes plus listening to the host's theme so your app stays in sync with it, then demos PostHog in Cursor and Excalidraw in Claude.
In fullscreen you chat to improve what the widget shows and the model streams directly into the interface in front of you — chat as software, literally
The demos cluster here (fullscreen interaction at 932s, PostHog at 1013s, Excalidraw drawing live at 1047s) — the highest-value stretch to actually watch▶ Jump to 14:57Speaker · Pietro Zullo - 18:45 – 21:58Skim
Client support today, and building with MCPUs
Compares how Claude, ChatGPT and Cursor support MCP Apps, walks through building one with MCPUs, and flags the key trick: detect host capability from the metadata exchanged over MCP.
When the widget doesn't render, the information it carried has to reach the model as text instead, or the fallback experience breaks
Mostly a support matrix and code snippets — skim for the conclusions and go back to the docs for details▶ Jump to 18:45Speaker · Pietro Zullo - 22:01 – 28:52Listen
Store submission, dynamic discovery, and AI apps as the new browsers
The self-serve submission process across all three stores (tool annotation scan, authentication check) and dynamic discovery: Claude already searches the MCP registry for the right connector when a task has no tool for it. Closes on the core claim — MCP is the new website and the MCP App is its UI.
Enormous numbers of users expressing intent in chat with the model picking the connector is a new high-intent acquisition channel — and a plain server with no UI is just as eligible for submission
Process narration and argument, no demos — you can get everything from it on a commute▶ Jump to 22:01Speaker · Pietro Zullo