Ejemplos de MCP Apps: interfaces interactivas en Claude y ChatGPT, con demos reales

Las MCP Apps permiten que una herramienta devuelva una interfaz que funciona en lugar de texto plano. Este artículo recorre las apps de ejemplo oficiales, desde mapas en 3D hasta controles deslizantes de presupuesto, muestra el código del servidor y de la vista que hay detrás y explica cómo crear las tuyas dentro de Claude y ChatGPT.

Ejemplos de MCP Apps: interfaces interactivas en Claude y ChatGPT, con demos reales
Cristian Da Conceicao
Fundador de Picasso IA

Antes, si le pedías a un asistente de IA un mapa, recibías un párrafo que lo describía. Con una MCP App detrás de la herramienta, la misma pregunta devuelve un mapa real en el chat: con marcadores, con zoom y listo para tu siguiente pregunta. Ese salto de describir a mostrar es la razón de ser de MCP Apps, y la forma más rápida de entender por qué importa es ver ejemplos que funcionan en lugar de leer la especificación. Este artículo repasa las demos oficiales, los productos que ya incluyen la extensión, el patrón de código que hay detrás de cada una y lo que hace falta para crear tu propia interfaz interactiva dentro de Claude y ChatGPT.

Qué son realmente las MCP Apps

MCP Apps es la primera extensión oficial del Model Context Protocol. Se anunció el 26 de enero de 2026 y permite que una herramienta devuelva una interfaz interactiva que se muestra directamente en la ventana del chat, y no solo texto o JSON. Gráficos, formularios, paneles y escenas 3D viven dentro de la conversación, junto a la respuesta del modelo.

De respuestas de texto a interfaces en vivo

Una herramienta MCP normal es una función. El modelo la llama, recibe datos y describe el resultado en prosa. Eso funciona hasta que los datos son una tabla de 40 filas o una ruta por una ciudad, y entonces la prosa se convierte en una mala interfaz.

Con MCP Apps, una herramienta puede apuntar a un recurso de interfaz. El host (la aplicación de chat) obtiene ese recurso y lo muestra en un iframe aislado. El host pasa los datos de la herramienta a la interfaz, y la interfaz puede volver a llamar a otras herramientas a través del host. La conversación y la interfaz se mantienen sincronizadas, de modo que un clic en un gráfico puede convertirse en la siguiente pregunta al modelo.

La idea no surgió de la nada. Se apoya en dos iniciativas de la comunidad: el proyecto MCP-UI, dirigido por Ido Salomon y Liad Yosef, y el Apps SDK de OpenAI. Anthropic y OpenAI trabajaron en una especificación compartida en lugar de lanzar dos propuestas rivales, y por eso una sola app puede funcionar en los dos asistentes.

Dónde encajan Claude y ChatGPT

Claude y ChatGPT son los dos grandes hosts, pero no están solos. El repositorio ext-apps también enumera como clientes que muestran estas apps: VS Code, Goose, Postman, MCPJam, el inspector de mcp-use y Alpic Playground.

💡 El soporte de cada host varía. MCP Apps es una especificación, y cada cliente decide cuánta parte implementa. Prueba tu app en cada host que te importe antes de prometer nada a los usuarios.

Las apps de ejemplo oficiales

El repositorio modelcontextprotocol/ext-apps incluye unas 18 apps de ejemplo, y los servidores de ejemplo se publican como paquetes @modelcontextprotocol/server-<name>, así que puedes probar una sin escribir una sola línea de código. Esta es la lista de un vistazo.

EjemploQué muestraVale la pena copiarlo por
MapGlobo 3D basado en CesiumJSVistas espaciales que el usuario puede arrastrar e inclinar
Three.jsEscenas 3D interactivasRenderizado pesado dentro de un entorno aislado
ShaderToyShaders GLSL ejecutándose en vivoGráficos por GPU en un iframe
Sheet MusicNotación ABC convertida en partituraRenderizadores específicos de un campo
Wiki link graphGrafo de enlaces entre páginas de wikiNavegación nodo a nodo
Cohort HeatmapRetención por grupos de usuariosAnálisis denso de un vistazo
Customer SegmentationGráficos de dispersión y de burbujasAgrupaciones que el usuario puede inspeccionar
Scenario ModelerProyecciones de SaaSEntradas que vuelven a dibujar los resultados
Budget AllocatorDeslizadores y gráficosControles ligados a totales en vivo
System MonitorMétricas del sistema operativoDatos que cambian continuamente
PDF ServerVisor de documentos por fragmentosArchivos grandes en partes
Video ResourceVideo binario a través de MCPCargas útiles que no son texto
TranscriptVoz a textoEntrada de audio
Say DemoTexto a vozSalida de audio
QR CodeGenerador de códigosLa app útil más pequeña

