Skip to main content
Glama
different-ai

Hosted MCP Apps Example Gallery

by different-ai

Galería de ejemplos de aplicaciones MCP alojadas

Una adaptación independiente y alojada con límites de solicitud de seis ejemplos oficiales de MCP Apps. La galería está diseñada para que alguien copie una URL remota de Streamable HTTP, la conecte en un host de MCP Apps y pruebe un flujo completo de herramientas/recursos interactivos sin clonar el código fuente ni abrir un túnel.

Este repositorio y servicio son infraestructura de aprendizaje independiente. No son un proyecto o servicio oficial del Model Context Protocol, no tienen SLA y no aceptan cuentas, cargas, credenciales ni datos de usuario duraderos.

Prueba la galería alojada

La galería de producción verificada es openwork-mcp-app-gallery-sol.vercel.app. Añade cualquiera de estas URL de Streamable HTTP a un host compatible con MCP Apps:

Aplicación

URL MCP de producción

Ejemplo de prompt

Get Time

https://openwork-mcp-app-gallery-sol.vercel.app/apps/get-time/mcp

"Muéstrame la hora actual del servidor en una aplicación interactiva."

Budget Allocator

https://openwork-mcp-app-gallery-sol.vercel.app/apps/budget-allocator/mcp

"Abre un asignador de presupuesto interactivo."

Cohort Heatmap

https://openwork-mcp-app-gallery-sol.vercel.app/apps/cohort-heatmap/mcp

"Muéstrame un mapa de calor de retención de clientes interactivo."

Customer Segmentation

https://openwork-mcp-app-gallery-sol.vercel.app/apps/customer-segmentation/mcp

"Explora los clientes sintéticos en un gráfico de segmentación interactivo."

Scenario Modeler

https://openwork-mcp-app-gallery-sol.vercel.app/apps/scenario-modeler/mcp

"Modela un escenario de crecimiento sintético de forma interactiva."

Transcript

https://openwork-mcp-app-gallery-sol.vercel.app/apps/transcript/mcp

"Abre la interfaz de transcripción del navegador local."

En un host que admita herramientas MCP pero no MCP Apps, los mismos endpoints siguen devolviendo texto normal y resultados de herramientas estructurados; solo se omite el recurso interactivo incrustado. Cada URL expone exactamente una aplicación, así que conecta varias URL cuando quieras múltiples ejemplos. El endpoint copiado no necesita cuenta, token ni encabezado personalizado.

El servicio no tiene SLA intencionadamente. Las entradas están limitadas y son sintéticas. La aplicación Transcript mantiene el audio del micrófono en el navegador y no lo sube a este servidor. Consulta Límites y comportamiento de error y Diagnósticos y observabilidad segura antes de usar la galería en un entorno compartido o automatizado.

Catálogo de la galería

Aplicación

Ruta MCP remota

Herramienta

Comportamiento interactivo

Límite de datos

Get Time

/apps/get-time/mcp

get-time

Entrega de resultados y actualización en el mismo servidor

Solo la marca de tiempo actual del servidor

Budget Allocator

/apps/budget-allocator/mcp

get-budget-data

Controles de presupuesto, gráfico y herramientas proporcionadas por la aplicación

Categorías sintéticas fijas y puntos de referencia

Cohort Heatmap

/apps/cohort-heatmap/mcp

get-cohort-data

Controles de cohorte limitados y actualización en el mismo servidor

Cohortes sintéticos deterministas, como máximo 12 × 12

Customer Segmentation

/apps/customer-segmentation/mcp

get-customer-data

Filtros y visualización de clientes sintéticos

Registros sintéticos fijos, filtros limitados

Scenario Modeler

/apps/scenario-modeler/mcp

get-scenario-data

Plantillas y proyecciones limitadas en el mismo servidor

Entradas sintéticas y cálculos de 12 meses

Transcript

/apps/transcript/mcp

transcribe

Interfaz de voz local del navegador y navegación estructurada

El audio permanece en el navegador; no se sube al servidor

Cada ruta es una superficie de servidor MCP independiente con exactamente una herramienta de la galería y un recurso ui:// inmutable. Deliberadamente no hay un mega-MCP raíz ni acceso a herramientas o recursos entre aplicaciones.

Protocolo y contrato del host

