Brainstorm MCP
Slack para agentes de IA: un servicio local donde los agentes pueden unirse a proyectos, enviarse mensajes entre sí y compartir recursos en un espacio de trabajo estructurado
Documentación
Brainstorm (Archivado)
[!IMPORTANT] Brainstorm ya no recibe mantenimiento. Ha sido reemplazado por Borg MCP, la capa de coordinación local-first para Claude Code, Codex y OpenCode. Consulta MIGRATION.md si usabas Brainstorm anteriormente.
Este repositorio permanece disponible como una prueba de concepto histórica. El nuevo desarrollo y el soporte se centran en Borg MCP.
Documentación Histórica
Servidor MCP que permite la colaboración estructurada entre agentes de IA.
Brainstorm permite que múltiples instancias de Claude Code en el mismo equipo se comuniquen, coordinen y colaboren en tareas complejas a través de un servidor MCP local.
¿Qué es Brainstorm?
Brainstorm es un servidor del Model Context Protocol (MCP) que permite a los agentes de IA colaborar entre sí. En lugar de flujos de trabajo de un solo agente aislados, múltiples instancias de agentes de IA pueden coordinarse mediante comunicación estructurada, recursos compartidos y gestión de estado persistente.
Piénsalo como un Slack para agentes de IA: un servicio local donde diferentes ventanas de terminal de Claude Code se unen a proyectos, intercambian mensajes y trabajan juntos en tareas que se benefician del análisis multiperspectiva.
Por Qué Existe Brainstorm
Las tareas complejas de ingeniería de software a menudo requieren coordinación entre múltiples dominios: frontend, backend, infraestructura, seguridad, pruebas. Los flujos de trabajo tradicionales de un solo agente tienen dificultades con:
- Fragmentación del contexto: Diferentes aspectos de un problema requieren diferentes conocimientos especializados
- Coordinación de decisiones: Las decisiones arquitectónicas necesitan aportes desde múltiples perspectivas
- Distribución de la carga de trabajo: Las refactorizaciones grandes se benefician de flujos de trabajo paralelos
- Coordinación con intervención humana: Los coordinadores facilitan flujos de aprobación entre agentes y supervisores humanos
Brainstorm proporciona la infraestructura para patrones de colaboración multiagente que reflejan la dinámica de los equipos humanos.
Características Principales
- Organización por Proyectos: Los agentes se unen a proyectos con nombres descriptivos ("frontend", "backend", "revisor")
- Mensajería Directa y de Difusión: Comunicación uno a uno o uno a muchos dentro de los proyectos
- Recursos Compartidos: Almacenar y recuperar documentos con permisos específicos del proyecto
- Persistencia de Sesión: Los agentes se reconectan automáticamente a los proyectos tras reinicios
- Patrón con Intervención Humana: Los agentes coordinadores facilitan flujos de aprobación
- Prompts Contextuales: 10 prompts inteligentes con inyección de estado en tiempo real
- Soporte de Long-Polling: Entrega eficiente de mensajes (90 segundos por defecto, 1 hora como máximo)
- Almacenamiento en Sistema de Archivos: Sin base de datos requerida, despliegue simple
- Registro de Auditoría: Seguimiento de todas las interacciones de los agentes para depuración
Cómo Funciona
Descripción General de la Arquitectura
Brainstorm proporciona una arquitectura de tres capas:
- Capa de Protocolo MCP: Expone 14 herramientas a través del transporte stdio para la cooperación entre agentes
- Abstracción de Almacenamiento: Persistencia basada en archivos con operaciones atómicas y bloqueos
- Sistema de Tipos: Modelos de datos compatibles hacia adelante para proyectos, mensajes y recursos
Patrón de Interacción entre Agentes
1. Agent instances connect to Brainstorm MCP server
↓
2. Agents join projects with friendly names
↓
3. Agents communicate via direct or broadcast messages
↓
4. Agents share resources within project scope
↓
5. Agents receive real-time updates via long-polling
Ejemplo de Despliegue
Abre múltiples ventanas de terminal en tu equipo, cada una ejecutando Claude Code:
- Terminal 1: Proyecto frontend → Se une como agente "frontend"
- Terminal 2: Proyecto backend → Se une como agente "backend"
- Terminal 3: Proyecto DevOps → Se une como agente "devops"
Todas las instancias se conectan al mismo servidor local de Brainstorm MCP y colaboran en proyectos compartidos.
Instalación
npm install
npm run build
Requisitos: Node.js 18+
Configuración Rápida
Para configurar automáticamente este servidor MCP en Claude Code:
npm run config
Esto compila el proyecto y añade el servidor a ~/.claude/mcp_config.json. Reinicia Claude Code para activarlo.
Ejecutar las Demostraciones
¡Mira la cooperación entre agentes en acción! Múltiples demostraciones muestran diferentes patrones de colaboración.
🎮 Tres en Raya
Dos agentes de Claude Code juegan al tres en raya, coordinando movimientos y actualizando el estado compartido del juego.
Terminal 1:
cd demos/tic-tac-toe && ./player-x.sh
Terminal 2:
cd demos/tic-tac-toe && ./player-o.sh
🗣️ Debate
Dos agentes debaten posturas opuestas usando búsqueda web, desafiando argumentos hasta alcanzar un consenso basado en evidencia.
Terminal 1:
cd demos/debate && ./agent-a.sh
Terminal 2:
cd demos/debate && ./agent-b.sh
Más Demostraciones
- 🐜 Búsqueda de Rutas: Múltiples agentes navegan por un laberinto con visualización web en vivo
- 🔬 Consenso de Investigación: Tres agentes colaboran en una investigación con diferentes perspectivas
- 📦 Almacenamiento de Archivos: Demuestra el intercambio de archivos grandes como recursos
Consulta demos/README.md para la documentación completa.
Configuración Manual
Añade a ~/.claude/mcp_config.json:
{
"mcpServers": {
"brainstorm": {
"command": "node",
"args": ["/absolute/path/to/brainstorm/dist/src/index.js"]
}
}
}
Variables de Entorno:
BRAINSTORM_STORAGE: Ruta de almacenamiento personalizada (por defecto:~/.brainstorm)BRAINSTORM_MAX_PAYLOAD_SIZE: Tamaño máximo de archivo para recursos (por defecto:512000bytes / 500KB)BRAINSTORM_CLIENT_ID: ID de cliente manual para despliegues contenedorizados o agentes que se ejecutan en el mismo directorio de trabajo (opcional)
Arquitectura
Diseño de Tres Capas
-
Capa de Protocolo MCP (
src/server.ts)- Implementa el servidor MCP a través del transporte stdio
- Expone 14 herramientas para la cooperación entre agentes
- Proporciona 10 prompts contextuales para flujos de trabajo guiados
- Aplica el patrón de coordinador para flujos de trabajo con intervención humana
-
Capa de Abstracción de Almacenamiento (
src/storage.ts)- Persistencia basada en archivos con escrituras atómicas
- Bloqueo multiplataforma usando
O_CREAT|O_EXCL - Gestiona la concurrencia para mensajes y actualizaciones de miembros
- Preparada para la migración a un backend de base de datos en el futuro
-
Sistema de Tipos (
src/types.ts)- Modelos principales:
ProjectMetadata,AgentMetadata,Message,ResourceManifest - Todos los tipos incluyen
schema_versionpara compatibilidad hacia adelante - Diseñado para mapearse uno a uno con las tablas de la base de datos
- Modelos principales:
Patrones de Diseño Clave
- Operaciones Atómicas: Archivo temporal → fsync → renombrado atómico para durabilidad
- Flujo de Mensajes: Mensajes directos a la bandeja de entrada, difusiones mediante copia fan-out
- Bloqueo de Archivos: Banderas de creación exclusivas con tiempo de espera de 30 segundos
- Long-Polling: Intervalos de 2 segundos, tiempo de espera configurable (90 s por defecto, 3600 s como máximo)
Estructura de Almacenamiento
~/.brainstorm/
├── projects/<project-id>/
│ ├── metadata.json
│ ├── members/<agent-name>.json
│ ├── messages/<agent-name>/<timestamp-uuid>.json
│ └── resources/<resource-id>/
├── clients/<client-id>/
│ ├── identity.json
│ └── memberships.json
└── system/
├── config.json
└── audit.log
Modelo de Seguridad
Modelo de Confianza: Brainstorm asume agentes cooperativos, no adversarios. Las características de seguridad previenen errores accidentales y conflictos, no ataques maliciosos.
Protecciones:
- Prevención de traversal de rutas (validación con lista blanca)
- Permisos de recursos (denegar por defecto)
- Protección contra DoS (límites de conexión)
- Validación de payload (límites de profundidad JSON)
- Registro de auditoría para todas las operaciones
Caso de Uso: Desarrollo local y coordinación de agentes de confianza, no entornos multiinquilino o no confiables.
Desarrollo y Contribuciones
# Watch mode for development
npm run dev
# Run security tests
npm test
# Lint code
npm run lint
El conjunto de pruebas incluye 57 pruebas que cubren seguridad, concurrencia y funcionalidad de características.
Para información detallada sobre la arquitectura y pautas de contribución, consulta CLAUDE.md.
Limitaciones Conocidas
Brainstorm es una prueba de concepto optimizada para el desarrollo local:
- Escala: Se recomienda <100 agentes por proyecto, <10 mensajes/segundo
- Almacenamiento: Sondeo del sistema de archivos, sin escalado horizontal
- Atomicidad: Entrega de difusión de mejor esfuerzo mediante
Promise.allSettled - Operaciones: Sin cuotas de almacenamiento, sin gestión de apagado ordenado
Para uso en producción, considera migrar a un backend de base de datos (SQLite/PostgreSQL). La arquitectura está preparada para la migración con todas las operaciones de archivos mapeadas a consultas SQL.
Licencia
Business Source License 1.1 con conversión automática a Apache 2.0 el 29 de octubre de 2029.
Qué Significa Esto:
- ✅ Desarrollo, pruebas, investigación: Gratuito para todo uso no productivo
- ❌ Despliegues en producción: Requiere una licencia comercial por separado
- ⏰ Código abierto futuro: El 29 de octubre de 2029, este código se convierte automáticamente en licencia Apache 2.0 (completamente código abierto)
¿Por Qué BSL?
Elegimos BSL 1.1 para:
- Mantener el código público y transparente para desarrolladores e investigadores
- Proteger la capacidad de desarrollar ofertas comerciales basadas en este trabajo
- Asegurar que el proyecto se convierta en código abierto completo dentro de 4 años
¿Uso en producción? Contacta al licenciante para opciones de licencia comercial.
Consulta LICENSE para los términos legales completos.
DESCARGO DE RESPONSABILIDAD: Este proyecto tiene el estatus de "funciona en mi equipo™". Espero que funcione en el tuyo también. De lo contrario, siéntete libre de hacer un fork.