Mapas y escenas 3D

El ejemplo Map muestra un globo 3D con CesiumJS. Pides al asistente que muestre una ciudad y el globo vuela hasta allí. Puedes arrastrarlo, hacer zoom e inclinarlo como en cualquier aplicación de mapas, porque es una interfaz en vivo y no una captura de pantalla. La vista se comunica con el host por el mismo canal que todo lo demás, así que lo que el usuario hace en el mapa puede influir en lo que el modelo diga después.

Portátil que muestra un mapa interactivo junto a un mapa de calles en papel y un boceto en alambre

Three.js y ShaderToy llevan la misma idea hacia los gráficos. Uno renderiza escenas 3D interactivas y el otro ejecuta shaders GLSL en vivo. Ninguno necesita un viaje de ida y vuelta al servidor por cada fotograma, lo que demuestra que el renderizado intensivo en GPU funciona bien dentro del entorno aislado. Si tu herramienta devuelve geometría, terreno o cualquier cosa espacial, estos son los dos que conviene copiar.

Paneles y gráficos

El análisis es donde la interfaz interactiva rinde más rápido. Cohort Heatmap muestra la retención por grupos de usuarios. Customer Segmentation dibuja gráficos de dispersión y de burbujas con agrupaciones que puedes inspeccionar. System Monitor transmite las métricas del sistema operativo a medida que cambian, y la demo del grafo de enlaces de la wiki dibuja un grafo que puedes seguir nodo a nodo.

Gerente de producto de pie en un escritorio elevable revisando un panel con gráfico de barras y un menú de filtros

Cada uno reemplaza una respuesta larga y difícil de leer por algo que puedes revisar en dos segundos. El monitor del sistema es el ejemplo que conviene estudiar si tus datos cambian mientras el usuario mira, porque muestra cómo una vista puede seguir actualizándose después de que llega el primer resultado.

Deslizadores y herramientas de planificación

Budget Allocator combina deslizadores con gráficos para que muevas dinero entre categorías y veas cómo reaccionan los totales. Scenario Modeler hace lo mismo con las proyecciones de SaaS: cambias tus supuestos de crecimiento y costos, y la curva de ingresos se vuelve a dibujar. Estos dos son los mejores ejemplos didácticos del repositorio porque el patrón es sencillo. El usuario mueve un control, la app recalcula y el gráfico se actualiza.

Dedo deslizando un control en una tableta que muestra un gráfico de asignación de presupuesto

💡 Consejo: Si un cálculo es barato, ejecútalo dentro de la vista. Reserva las llamadas a herramientas para los datos que viven en tu servidor.

Documentos, música y medios

PDF Server sirve un documento por fragmentos, de modo que un archivo grande no tiene que llegar de una sola vez. Sheet Music convierte la notación ABC en una partitura legible. Video Resource transmite video binario a través de MCP, Transcript convierte voz en texto, Say Demo lee un texto en voz alta y la app QR Code genera un código escaneable en una sola llamada. Cada una es pequeña y cada una muestra un tipo distinto de carga útil que una app puede manejar.

Manos de un pianista junto a un piano con un equipo portátil en el atril que muestra una partitura

Productos que ya se usan hoy

Los socios de lanzamiento

El anuncio nombró diez socios de lanzamiento: Amplitude, Asana, Box, Canva, Clay, Figma, Hex, monday.com, Slack y Salesforce. Los casos de uso que se describieron junto al lanzamiento fueron el diseño colaborativo, los paneles de exploración de datos, la coordinación de proyectos y la respuesta a incidentes. Dicho de otra forma, los mismos patrones que acabas de ver en las demos, aplicados a herramientas que la gente ya paga.

Eso importa para quien construye sobre el estándar. Una especificación con diez nombres reconocibles desde el primer día es una especificación que los clientes seguirán implementando, y significa que la interfaz que construyes hoy no depende de un solo proveedor.

Lo que ven los usuarios

En el chat, una MCP App aparece como un panel dentro de la conversación. El usuario puede interactuar con él directamente, y el modelo sigue formando parte del intercambio. Detrás de escena, el host pide el consentimiento del usuario antes de ejecutar las herramientas, y cada mensaje entre la vista y el host es un mensaje JSON-RPC que se puede registrar y auditar.

