From Text to Interaction: A Software Engineer's Guide to the MCP Apps Protocol


From Text to Interaction: A Software Engineer's Guide to the MCP Apps Protocol

modelcontextprotocol/ext-apps

2026-01-30

The Model Context Protocol (MCP) Apps extension changes that. It allows AI models to not just send text back, but to serve embedded UI components directly into the chat interface.

Think of MCP Apps as a bridge between an AI server and a frontend. Instead of the AI just saying, "I've updated your database," it can pop up a mini-dashboard or a data grid right in the chat that allows you to filter, edit, and confirm changes.

It’s essentially a standard for Micro-Frontends served via MCP.

Rich Interactivity
Stop squinting at JSON blocks. You can render charts, interactive maps, or complex forms.

Contextual Control
Users can interact with the app in a way that provides structured data back to the AI, reducing "hallucinations" caused by messy text prompts.

Standardization
Using a single protocol means you don't have to rebuild the UI logic for every different AI platform. Build the "App" once on your MCP server, and any compatible client can render it.

The flow follows a simple request-response pattern within the MCP framework

Discovery
The client asks the MCP server what "Apps" it supports.

Invocation
The AI decides it needs a specific UI (e.g., a "Deployment Tracker").

Rendering
The server sends a definition (often a web component or a specific schema) that the client's UI container displays.

To get started, you'll need the MCP TypeScript SDK. Here is a conceptual look at how you might define an "App" on your server.

Imagine you want to create a simple "Ticket Viewer" app.

import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { ListAppsRequestSchema, GetAppRequestSchema } from "@modelcontextprotocol/sdk/types.js";

const server = new Server({
  name: "ticket-manager",
  version: "1.0.0",
});

// 1. List available apps
server.setRequestHandler(ListAppsRequestSchema, async () => {
  return {
    apps: [
      {
        id: "ticket-list",
        name: "Jira Ticket Viewer",
        description: "View and edit status of current sprint tickets",
      },
    ],
  };
});

// 2. Provide the app content (the UI definition)
server.setRequestHandler(GetAppRequestSchema, async (request) => {
  if (request.params.id === "ticket-list") {
    return {
      content: {
        type: "html", // Or a specific UI framework format
        value: "<div><h3>Ticket #101</h3><button onclick='fix()'>Resolve</button></div>",
      },
    };
  }
  throw new Error("App not found");
});

You would host this server as a standard MCP server (via stdio or HTTP). When a user asks, "What's the status of my tickets?", the AI can trigger the ticket-list app.

Explore the Repo
Head over to the modelcontextprotocol/ext-apps repository to see the latest spec definitions.

Install the SDK
Use npm install @modelcontextprotocol/sdk.

Build a Tool First
Most people start by building a standard MCP tool. Once that's working, adding an "App" layer on top is the natural next step for a better UX.

It’s an exciting time to be building in the AI space—moving from "Chatbots" to "AI-Native Operating Systems."


modelcontextprotocol/ext-apps




Open WebUI: Unifying OpenAI, Local Models, and Tool-Calling in One Self-Hosted Platform

Think of Open WebUI as the "Ultimate Dashboard" for your AI workflows. It’s a self-hosted, extensible interface that feels as smooth as ChatGPT but gives you total control over your backend


State Management for AI: An Engineer's Guide to Implementing memU

Usually, LLMs are like goldfishes—they have a great "now, " but they forget who you are or what you discussed as soon as the session ends


FastAPI MCP: Turning Your Endpoints into AI-Ready Tools

In a nutshell, fastapi_mcp is a Python library that helps you easily expose your FastAPI endpoints as Model Context Protocol (MCP) tools


Bridging the Gap: Software Engineering to AI Development

The ai-engineering-hub repository is a great resource for software engineers looking to dive into the world of AI and machine learning


The Engineer’s Guide to LobeHub: Deploying, Scaling, and Collaborating with AI Agents

LobeHub (specifically the Lobe Chat ecosystem) is at the forefront of this shift. Think of it not just as a UI for LLMs


The Engineer's Guide to LocalAI: Cost-Effective and Private AI on Consumer Hardware

LocalAI is essentially a self-hosted, local-first alternative to popular AI services like OpenAI or Claude. Here's how it benefits a software engineer like you


Revolutionizing AI Development with MindsDB for Software Engineers

MindsDB offers several significant advantages for software engineersSimplifies AI Integration You don't need to be a machine learning expert to use AI


From Hallucinations to High-Quality Code: The Git-mcp Approach

Git-mcp can benefit software engineers in several waysHigher Quality AI-Generated Code By using the project's actual code as context


Navigating the World of AI and ML Servers with awesome-mcp-servers

Hello there, fellow software engineers!Let's talk about a very useful resource that you might find interesting, especially if you're involved in machine learning


From RAG to Agents: A Practical Look at awesome-ai-apps for Developers

Think of awesome-ai-apps as a curated gallery of best practices and inspiring examples for building real-world AI applications