Hosted MCP Apps Example Gallery
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 |
| "Muéstrame la hora actual del servidor en una aplicación interactiva." |
Budget Allocator |
| "Abre un asignador de presupuesto interactivo." |
Cohort Heatmap |
| "Muéstrame un mapa de calor de retención de clientes interactivo." |
Customer Segmentation |
| "Explora los clientes sintéticos en un gráfico de segmentación interactivo." |
Scenario Modeler |
| "Modela un escenario de crecimiento sintético de forma interactiva." |
Transcript |
| "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 |
|
| Entrega de resultados y actualización en el mismo servidor | Solo la marca de tiempo actual del servidor |
Budget Allocator |
|
| Controles de presupuesto, gráfico y herramientas proporcionadas por la aplicación | Categorías sintéticas fijas y puntos de referencia |
Cohort Heatmap |
|
| Controles de cohorte limitados y actualización en el mismo servidor | Cohortes sintéticos deterministas, como máximo 12 × 12 |
Customer Segmentation |
|
| Filtros y visualización de clientes sintéticos | Registros sintéticos fijos, filtros limitados |
Scenario Modeler |
|
| Plantillas y proyecciones limitadas en el mismo servidor | Entradas sintéticas y cálculos de 12 meses |
Transcript |
|
| 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-28actuales;retroceso Streamable HTTP sin estado de la era 2025;
initialize,tools/list,tools/callyresources/read;recursos
text/html;profile=mcp-appcon 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:
scripts/generate-upstream-manifest.tsregistra la fuente congelada y las adaptaciones propiedad de la galería.scripts/bundle-mcp-app-resources.tscompila recursos HTML deterministas de un solo archivo y falla por encima de 512 KiB.scripts/generate-gallery.tsgenera el manifiesto de la página de inicio y los activos estáticos con hash de contenido.scripts/generate-sbom.tsgenera el inventario CycloneDX confirmado.src/resources.tsvalida 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
/healthzsolo demuestra que la función responde./readyzvalida el registro, los slugs habilitados, el recuento de recursos empaquetados, los tamaños y los resúmenes./versiondevuelve 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 devAbre 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:ciEsa 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-reactexamples/budget-allocator-serverexamples/cohort-heatmap-serverexamples/customer-segmentation-serverexamples/scenario-modeler-serverexamples/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.
This server cannot be installed
Maintenance
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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