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:

PlataformaComandoNotas
Railwayrailway upRecomendado - incluye soporte WebSocket
Vercelvercel --prodDespliegue serverless
RenderIntegración con GitHubAuto-despliegue desde el repositorio
Herokugit push heroku mainPlataforma 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

HerramientaDescripciónCaso de uso
create_temp_chatCrear sala temporal seguraCoordinación de agentes
join_temp_chatUnirse a sala temporal con tokenComunicación segura
send_temp_messageEnviar mensaje a sala seguraMensajería en tiempo real
get_temp_room_infoObtener estado de la sala y usuariosMonitoreo
check_server_statusVerificar salud del servidorComprobación de salud
join_public_chatUnirse a sala pública permanenteColaboración a largo plazo
send_public_messageEnviar a sala públicaComunicació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 - /health para monitoreo
  • Documentación de API - Disponible a través de recursos MCP

🛡️ Buenas prácticas de seguridad

  1. Usa HTTPS en despliegues de producción
  2. Rota los tokens para agentes de larga duración
  3. Monitorea los endpoints de salud regularmente
  4. Establece tiempos de expiración apropiados para las salas
  5. Usa variables de entorno para las URLs del servidor
  6. 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!