Cuatro compañeros alrededor de un equipo portátil revisando un gráfico de dispersión de grupos de clientes

Los equipos suelen adoptarlo primero para tareas de revisión. Una persona hace una pregunta en el chat, aparece el panel y todos en la mesa pueden señalar el mismo gráfico en lugar de leer el mismo párrafo.

Cómo funciona una app por dentro

Cada MCP App se construye con tres piezas: una herramienta, un recurso y una vista.

Herramienta, recurso y vista

La herramienta declara qué interfaz usa mediante _meta.ui.resourceUri, una dirección ui://. El recurso devuelve el paquete HTML de esa dirección. La vista es el código que se ejecuta dentro del iframe. El servidor de inicio rápido oficial tiene este aspecto:

import {
  registerAppResource,
  registerAppTool,
  RESOURCE_MIME_TYPE,
} from "@modelcontextprotocol/ext-apps/server";

registerAppTool(
  server,
  "get-time",
  {
    title: "Get Time",
    description: "Returns the current server time.",
    inputSchema: {},
    _meta: { ui: { resourceUri } },
  },
  async () => {
    const time = new Date().toISOString();
    return { content: [{ type: "text", text: time }] };
  },
);

registerAppResource(
  server,
  resourceUri,
  resourceUri,
  { mimeType: RESOURCE_MIME_TYPE },
  async () => {
    const html = await fs.readFile(path.join(DIST_DIR, "mcp-app.html"), "utf-8");
    return { contents: [{ uri: resourceUri, mimeType: RESOURCE_MIME_TYPE, text: html }] };
  },
);

Fíjate en que la herramienta sigue devolviendo contenido de texto plano. Un host sin soporte para MCP Apps obtiene una respuesta útil, y un host con soporte obtiene la interfaz encima de ella.

Manos de un desarrollador escribiendo código de servidor en un equipo portátil con un panel de vista previa del navegador abierto

Llamar a herramientas desde la interfaz

Dentro del iframe, la clase App de @modelcontextprotocol/ext-apps gestiona la comunicación con el host. Recibe el resultado de la herramienta y puede llamar a sus propias herramientas del servidor:

import { App } from "@modelcontextprotocol/ext-apps";

const app = new App({ name: "Get Time App", version: "1.0.0" });

app.ontoolresult = (result) => {
  const time = result.content?.find((c) => c.type === "text")?.text;
  serverTimeEl.textContent = time ?? "[ERROR]";
};

getTimeBtn.addEventListener("click", async () => {
  const result = await app.callServerTool({ name: "get-time", arguments: {} });
});

app.connect();

Si construyes con React, el paquete incluye hooks en @modelcontextprotocol/ext-apps/react, entre ellos useApp y useHostStyles. Por debajo, los dos lados se comunican a través de un PostMessageTransport, que es el canal de mensajes del iframe adaptado para MCP.

Por qué importa el entorno aislado

Una app de chat que muestra código de interfaz procedente de un servidor de terceros está ejecutando código ajeno junto a tu conversación. Todo el diseño parte de que ese código no es de confianza, y eso es algo bueno.

Vitrina de cristal con una pequeña maqueta arquitectónica de madera sobre una mesa de taller

Cuatro capas de protección

  • Los iframes en sandbox restringen los permisos y el acceso a la red, de modo que la vista solo puede hacer lo que el host permite.
  • Las plantillas declaradas de antemano hacen que el host sepa qué interfaz usará una herramienta antes de ejecutarla, lo que dificulta mucho más inyectar contenido inesperado.
  • Los mensajes JSON-RPC auditables convierten cada intercambio entre la vista y el host en un registro que puedes inspeccionar.
  • El consentimiento del usuario es obligatorio antes de ejecutar las herramientas, así que un panel no puede actuar en tu nombre sin que lo notes.

💡 ¿Lo construyes para una empresa? Pide a tu equipo de seguridad que lea esos cuatro puntos. Reconocerán el modelo: es el mismo que se usa para widgets de terceros incrustados, pero reforzado para un chat de IA.

Crea la tuya en una tarde

Elige una plantilla de inicio

El repositorio incluye apps de inicio básicas en React, Vue, Svelte, Preact, Solid y JavaScript puro. Elige la que coincida con el stack de front-end que ya usa tu equipo, cópiala y cambia la herramienta de ejemplo por la tuya. La parte del servidor es la misma sin importar la plantilla que elijas.

