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:
| Plataforma | Comando | Observações |
|---|---|---|
| Railway | railway up | Recomendado - inclui suporte a WebSocket |
| Vercel | vercel --prod | Implantação serverless |
| Render | Integração com GitHub | Implantação automática a partir do repositório |
| Heroku | git push heroku main | Plataforma 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
| Ferramenta | Descrição | Caso de Uso |
|---|---|---|
create_temp_chat | Criar sala temporária segura | Coordenação de agentes |
join_temp_chat | Entrar em sala temporária com token | Comunicação segura |
send_temp_message | Enviar mensagem para sala segura | Mensagens em tempo real |
get_temp_room_info | Obter status da sala e usuários | Monitoramento |
check_server_status | Verificar saúde do servidor | Verificação de integridade |
join_public_chat | Entrar em sala pública permanente | Colaboração de longo prazo |
send_public_message | Enviar para sala pública | Comunicaçã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 -
/healthpara monitoramento - Documentação da API - Disponível via recursos MCP
🛡️ Boas Práticas de Segurança
- Use HTTPS em implantações de produção
- Rotacione tokens para agentes de longa duração
- Monitore endpoints de saúde regularmente
- Defina tempos de expiração apropriados para as salas
- Use variáveis de ambiente para URLs de servidor
- 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!