🧠 MCP: Multi-Agent Control Point
Este proyecto implementa un servidor multi-agente que enruta preguntas del usuario a un modelo LLM o a agentes especializados (como fecha, ubicación, clima o un experto técnico). Incluye una interfaz web sencilla construida con Streamlit para facilitar su uso.
🚀 Características
🌐 Backend con FastAPI
🧠 Agentes especializados (fecha, ubicación, clima, experto LLM)
🧩 Sistema de agentes extensible y modular con herencia
⚙️ Herencia común
AgenteBasepara manejo uniforme de errores y respuestas🤖 Lógica inteligente para que los agentes colaboren entre sí
🖥️ Interfaz visual con Streamlit (GUI)
🐳 Contenedores Docker para fácil despliegue
🔌 Comunicación cliente-servidor lista para red local o remoto
Related MCP server: Brightsy MCP Server
📁 Estructura del proyecto
⚙️ Requisitos
🧪 Instalación rápida
1. Clona el repositorio
2. Crea archivo de configuración para Streamlit
Dentro del directorio gui, crea el archivo:
Con el siguiente contenido:
3. Ejecuta con Docker Compose
Esto construirá y levantará dos contenedores:
Backend en
http://localhost:8000Interfaz gráfica en
http://localhost:8501
🌍 Acceso desde otra máquina (opcional)
Asegúrate de exponer correctamente los puertos (
8000,8501).Usa la IP de la máquina servidor en lugar de
localhostensecrets.toml.También puedes configurar redes Docker personalizadas para acceso cruzado entre hosts.
📦 Para producción
Puedes ejecutar solo el backend si deseas integrarlo con otra interfaz:
✨ Ejemplo de uso
En la interfaz web, puedes escribir preguntas como:
¿Qué día es hoy?¿Dónde estoy?¿Qué clima hace?Explícame qué es Python
La aplicación decidirá si responder directamente o delegar la pregunta a un agente.
🛠️ Agentes disponibles
Agente | Función |
FECHA | Devuelve la fecha y hora actuales |
UBICACION | Detecta la ciudad y país mediante IP |
CLIMA | Devuelve el clima en la ubicación actual |
🔄 Interacción entre agentes
El agente de clima ahora usa directamente el agente de ubicación para determinar coordenadas geográficas (lat, lon) y ciudad antes de consultar el clima, permitiendo respuestas adaptadas al lugar real del usuario. Esto mejora la modularidad y colaboración entre agentes.
🧩 Cómo crear un nuevo agente
Crea una clase que herede de AgenteBase:
Especifica los patrones para detectar preguntas relevantes.
Implementa
agente()que devuelve un dict con la clave success y data o error.El agente usará automáticamente el LLM indicado para generar respuestas naturales basadas en su data.
⚠️ Notas técnicas importantes
Todos los agentes heredan de AgenteBase, lo que gestiona:
Errores estándar
Conversión de datos a respuesta natural vía LLM
El método agente() debe devolver un diccionario estructurado.
Cada agente especifica qué modelo de LLM utilizar (
llm_simpleollm_experto).
📄 Licencia
Este proyecto está licenciado bajo MIT License.
🙋♂️ Autor
Desarrollado por Alejandro Gómez Sierra.