Sneaker Carousel MCP App
Enables browsing a sneaker carousel, selecting sizes and quantities, and simulating a checkout process within Claude via an MCP App.
README
Sneaker Carousel MCP App
Demo portable de MCP Apps para mostrar en Claude: carrusel de zapatillas, selección de talle/cantidad y botón de pago simulado.
Qué demuestra
- Un tool visible para el modelo:
show-sneaker-carousel. - Un recurso
ui://sneaker-drop/carousel.htmlrenderizado por el host. - HTML, CSS y JavaScript empaquetados en un único archivo.
- Una llamada UI → host → servidor mediante
app.callServerTool(). - Un tool privado para la UI:
prepare-demo-checkout. - Validación autoritativa de producto, talle y total en el servidor.
- Adaptación al tema y tipografías del host.
El pago es una simulación. No solicita tarjeta ni procesa dinero.
Ejecutar localmente
Requisitos: Node.js 20 o superior.
npm install
npm run build
npm start
Endpoint MCP:
http://localhost:3001/mcp
Health check:
http://localhost:3001/
Vista previa del carrusel sin un host MCP:
http://localhost:3001/preview
Probar con el basic-host oficial
En otra carpeta:
git clone https://github.com/modelcontextprotocol/ext-apps.git
cd ext-apps
npm install
SERVERS='["http://localhost:3001/mcp"]' npm start
Abrí http://localhost:8080, elegí show-sneaker-carousel y ejecutá el tool.
Deploy con Docker
docker build -t sneaker-mcp-app .
docker run --rm -p 3001:3001 sneaker-mcp-app
Podés desplegar el Dockerfile en Railway, Render, Fly.io, Cloud Run o ECS. El servicio debe quedar públicamente accesible por HTTPS.
Ejemplo final:
https://tu-dominio.example/mcp
Conectarlo a Claude
- Desplegá el proyecto con HTTPS.
- En Claude abrí Customize / Connectors.
- Elegí Add custom connector.
- Pegá
https://tu-dominio.example/mcp. - Para esta demo, seleccioná conexión sin autenticación si Claude ofrece esa opción.
- En un chat, activá el conector y escribí:
Mostrame el carrusel de zapatillas y ayudame a elegir una.
Claude debería llamar show-sneaker-carousel y renderizar la MCP App dentro de la conversación.
Checkout externo opcional
Si definís:
DEMO_CHECKOUT_URL=https://example.com/checkout
el servidor devolverá esa URL y la MCP App pedirá al host abrirla. Para una integración real, generá una URL única de checkout en el backend y confirmá el pago por webhook. No confíes en el monto enviado por la interfaz.
Estructura
.
├── main.ts # servidor HTTP/stdio
├── server.ts # tools y recurso MCP App
├── mcp-app.html # entrada de la UI
├── src/
│ ├── mcp-app.ts # comportamiento del carrusel y checkout
│ └── styles.css # estilos responsivos
├── Dockerfile
└── render.yaml
Solución de problemas
outputSchema no acepta z.object(...)
Esta versión usa @modelcontextprotocol/ext-apps 1.7.4 junto con el SDK MCP 1.29.0. Los helpers del servidor terminan delegando en la API Zod del SDK 1.x, por lo que los schemas de salida se pasan como shapes:
outputSchema: StoreOutputSchema.shape
root is possibly null
El elemento raíz se valida una vez y luego se guarda con tipo HTMLElement, de modo que TypeScript conserva el tipo dentro de callbacks.
Cannot find module dist/main.js
dist/main.js se genera recién cuando npm run build termina correctamente. Ejecutá:
rm -rf dist
npm run build
npm start
Avisos de npm audit
Los avisos de auditoría no causan los errores de compilación. Revisalos con:
npm audit
npm audit fix
npm run build
No ejecutes npm audit fix --force sin revisar los cambios, porque puede instalar actualizaciones mayores incompatibles.
Compatibilidad con Claude
La UI primero lee structuredContent. Como fallback de compatibilidad, también puede recuperar el catálogo y la orden desde un payload JSON marcado dentro de content. Esto permite que la demo siga renderizando en hosts que no reenvían structuredContent al iframe.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.