El tiempo de ejecución usa mcp-handler 2.1.1 y @modelcontextprotocol/server 2.0.0 a través de un adaptador de registro SDK-v2 propiedad de la galería. Admite:

  • envolturas de descubrimiento y solicitud MCP 2026-07-28 actuales;

  • retroceso Streamable HTTP sin estado de la era 2025;

  • initialize, tools/list, tools/call y resources/read;

  • recursos text/html;profile=mcp-app con metadatos de interfaz de usuario anidados y planos heredados;

  • contenido de texto normal y contenido estructurado para hosts que no son de aplicaciones;

  • inicialización de aplicaciones, entrega inicial de entrada/resultado y llamadas a herramientas del mismo servidor activadas por la interfaz de usuario;

  • cancelación de solicitudes propagada desde Vercel a través de la puerta de enlace, el controlador, la herramienta y el trabajo del recurso.

El servicio no tiene estado. POST lleva solicitudes MCP. GET se enruta al controlador y devuelve su 405 intencional sin sesión; DELETE devuelve 405; OPTIONS limitado está disponible solo para orígenes de navegador en lista blanca. Esto coincide con el contrato de transporte sin estado del controlador de doble era y evita implicar que existe una sesión del lado del servidor.

Arquitectura del tiempo de ejecución

Un punto de entrada Hono reconocido por Vercel, app.ts, sirve la página de inicio, los diagnósticos y seis rutas MCP parametrizadas a través de una función sin estado. Vercel sirve los activos públicos generados desde public/ a través de su CDN.

La compilación está deliberadamente cerrada sobre el código fuente confirmado y el archivo de bloqueo congelado:

  1. scripts/generate-upstream-manifest.ts registra la fuente congelada y las adaptaciones propiedad de la galería.

  2. scripts/bundle-mcp-app-resources.ts compila recursos HTML deterministas de un solo archivo y falla por encima de 512 KiB.

  3. scripts/generate-gallery.ts genera el manifiesto de la página de inicio y los activos estáticos con hash de contenido.

  4. scripts/generate-sbom.ts genera el inventario CycloneDX confirmado.

  5. src/resources.ts valida la procedencia exacta de la fuente, la identidad del recurso, el tamaño en bytes y SHA-256 antes de que la preparación tenga éxito.

No hay recuperación de fuente en tiempo de ejecución, instalación de paquetes, subprocesos, entrada de URL arbitraria, carga, salida intencional del servidor ni ruta de sistema de archivos mutable.

Límites y comportamiento de error

  • Cuerpo de solicitud: 256 KiB por solicitud MCP.

  • Resultado de herramienta y recurso de aplicación: 512 KiB cada uno.

  • Plazo de aplicación: 15 segundos.

  • Límite de función de Vercel: 30 segundos con cancelación habilitada.

  • Concurrencia: 48 por proceso, con un límite declarado más pequeño por aplicación.

La puerta de concurrencia es solo protección local de la instancia; no se representa como un limitador de velocidad distribuido globalmente autoritativo entre instancias de Fluid. Las solicitudes que exceden el límite reciben 429 más Retry-After; las solicitudes sobredimensionadas reciben 413; los resultados posteriores sobredimensionados reciben 502; los plazos vencidos reciben 504; la cancelación del cliente se distingue internamente. Las respuestas públicas contienen errores limitados y nunca incluyen seguimientos de pila ni rutas del sistema de archivos.

Establece DISABLED_APP_SLUGS en un subconjunto separado por comas de los seis slugs para el interruptor de apagado del tiempo de ejecución. Las aplicaciones deshabilitadas desaparecen del catálogo activo generado y devuelven 404; /readyz, /version y /apps.json informan del conjunto habilitado. apps.json usa una política corta public, max-age=60, must-revalidate para que un cambio de aplicación deshabilitada no pueda permanecer oculto detrás de un caché inmutable largo.

Diagnósticos y observabilidad segura

  • /healthz solo demuestra que la función responde.

  • /readyz valida el registro, los slugs habilitados, el recuento de recursos empaquetados, los tamaños y los resúmenes.

  • /version devuelve solo SHA de compilación, confirmación ascendente congelada, espacio de nombres del modelo, versión del adaptador, versión de Node, slugs habilitados y una hora de compilación segura cuando está configurado.

Los registros de solicitudes MCP están estructurados y limitados al espacio de nombres sol, slug de aplicación, categoría de método, estado, duración, recuentos de bytes y SHA de compilación segura. Los argumentos, resultados, prompts, contenidos de recursos, encabezados de autorización, cookies, direcciones IP, identificadores de usuario, credenciales y URL de despliegue privadas están prohibidos.

Desarrollo local

Usa Node.js 24.x y pnpm 10.28.0:

pnpm install --frozen-lockfile
pnpm generate
pnpm dev

