
Vector Sync
STDIOMulti-tenant vector search synchronization service using Supabase and OpenAI embeddings.
Multi-tenant vector search synchronization service using Supabase and OpenAI embeddings.
Servicio MCP para sincronización automática de vectores de búsqueda multi-tenant con Supabase mediante un sistema basado 100% en eventos.
Este servicio recibe notificaciones en tiempo real de Supabase cuando hay cambios en la tabla proyectos
, genera embeddings vectoriales utilizando OpenAI, y actualiza la tabla proyecto_vector
manteniendo una búsqueda vectorial eficiente para cada tenant. Implementa el protocolo MCP (Model Context Protocol) para exponer herramientas y recursos de sincronización.
El sistema utiliza una arquitectura basada completamente en eventos:
webhook_logs
para debugging y monitoreoproyectos
y proyecto_vector
El servicio utiliza variables de entorno para su configuración:
# Supabase
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
# OpenAI
OPENAI_API_KEY=your-openai-api-key
OPENAI_MODEL=text-embedding-ada-002
# Rate Limiting
RATE_LIMIT_PER_TENANT=100
CONCURRENT_REQUESTS=5
# Logging
LOG_LEVEL=info
npm install
Configurar variables de entorno (crear archivo .env
en la raíz del proyecto)
Ejecutar en modo desarrollo:
npm run dev
Para ejecutar el servicio con Docker:
# Construir la imagen docker build -t mcp-vector-sync . # Ejecutar el contenedor docker run -p 3000:3000 --env-file .env mcp-vector-sync
O con Docker Compose:
docker-compose up
git init git add . git commit -m "Initial commit" git remote add origin https://github.com/tu-usuario/mcp-vector-sync.git git push -u origin main
mcp-vector-sync
Railway utilizará el archivo railway.json
para configurar el deployment y el Dockerfile para construir la imagen.
Una vez desplegado, puedes monitorear el servicio usando el endpoint /health
:
https://tu-proyecto.railway.app/health
El sistema recibe webhooks en el siguiente endpoint:
https://tu-proyecto.railway.app/webhook/project-update
El payload esperado para el webhook debe incluir:
{ "inmobiliaria_id": "uuid-del-tenant", "project_id": "uuid-del-proyecto", "event": "INSERT|UPDATE", "timestamp": "2025-03-22T17:45:00Z" }
El servicio expone las siguientes herramientas MCP:
sync-tenant
: Fuerza la sincronización para un tenant específicoget-sync-status
: Obtiene el estado de sincronización de un tenantcontrol-monitor
: Inicia o detiene el monitor de sincronizaciónwebhook_logs
para diagnosticar problemas de webhooksLOG_LEVEL=debug
Para actualizar el servicio:
package.json