WebRTC MCP Chat Server
Un servidor de chat WebRTC remoto con salas temporales seguras y soporte MCP para agentes en
Documentación
WebRTC MCP Chat Server v2.0
Un servidor de chat WebRTC diseñado para el trabajo remoto con salas temporales seguras y soporte completo de MCP (Model Context Protocol), pensado para agentes en segundo plano y comunicación en tiempo real.
✨ Novedades en v2.0: Remoto y Seguro
🔐 Salas temporales seguras - Salas de chat criptográficamente seguras y con expiración automática
🚀 Listo para despliegue remoto - Despliega en Railway, Vercel, Render, Heroku en minutos
🤖 Soporte para agentes en segundo plano - Perfecto para CI/CD, coordinación de servicios y automatización
🛡️ Sin configuración local requerida - Integración MCP de cero configuración
⚡ Herramienta CLI incluida - Interfaz de línea de comandos para agentes y scripts
🚀 Inicio rápido
Instalar desde npm (Recomendado)
# Install globally
npm install -g webrtc-mcp-chat
# Create secure temporary room (multiple command options)
webrtc-mcp-chat create --expires 60 --created-by my-agent
# or: chat-room create --expires 60 --created-by my-agent
# Use MCP server with Cursor
webrtc-chat-mcp
Usar sin instalar (npx)
# Create secure temporary room
npx webrtc-mcp-chat create --expires 60 --created-by my-agent
# Use MCP server
npx -p webrtc-mcp-chat webrtc-chat-mcp
Para agentes en segundo plano (sin configuración MCP)
# 1. Deploy to remote server (choose one)
npm install -g @railway/cli && railway up
# or: vercel --prod
# or: Connect to Render/Heroku via GitHub
# 2. Set remote server URL
export CHAT_SERVER_URL=https://your-deployed-app.com
# 3. Use the CLI tool for secure communication
chat-room create --expires 60 --created-by my-agent
chat-room join <roomId> <token> <username>
chat-room send <roomId> <token> <username> "Hello secure world!"
Para usuarios web
¡Solo visita la URL de tu servidor desplegado - no se requiere configuración!
Para desarrollo local con acceso remoto
# Option 1: ngrok (recommended)
npm run dev:ngrok
# Option 2: Cloudflare Tunnel (free)
npm run dev:cloudflare
# Option 3: localtunnel (simple)
npm run dev:localtunnel
# Then use the tunnel URL for remote agents
export CHAT_SERVER_URL=https://your-tunnel-url.com
chat-room create --expires 60 --created-by local-agent
Para usuarios de Cursor/MCP
Después de instalar globalmente, agrega a tu configuración MCP:
{
"mcpServers": {
"webrtc-chat": {
"command": "webrtc-chat-mcp",
"env": {
"CHAT_SERVER_URL": "https://your-deployed-app.com"
}
}
}
}
O usa sin instalación global:
{
"mcpServers": {
"webrtc-chat": {
"command": "npx",
"args": ["webrtc-mcp-chat"],
"env": {
"CHAT_SERVER_URL": "https://your-deployed-app.com"
}
}
}
}
🎯 Perfecto para
- 🤖 Coordinación de agentes en segundo plano
- 🔄 Notificaciones de pipelines CI/CD
- 🔗 Comunicación servicio a servicio
- ⚡ Canales de colaboración temporales
- 🔐 Mensajería segura entre procesos
- 📡 Monitoreo remoto de sistemas
🔐 Características de seguridad
- Tokens criptográficos de 256 bits para acceso a salas
- IDs de sala seguros de 128 bits
- Expiración y limpieza automáticas (1 hora a 24 horas)
- Validación del lado del servidor para todas las operaciones
- Sin almacenamiento persistente - diseño sin estado
- Seguridad de cero configuración
- Listo para túneles - Soporte automático de cabeceras ngrok (evita advertencias del navegador)
- Normalización de URL - Maneja barras finales automáticamente
- Pruebas exhaustivas - Pruebas integradas para funcionalidad de cabeceras
🌐 Despliegue remoto
Despliega en cualquier plataforma en minutos:
| Plataforma | Comando | Notas |
|---|---|---|
| Railway | railway up | Recomendado - incluye soporte WebSocket |
| Vercel | vercel --prod | Despliegue serverless |
| Render | Integración con GitHub | Auto-despliegue desde el repositorio |
| Heroku | git push heroku main | Plataforma clásica |
Consulta REMOTE_DEPLOYMENT.md para instrucciones detalladas.
🛠️ Arquitectura
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Web Users │ │ MCP/Cursor Users│ │ Background │
│ │ │ │ │ Agents/CLI │
├─────────────────┤ ├─────────────────┤ ├─────────────────┤
│ • Video/Audio │ │ • Text Chat │ │ • API Calls │
│ • Screen Share │ │ • MCP Tools │ │ • CLI Commands │
│ • WebRTC P2P │ │ • Resources │ │ • HTTP/REST │
└─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘
│ │ │
└──────────────────────┼──────────────────────┘
│
┌─────────────────┐
│ Chat Server │
│ (Remote) │
├─────────────────┤
│ • Socket.IO │
│ • HTTP/REST API │
│ • WebRTC Signal │
│ • Temp Rooms │
│ • Auto Cleanup │
└─────────────────┘
📋 Comandos CLI
La herramienta CLI incluida proporciona todo lo que los agentes en segundo plano necesitan:
# Create secure temporary room
chat-room create --expires 120 --created-by agent-1
# Join room with credentials
chat-room join <roomId> <token> <username>
# Send secure messages
chat-room send <roomId> <token> <username> "Hello world"
# Get room information
chat-room info <roomId> <token>
# Check server health
chat-room health
# Interactive mode for agents
chat-room interactive
🔧 Herramientas MCP disponibles
| Herramienta | Descripción | Caso de uso |
|---|---|---|
create_temp_chat | Crear sala temporal segura | Coordinación de agentes |
join_temp_chat | Unirse a sala temporal con token | Comunicación segura |
send_temp_message | Enviar mensaje a sala segura | Mensajería en tiempo real |
get_temp_room_info | Obtener estado de la sala y usuarios | Monitoreo |
check_server_status | Verificar salud del servidor | Comprobación de salud |
join_public_chat | Unirse a sala pública permanente | Colaboración a largo plazo |
send_public_message | Enviar a sala pública | Comunicación general |
🚀 Ejemplos de agentes en segundo plano
Comunicación simple entre agentes
# Agent 1: Create room
ROOM_INFO=$(chat-room create --expires 60 --output json)
ROOM_ID=$(echo $ROOM_INFO | jq -r '.roomId')
ROOM_TOKEN=$(echo $ROOM_INFO | jq -r '.roomToken')
# Agent 2: Join and communicate
chat-room join $ROOM_ID $ROOM_TOKEN agent-2
chat-room send $ROOM_ID $ROOM_TOKEN agent-2 "Task complete"
Integración CI/CD
#!/bin/bash
# In your pipeline
ROOM_INFO=$(chat-room create --expires 30 --created-by ci-pipeline --output json)
echo "Deployment room: $(echo $ROOM_INFO | jq -r '.joinUrl')"
chat-room send $(echo $ROOM_INFO | jq -r '.roomId') \
$(echo $ROOM_INFO | jq -r '.roomToken') \
ci-bot "Deployment started for ${COMMIT_SHA}"
Servicio a servicio
// Node.js service
const response = await fetch(`${CHAT_SERVER}/api/create-temp-room`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ expiresInMinutes: 30, createdBy: 'service-a' })
});
const { roomId, roomToken } = await response.json();
// Share credentials with other services
📊 Rendimiento
- Creación de salas: ~10ms
- Entrega de mensajes: ~5ms
- Comprobaciones de salud: ~2ms
- Memoria por sala: ~1KB
- Usuarios concurrentes: 1000+ por instancia
🔄 Auto-escalado
- Diseño sin estado - No requiere base de datos
- Almacenamiento solo en memoria - Rápido y eficiente
- Limpieza automática - Las salas expiradas se eliminan automáticamente
- Listo para balanceador de carga - Incluye endpoint de comprobación de salud
- Multi-instancia - Usa sesiones persistentes para WebSockets
🚨 Monitoreo
Endpoint de comprobación de salud
curl https://your-app.com/health
Respuesta
{
"status": "healthy",
"serverUrl": "https://your-app.com",
"remoteMode": true,
"activeRooms": 5,
"temporaryRooms": 3,
"connectedUsers": 12
}
📚 Documentación
- REMOTE_DEPLOYMENT.md - Guía completa de despliegue
- LOCAL_REVERSE_PROXY.md - Servidor local con túneles de proxy inverso
- CURSOR_SETUP.md - Integración con el IDE Cursor
- Interfaz web - Integrada en la URL raíz del servidor
- Endpoint de salud -
/healthpara monitoreo - Documentación de API - Disponible a través de recursos MCP
🛡️ Buenas prácticas de seguridad
- Usa HTTPS en despliegues de producción
- Rota los tokens para agentes de larga duración
- Monitorea los endpoints de salud regularmente
- Establece tiempos de expiración apropiados para las salas
- Usa variables de entorno para las URLs del servidor
- Implementa limitación de tasa si es necesario
⚡ Comandos de despliegue rápido
# Railway (Recommended)
railway up
# Vercel
vercel --prod
# Test deployment
export CHAT_SERVER_URL=https://your-deployed-app.com
chat-room health
# Test ngrok header functionality
npm run test:ngrok-headers
🤝 Contribuciones
¡Aceptamos contribuciones! Áreas de interés:
- Plataformas de despliegue adicionales
- Características de seguridad mejoradas
- Optimizaciones de rendimiento
- Más comandos CLI
- Ejemplos de integración
📄 Licencia
Licencia MIT - consulta el archivo LICENSE para más detalles.
¿Listo para desplegar salas de chat seguras y temporales para tus agentes en segundo plano?
Comienza con: railway up o vercel --prod
Luego: chat-room create --expires 60 --created-by my-agent
🚀 ¡Tus agentes ahora pueden comunicarse de forma segura!