Abre http://127.0.0.1:4173. Para un origen canónico local o tunelizado, establece un BASE_URL validado explícito. Fuera del desarrollo en bucle local, las URL base públicas deben usar HTTPS y no pueden contener credenciales, cadenas de consulta ni fragmentos. Los encabezados Host y forwarded-host arbitrarios nunca son confiables para endpoints copiables.

La ruta de verificación completa propiedad del repositorio es:

pnpm exec playwright install chromium
pnpm run release:check:ci

Esa ruta ejecuta formato, lint, TypeScript estricto, pruebas de contrato de puerta de enlace y de doble era, pruebas de puente de aplicaciones MCP en navegador real, comprobaciones de aviso/procedencia, comprobaciones de arquitectura de Vercel, auditoría de dependencias de producción, escaneos de límites de fuente y secretos, generación de SBOM y una compilación de aplicación con forma de producción. pnpm run release:check añade vercel build --prod --yes cuando el proyecto exacto de Vercel está vinculado.

Diseño de verificación

La matriz de contrato usa el cliente oficial SDK-v2 en modo actual fijado y modo heredado contra los seis endpoints. Enumera herramientas, llama a cada herramienta representativa, lee cada recurso de aplicación, verifica el retroceso normal, rechaza recursos extraños, comprueba entradas no válidas, repite ciclos de conexión y ejecuta 20 clientes representativos en el catálogo aislado.

Las pruebas de puerta de enlace cubren rutas desconocidas, deshabilitadas, con forma de traversal y suplantadas; CORS; política de métodos; límites de cuerpo reales y anunciados; JSON y JSON-RPC malformados; contención del controlador; límites de resultado; plazos; cancelación; concurrencia; fallo de arranque por recurso faltante; y preparación en frío/caliente.

Playwright ejecuta cada interfaz de usuario empaquetada dentro de un host AppBridge oficial separado, entrega la entrada/resultado inicial de la herramienta, ejecuta viajes de ida y vuelta de la interfaz de usuario a la herramienta, y comprueba la representación del catálogo, el comportamiento de copia, los nombres accesibles, el foco de teclado visible, las alternativas de imagen y el diseño de 320 px. Ese arnés prueba el contrato de navegador/puente de la galería; no está mal etiquetado como prueba de un host de producción no relacionado.

La evidencia de lanzamiento y cualquier estado de prueba específico del despliegue se registran en BENCHMARK_REPORT.md, benchmark/result.json, TIMELINE.md y benchmark/timeline.json. La evidencia faltante de un host externo permanece como Incomplete o Skipped, nunca como Passed por sustitución.

Fuente y límite de licencia

La instantánea de auditoría está congelada en modelcontextprotocol/ext-apps@10195ad91851502134930e9b80ec2c04e277a720. Solo estos directorios de ejemplo ascendentes están incluidos:

  • examples/basic-server-react

  • examples/budget-allocator-server

  • examples/cohort-heatmap-server

  • examples/customer-segmentation-server

  • examples/scenario-modeler-server

  • examples/transcript-server

Cada archivo copiado permanece byte por byte bajo upstream/ext-apps/, con ruta original, SHA-256, recuento de bytes, licencia efectiva, aviso y declaración de modificación en upstream/manifest.json. Los paquetes seleccionados declaran MIT en la revisión congelada.

Tres reexpresiones de interfaz de usuario limitadas en tamaño residen bajo ui-adaptations/; la capa de compatibilidad de gráficos limitada reside en src/ui/chart-shim.ts. Estos son código Apache-2.0 propiedad de la galería, y el manifiesto registra sus archivos exactos, resúmenes, tamaños, base y justificación. Consulta THIRD_PARTY_NOTICES.md para la concesión MIT ascendente completa y el aviso de transición de licencia. El código propiedad de la galería es Apache-2.0 bajo LICENSE.

Política de ramas y lanzamientos

forward es la única rama de integración y producción. El trabajo llega mediante solicitudes de extracción enfocadas como sol/gallery-v1; main y dev no son ramas de lanzamiento. La rama protegida requiere solicitudes de extracción, historial lineal, conversaciones resueltas y no permite forzar inserciones ni eliminaciones. La promoción a producción es una acción verificada separada de la fusión.

Consulte CONTRIBUTING.md para el flujo de trabajo local y SECURITY.md para el modelo de amenazas y la ruta de notificación privada.

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Build, deploy, and operate hosted web apps on VibeKit (vibekit.bot) from any MCP client.

  • Access Kernel's cloud-based browsers and app actions via MCP (remote HTTP + OAuth).

  • Public read-only Précis Finance MCP demo with synthetic data; no account or credentials required.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/different-ai/openwork-mcp-app-gallery-sol'

If you have feedback or need assistance with the MCP directory API, please join our Discord server