Sistema MCP (Model Context Protocol) construido con arquitectura verdaderamente modular usando Fastify.
- 🏗️ Arquitectura Modular Real - Código separado por responsabilidades
- ⚡ Fastify - Servidor HTTP de alto rendimiento
- 📡 API Completa - Endpoints y funcionalidades del servidor
- 🔌 Plugins Modulares - Sistema extensible de funcionalidades
- 🛡️ TypeScript - Tipado fuerte y desarrollo seguro
- 🗄️ Supabase - Base de datos moderna y escalable
src/
├── 📁 config/ # Configuraciones
│ ├── database.ts # Configuración Supabase
│ └── restaurant.ts # Datos del restaurante
├── 📁 services/ # Lógica de negocio
│ ├── menu.ts # Servicio de menú
│ ├── orders.ts # Servicio de órdenes
│ ├── restaurants.ts # Servicio de restaurantes
│ └── geolocation.ts # Servicio de geolocalización
├── 📁 tools/ # Herramientas MCP
│ ├── menu-tools.ts # Herramientas de menú
│ ├── order-tools.ts # Herramientas de órdenes
│ └── mesero-tools.ts # Consultas del mesero
├── 📁 plugins/ # Plugins Fastify
│ └── mcp.ts # Plugin MCP
├── 📁 routes/ # Rutas HTTP
│ ├── health.ts # Health check
│ ├── mcp.ts # Rutas MCP
│ └── restaurants.ts # API REST de restaurantes
│ ├── mcp.ts # Endpoint MCP
│ └── health.ts # Health checks
└── 🚀 server.ts # Servidor principal
- Node.js 18+
- npm o yarn
-
Clonar repositorio
git clone <repo-url> cd mcp-prueba-agente-v1
-
Instalar dependencias
npm install
-
Configurar variables de entorno
cp .env.example .env # Editar .env con tus credenciales de Supabase
-
Compilar y ejecutar
npm run build npm start
# Construir imagen
docker build -t sumo-sushi-mcp .
# Ejecutar contenedor
docker run -p 3000:3000 --env-file .env sumo-sushi-mcp
npm run build
- Compilar TypeScriptnpm run dev
- Desarrollo con recarga automáticanpm start
- Iniciar servidor de producciónnpm run clean
- Limpiar archivos compiladosnpm run lint
- Verificar tipos TypeScript
GET /
- Homepage con información del restauranteGET /health
- Health check del servidorPOST /mcp
- Endpoint principal MCP
GET /api/restaurants/nearby
- 🆕 Buscar restaurantes cercanos por geolocalizaciónGET /api/restaurants
- Listar restaurantes con filtrosGET /api/restaurants/:id
- Obtener restaurante específico
curl "https://fastapi-2ifl.onrender.com/api/restaurants/nearby?latitude=9.9281&longitude=-84.0907&radius_km=10&limit=20"
- consulta_mesero - Consultas generales sobre el restaurante
- buscar_menu - Búsqueda de items del menú con filtros
- consultar_restaurantes - Listar restaurantes con filtros múltiples
- crear_orden - Crear nuevos pedidos
- consultar_ordenes_por_cedula - Consultar órdenes existentes
- cancelar_por_cedula - Cancelar órdenes
- cotizar_orden - Calcular total antes de crear orden
- disponibilidad_items - Verificar stock de platillos
- restaurantes_cercanos - 🆕 Buscar restaurantes por ubicación GPS
- search - Búsqueda general en el sistema
- fetch - Obtener contenido específico por ID
La herramienta restaurantes_cercanos
también está disponible como endpoint REST en /api/restaurants/nearby
para uso directo desde apps web/móviles.
SUPABASE_URL=tu_url_supabase
SUPABASE_ANON_KEY=tu_key_supabase
PORT=3000
HOST=0.0.0.0
NODE_ENV=production
railway login
railway init
railway add
railway deploy
- Conectar repositorio
- Configurar variables de entorno
- Deploy automático
# En el servidor
git clone <repo>
cd mcp-prueba-agente-v1
npm ci --only=production
npm run build
pm2 start dist/server.js --name sumo-sushi-mcp
- Crear servicio en
src/services/
- Crear herramientas en
src/tools/
- Registrar en plugin
src/plugins/mcp.ts
- Compilar y probar
La modularidad real permite:
- ✅ Separación clara de responsabilidades
- ✅ Fácil testing de componentes individuales
- ✅ Escalabilidad sin límites
- ✅ Mantenimiento sencillo
MIT License - Ver LICENSE
para más detalles.
⚡ Fast API v3.0.0 - Arquitectura Modular Real 🚀