Deja que las skills de agente hagan la configuración

El repositorio también incluye cuatro skills de agente que automatizan las partes repetitivas:

  • create-mcp-app crea desde cero una nueva MCP App.
  • migrate-oai-app convierte una app de OpenAI existente al estándar compartido.
  • add-app-to-server añade una interfaz a las herramientas de un servidor que ya tienes en marcha.
  • convert-web-app transforma una app web existente en una app híbrida web y MCP.

Diseñadora de UX clavando bocetos impresos en un tablero de corcho junto a un equipo portátil

Errores de diseño que conviene evitar

  1. Anchos fijados en el código. Un panel de chat es estrecho, y en un teléfono lo es todavía más. Diseña primero para el tamaño más pequeño.
  2. Ignorar el tema del host. Usa useHostStyles o el equivalente para que tu panel coincida con el modo claro y oscuro del host.
  3. Llamadas a herramientas para cálculos sencillos. Cada llamada pasa por el host, así que mantén los cálculos triviales dentro de la vista.
  4. Sin texto de respaldo. Devuelve contenido de texto útil desde cada herramienta, como hace el inicio rápido, porque no todos los hosts muestran la interfaz.

Viajero en un tren sosteniendo un teléfono que muestra un chat con un pequeño gráfico dentro

Usa Claude Sonnet 5 en PicassoIA

Escribir el servidor, el paquete HTML y el código de unión es sobre todo teclear, y Claude Sonnet 5 en PicassoIA está pensado justamente para eso. Maneja tareas de programación de varios pasos y uso de herramientas, y lee imágenes, así que un boceto de wireframe puede ir directamente en la solicitud.

  1. Abre la página del modelo. Ve a Claude Sonnet 5 y localiza el cuadro de prompt.
  2. Escribe el prompt. Describe la herramienta, su esquema de entrada y lo que debe mostrar la vista. Por ejemplo: "Escribe una MCP App con una herramienta, show-budget, y una vista en React con tres deslizadores que vuelvan a dibujar un gráfico de barras. Usa @modelcontextprotocol/ext-apps."
  3. Ajusta el nivel de esfuerzo. El ajuste effort va de bajo a máximo. Bajo es el valor por defecto, desactiva el pensamiento y responde más rápido. Cambia a alto o máximo cuando la app afecte a varios archivos.
  4. Adjunta un wireframe. Usa el campo image para un boceto del panel. El ajuste max_image_resolution reduce la imagen antes de enviarla, lo que ahorra tiempo y costo.
  5. Añade un prompt de sistema. Fija el stack una vez, por ejemplo "TypeScript, React, devuelve solo archivos completos", y reutilízalo en todo el proyecto.
  6. Divide las solicitudes grandes. Una respuesta llega como máximo a 8.192 tokens, así que pide primero el archivo del servidor y después el archivo de la vista.

Si quieres una segunda opinión sobre el mismo prompt, GPT 5.6 Sol también está en la plataforma y está pensado para tareas de programación complejas.

💡 Compara el resultado con el inicio rápido. A veces los modelos adivinan nombres de API antiguos. Compara las importaciones y la llamada a registerAppTool con los fragmentos de arriba antes de ejecutar nada.

Pruébalo en PicassoIA

Toda buena interfaz empieza como una imagen en tu cabeza. Antes de escribir una sola línea de código, genera en PicassoIA las maquetas, las imágenes principales y las escenas de demostración de tu app. Seedream 4.5 crea imágenes fijas nítidas en 4K a partir de una descripción breve, Flux 2 Pro es una buena opción para escenas de estilo fotográfico, GPT Image 2 sigue con precisión los prompts largos y P Image devuelve imágenes en aproximadamente un segundo cuando quieres iterar rápido.

Empieza con un prompt sencillo: un equipo portátil sobre un escritorio de madera que muestra un panel limpio con un mapa y dos deslizadores, luz suave de la mañana, profundidad de campo poco profunda. Ejecútalo, cambia un detalle y vuelve a ejecutarlo. Cuando una imagen fija no basta, los modelos de texto a video de la plataforma pueden convertir la misma idea en un clip corto.

Elige un modelo, escribe tu primer prompt y mira lo que puedes crear. El catálogo completo está en picassoia.com/en/all-models.

Compartir este artículo

Elige tu idioma