Symphony of One
Orquesta múltiples instancias de Claude para tareas colaborativas a través de un centro central con un espacio de trabajo compartido y comunicación en tiempo real.
GitHubPrueba este MCPPatrocinado
Documentación
Symphony of One MCP - Sistema de Orquestación Multi-Agente
Un servidor de Model Context Protocol (MCP) que permite que múltiples instancias de Claude colaboren a través de un centro centralizado con espacio de trabajo compartido y comunicación en tiempo real.
Arquitectura
User (Orchestrator) ← Central Hub Server → Shared Working Directory
↑ ↓ ↑
Hub CLI Interface Message Router File Access
↑ ↓ ↓
Multiple Claude Code Instances via MCP Servers ← → Collaboration
Componentes
1. Servidor Central Hub (server.js)
- Servidor Express + Socket.IO para la coordinación de agentes
- Sistema de chat basado en salas para la comunicación entre agentes
- Sistema de gestión y delegación de tareas
- Observación de archivos con notificaciones de cambios en tiempo real
- API REST para la gestión y orquestación de agentes
2. CLI de Orquestador de Usuario (cli.js)
- Interfaz de comando y control para el usuario
- Monitoreo de agentes y asignación de tareas
- Transmisión de mensajes a grupos de agentes
- Estadísticas del sistema en tiempo real y gestión de salas
3. Servidor MCP de Agente Claude (mcp-server.js)
- Servidor MCP al que se conectan las instancias de Claude Code
- Acceso al sistema de archivos compartido con restricciones de seguridad
- Participación en chat en tiempo real con otros agentes
- Ejecución de tareas e informes de progreso
- Notificaciones de cambios de archivos y sincronización de colaboración
Inicio Rápido
1. Instalar Dependencias
npm install
2. Iniciar el Central Hub
npm run server
Esto inicia el servidor hub en http://localhost:3000 con un directorio compartido en ./shared
3. Iniciar el CLI de Orquestador de Usuario
npm run cli
Esto abre la interfaz del orquestador para gestionar agentes y tareas.
4. Conectar Agentes Claude
Cada instancia de Claude Code se conecta a través del servidor MCP:
node mcp-server.js
Configuración
Variables de Entorno
CHAT_SERVER_URL: URL del servidor hub (predeterminado:http://localhost:3000)SHARED_DIR: Directorio del espacio de trabajo compartido (predeterminado:./shared)AGENT_NAME: Nombre visible del agente (predeterminado: generado automáticamente)PORT: Puerto del servidor hub (predeterminado:3000)
Integración con Claude Code
Agregue a su configuración de MCP:
{
"mcpServers": {
"claude-gateway": {
"command": "node",
"args": ["path/to/Symphony-of-One-MCP/mcp-server.js"],
"env": {
"CHAT_SERVER_URL": "http://localhost:3000",
"SHARED_DIR": "/path/to/shared/workspace",
"AGENT_NAME": "Claude-Agent-1"
}
}
}
}
Herramientas Disponibles (MCP)
Gestión de Salas
room_join- Unirse a una sala de chat para colaboraciónroom_send- Enviar mensajes a otros agentes (admite @menciones)room_history- Obtener historial de conversaciónroom_list- Listar todas las salas activasroom_leave- Salir de la sala actual
Coordinación de Tareas
task_create- Crear tareas para la coordinación de agentestask_list- Ver todas las tareas de la sala- Asignación de tareas y seguimiento de estado
Sistema de Archivos (Espacio de Trabajo Compartido)
file_read- Leer archivos del directorio compartidofile_write- Escribir archivos en el directorio compartidofile_list- Listar el contenido del directoriofile_delete- Eliminar archivos- Notificaciones automáticas de cambios a todos los agentes
Memoria y Notificaciones del Agente
memory_store- Almacenar información persistente con expiración opcionalmemory_retrieve- Recuperar memorias almacenadas por clave o tiponotifications_get- Obtener menciones y alertas para este agentenotification_read- Marcar notificaciones como leídas
Comandos del Orquestador
Gestión de Salas
/join <room>- Unirse/crear una sala/rooms- Listar todas las salas/agents- Mostrar agentes en la sala actual/history [n]- Mostrar mensajes recientes
Orquestación de Agentes
/broadcast <msg>- Enviar mensaje a todos los agentes/assign <agent> <task>- Asignar tarea a un agente específico/tag <agent> <msg>- Enviar mensaje etiquetado a un agente específico (@mención)/monitor [room]- Monitorear la actividad de la sala/stats- Mostrar estadísticas del sistema
Gestión de Tareas
/task create- Crear nuevas tareas/task list- Ver todas las tareas/task update <id>- Actualizar el estado de las tareas
Memoria y Notificaciones
/memory list- Ver el uso de memoria del sistema/notifications- Ver notificaciones y menciones recientes/logs [type]- Ver registros de actividad del sistema
Casos de Uso
Desarrollo Multi-Agente
- Múltiples instancias de Claude trabajan en diferentes partes de un código base
- Las notificaciones de cambios de archivos en tiempo real mantienen a todos los agentes sincronizados
- Delegación de tareas y seguimiento de progreso
- El espacio de trabajo compartido previene conflictos
Análisis Colaborativo
- Los agentes pueden especializarse en diferentes dominios de análisis
- Coordinación basada en chat para la resolución de problemas complejos
- Edición y revisión compartida de documentos
- Asignación de tareas según las capacidades del agente
Flujos de Trabajo Orquestados
- El usuario define objetivos de alto nivel y los delega a los agentes
- Los agentes se autocoordinan a través del chat y el sistema de tareas
- Compartir y revisar entregables basados en archivos
- Monitoreo de progreso y capacidades de intervención
Endpoints de API
Operaciones Principales
POST /api/join/:room- El agente se une a una salaPOST /api/send- Enviar mensaje de chatGET /api/messages/:room- Obtener historial de mensajesGET /api/rooms- Listar todas las salas
Gestión de Tareas
POST /api/tasks- Crear tareaGET /api/tasks/:room- Obtener tareas de la salaPOST /api/tasks/:id/update- Actualizar tarea
Memoria y Notificaciones
POST /api/memory/:agentId- Almacenar memoria del agenteGET /api/memory/:agentId- Recuperar memoria del agenteGET /api/notifications/:agentId- Obtener notificaciones del agentePOST /api/notifications/:id/read- Marcar notificación como leída
Orquestación
GET /api/stats- Estadísticas del sistemaPOST /api/broadcast/:room- Mensaje de difusiónGET /api/agents/:room- Listar agentes de la sala
Nuevas Funcionalidades Añadidas
🏷️ Etiquetado y Menciones de Agentes
- Use
@agentNameen los mensajes para etiquetar agentes específicos - Los agentes etiquetados reciben notificaciones en tiempo real
- El orquestador puede usar
/tag <agent> <message>para comunicación directa - Almacenamiento y gestión persistente de notificaciones
💾 Almacenamiento Persistente y Memoria
- Base de datos SQLite para todos los mensajes, tareas y datos de agentes
- Sistema de memoria del agente con expiración opcional
- Sistema de notificaciones persistente con estado leído/no leído
- Registro integral con Winston
- Los datos sobreviven a los reinicios del servidor
📊 Monitoreo y Registro Mejorados
- Monitoreo de actividad en tiempo real
- Registro persistente de mensajes y eventos
- Estadísticas del sistema y seguimiento del uso de memoria
- Métricas de actividad y rendimiento de agentes
Funcionalidades de Seguridad
- Protección contra recorrido de rutas para operaciones de archivos
- Acceso al directorio compartido en entorno aislado
- Declaraciones y validación de capacidades de agentes
- Autenticación WebSocket y aislamiento de salas
- Almacenamiento seguro de memoria con expiración
- Rastro de auditoría para todas las acciones de agentes
Mejoras Futuras
- Autenticación y permisos de agentes
- Bloqueo de archivos para acceso concurrente
- Dependencias de tareas y flujos de trabajo
- Descubrimiento de agentes y coincidencia de capacidades
- Monitoreo y análisis avanzados
- Limpieza y optimización de memoria
- Canales de notificación y enrutamiento