WebRTC MCP Chat Server

Um servidor de chat WebRTC remoto com salas temporárias seguras e suporte a MCP para agentes em segundo plano.

Documentação

WebRTC MCP Chat Server v2.0

Um servidor de chat WebRTC remoto-first com salas temporárias seguras e suporte completo a MCP (Model Context Protocol), projetado para agentes em segundo plano e comunicação em tempo real.

✨ Novidades na v2.0: Remoto e Seguro

🔐 Salas Temporárias Seguras - Salas de chat criptograficamente seguras com expiração automática
🚀 Pronto para Implantação Remota - Implante em Railway, Vercel, Render, Heroku em minutos
🤖 Suporte a Agentes em Segundo Plano - Perfeito para CI/CD, coordenação de serviços e automação
🛡️ Sem Configuração Local Necessária - Integração MCP com zero configuração
Ferramenta CLI Incluída - Interface de linha de comando para agentes e scripts

🚀 Início Rápido

Instalar via 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 sem 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 em Segundo Plano (Sem Configuração 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 Usuários Web

Basta visitar a URL do seu servidor implantado - sem configuração necessária!

Para Desenvolvimento Local com Acesso 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 Usuários Cursor/MCP

Após instalar globalmente, adicione à sua configuração MCP:

{
  "mcpServers": {
    "webrtc-chat": {
      "command": "webrtc-chat-mcp",
      "env": {
        "CHAT_SERVER_URL": "https://your-deployed-app.com"
      }
    }
  }
}

Ou use sem instalação global:

{
  "mcpServers": {
    "webrtc-chat": {
      "command": "npx",
      "args": ["webrtc-mcp-chat"],
      "env": {
        "CHAT_SERVER_URL": "https://your-deployed-app.com"
      }
    }
  }
}

🎯 Perfeito Para

  • 🤖 Coordenação de agentes em segundo plano
  • 🔄 Notificações de pipeline CI/CD
  • 🔗 Comunicação serviço a serviço
  • ⚡ Canais de colaboração temporários
  • 🔐 Mensagens seguras entre processos
  • 📡 Monitoramento remoto de sistemas

🔐 Recursos de Segurança

  • Tokens criptográficos de 256 bits para acesso às salas
  • IDs de sala seguros de 128 bits
  • Expiração e limpeza automáticas (1 hora a 24 horas)
  • Validação no lado do servidor para todas as operações
  • Sem armazenamento persistente - design sem estado
  • Segurança com zero configuração
  • Pronto para túnel - Suporte automático a cabeçalhos ngrok (ignora avisos do navegador)
  • Normalização de URL - Lida com barras finais automaticamente
  • Testes abrangentes - Testes integrados para funcionalidade de cabeçalhos

🌐 Implantação Remota

Implante em qualquer plataforma em minutos:

PlataformaComandoObservações
Railwayrailway upRecomendado - inclui suporte a WebSocket
Vercelvercel --prodImplantação serverless
RenderIntegração com GitHubImplantação automática a partir do repositório
Herokugit push heroku mainPlataforma clássica

Consulte REMOTE_DEPLOYMENT.md para instruções detalhadas.

🛠️ Arquitetura

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   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

A ferramenta CLI incluída fornece tudo o que agentes em segundo plano precisam:

# 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

🔧 Ferramentas MCP Disponíveis

FerramentaDescriçãoCaso de Uso
create_temp_chatCriar sala temporária seguraCoordenação de agentes
join_temp_chatEntrar em sala temporária com tokenComunicação segura
send_temp_messageEnviar mensagem para sala seguraMensagens em tempo real
get_temp_room_infoObter status da sala e usuáriosMonitoramento
check_server_statusVerificar saúde do servidorVerificação de integridade
join_public_chatEntrar em sala pública permanenteColaboração de longo prazo
send_public_messageEnviar para sala públicaComunicação geral

🚀 Exemplos de Agentes em Segundo Plano

Comunicação Simples 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"

Integração 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}"

Serviço a Serviço

// 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

📊 Desempenho

  • Criação de Sala: ~10ms
  • Entrega de Mensagens: ~5ms
  • Verificações de Saúde: ~2ms
  • Memória por Sala: ~1KB
  • Usuários Simultâneos: 1000+ por instância

🔄 Auto-Escalonamento

  • Design sem Estado - Sem necessidade de banco de dados
  • Armazenamento Somente em Memória - Rápido e eficiente
  • Limpeza Automática - Salas expiradas removidas automaticamente
  • Pronto para Balanceador de Carga - Endpoint de verificação de saúde incluído
  • Multi-Instância - Use sessões persistentes para WebSockets

🚨 Monitoramento

Endpoint de Verificação de Saúde

curl https://your-app.com/health

Resposta

{
  "status": "healthy",
  "serverUrl": "https://your-app.com", 
  "remoteMode": true,
  "activeRooms": 5,
  "temporaryRooms": 3,
  "connectedUsers": 12
}

📚 Documentação

  • REMOTE_DEPLOYMENT.md - Guia completo de implantação
  • LOCAL_REVERSE_PROXY.md - Servidor local com túneis de proxy reverso
  • CURSOR_SETUP.md - Integração com o IDE Cursor
  • Interface Web - Integrada na URL raiz do servidor
  • Endpoint de Saúde - /health para monitoramento
  • Documentação da API - Disponível via recursos MCP

🛡️ Boas Práticas de Segurança

  1. Use HTTPS em implantações de produção
  2. Rotacione tokens para agentes de longa duração
  3. Monitore endpoints de saúde regularmente
  4. Defina tempos de expiração apropriados para as salas
  5. Use variáveis de ambiente para URLs de servidor
  6. Implemente limitação de taxa se necessário

⚡ Comandos Rápidos de Implantação

# 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

🤝 Contribuindo

Aceitamos contribuições! Áreas de interesse:

  • Plataformas de implantação adicionais
  • Recursos de segurança aprimorados
  • Otimizações de desempenho
  • Mais comandos CLI
  • Exemplos de integração

📄 Licença

Licença MIT - consulte o arquivo LICENSE para detalhes.


Pronto para implantar salas de chat seguras e temporárias para seus agentes em segundo plano?

Comece com: railway up ou vercel --prod

Depois: chat-room create --expires 60 --created-by my-agent

🚀 Seus agentes agora podem se comunicar com segurança!