AI Engineer

MCP Apps: Give the Model Data, Give the User a UI — Dustin Mihalik, Indeed

Published 2026-09-09 · Duration 15:34

Summary

This talk details the architectural challenges of building Model-Composable Platform (MCP) applications for large language models (LLMs) like Claude and ChatGPT. The core thesis is that for a UI widget to function effectively, it must be treated as a data layer, not just a visual display. The speaker outlines three critical rules for developers: all displayed information must be provided as data to the model; the tool description must explicitly state that a UI exists; and, most importantly, data processing must be strictly separated from UI rendering to maintain model context and reasoning capability.

Download summary

Key takeaways

  1. Data-First Design Principle

    When building MCP apps, developers must focus on defining the data the model needs to process before considering the UI. The UI should be viewed as a side effect or result of the model exploring the underlying data.

  2. Rule 1: Show the Model Everything 5:13

    Any information displayed to the user via the UI must also be provided as structured data to the model. Failing to do so creates a 'black box' that prevents the model from answering follow-up questions about the displayed content.

  3. Rule 2: Declare the UI in the Description 8:26

    The tool description must explicitly state that a UI exists. Otherwise, the model will attempt to narrate the results underneath the widget, leading to redundant and confusing output.

  4. Rule 3: Separate Data Processing from UI Rendering 13:39

    This rule supersedes the others. The architecture must split the job into two distinct tools: one for pure data retrieval (e.g., `search_jobs`) and a separate, dedicated tool for rendering the results (e.g., `render_jobs`). This allows the model to perform complex data exploration without being limited by the UI's single call.

Technical details

  • MCP Apps Architecture 0s

    MCP apps allow developers to integrate external web content (like job search results) into chat environments (Claude, ChatGPT) using dedicated SDKs, enabling features like embedded 'apply' buttons and detail modals without forcing the user to leave the conversation.

  • Context Management 616s

    To track user interactions (e.g., clicking 'View Details'), the application must use methods like `update_model_context` to pass interaction events back to the model, ensuring the model remains aware of the current state.

  • Tool Separation Mechanism 819s

    The recommended pattern involves creating a primary data tool (e.g., `search_jobs`) that returns raw data, and a secondary rendering tool (e.g., `render_jobs`) that accepts a list of IDs and handles the display logic. This separation is key to allowing the model to perform multi-step reasoning.

Mentioned resources

  • MCP Apps (Platform/SDK)

Channel & topics

Watch on YouTube · Back to latest

This independent, AI-assisted summary is provided for commentary and informational purposes. It may contain errors or omit important context. Please watch the original video for the creator's complete presentation. Video, thumbnail, and related copyrights belong to their respective owners.