Skip to main content
Glama

MCP: Multi-Agent Control Point

by Gomezzz299

🧠 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 AgenteBase para 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

📁 Estructura del proyecto

MCP/ ├── core/ │ ├── ollama_wrapper.py # Encapsula la lógica para interactuar con modelos LLM en Ollama │ ├── context_loader.py # Carga contexto adicional desde base de datos u otras fuentes │ └── router_llm.py # Router inteligente que decide qué agente usar en base a la consulta ├── agents/ # Carpeta que contiene todos los agentes disponibles del sistema ├── server/ │ ├── mcp_server.py # Punto central que gestiona los agentes registrados y el procesamiento de mensajes │ └── api.py # Define la API REST usando FastAPI para comunicación con la GUI u otros clientes ├── gui/ │ ├── app.py # Aplicación Streamlit que actúa como interfaz gráfica del sistema │ └── .streamlit/ │ └── secrets.toml # Archivo de configuración que contiene la URL del backend para la GUI ├── utils/ │ ├── db_utils.py # Funciones auxiliares para conectarse y consultar la base de datos SQLite │ ├── agente_base.py # Clase base AgenteBase, común a todos los agentes personalizados │ └── json_parser.py # Utilidad para dividir respuestas JSON en partes más manejables ├── database/ │ ├── context.db # Base de datos SQLite con información contextual para los agentes o el LLM │ ├── comprobar_db.py # Script que valida la existencia y consistencia de la base de datos │ └── create_db.py # Script para generar y poblar la base de datos desde cero ├── config.py # Archivo central de configuración del sistema (rutas, modelos, flags, etc.) ├── requirements.txt # Lista de dependencias de Python necesarias para ejecutar el proyecto ├── Dockerfile.backend # Dockerfile para construir el contenedor del backend (API + lógica de agentes) ├── Dockerfile.frontend # Dockerfile para construir el contenedor de la interfaz Streamlit └── docker-compose.yml # Archivo para levantar los servicios frontend y backend de forma conjunta

⚙️ Requisitos


🧪 Instalación rápida

1. Clona el repositorio

git clone https://github.com/tu-usuario/MCP.git cd MCP

2. Crea archivo de configuración para Streamlit

Dentro del directorio gui, crea el archivo:

gui/.streamlit/secrets.toml

Con el siguiente contenido:

server_url = "http://backend:8000/process"

3. Ejecuta con Docker Compose

docker-compose up --build

Esto construirá y levantará dos contenedores:

  • Backend en http://localhost:8000
  • Interfaz gráfica en http://localhost:8501

🌍 Acceso desde otra máquina (opcional)

  1. Asegúrate de exponer correctamente los puertos (8000, 8501).
  2. Usa la IP de la máquina servidor en lugar de localhost en secrets.toml.
  3. 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:

docker build -f Dockerfile.backend -t mcp_backend . docker run -p 8000:8000 mcp_backend

✨ 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

AgenteFunción
FECHADevuelve la fecha y hora actuales
UBICACIONDetecta la ciudad y país mediante IP
CLIMADevuelve 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

  1. Crea una clase que herede de AgenteBase:
from agentes.base import AgenteBase class AgenteEjemplo(AgenteBase): patrones = [r"expresiones.*clave", r"otra.*forma.*de.*preguntar"] def agente(self) -> dict: datos = {"respuesta": "Soy un agente de ejemplo"} return {"success": True, "data": datos}
  1. Especifica los patrones para detectar preguntas relevantes.
  2. Implementa agente() que devuelve un dict con la clave success y data o error.
  3. 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_simple o llm_experto).

📄 Licencia

Este proyecto está licenciado bajo MIT License.


🙋‍♂️ Autor

Desarrollado por Alejandro Gómez Sierra.

-
security - not tested
F
license - not found
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

A server that routes user questions to specialized agents (date, location, weather) or an LLM expert, with a simple Streamlit web interface for easy interaction.

  1. 🚀 Características
    1. 📁 Estructura del proyecto
      1. ⚙️ Requisitos
        1. 🧪 Instalación rápida
          1. Clona el repositorio
          2. Crea archivo de configuración para Streamlit
          3. Ejecuta con Docker Compose
        2. 🌍 Acceso desde otra máquina (opcional)
          1. 📦 Para producción
            1. ✨ Ejemplo de uso
              1. 🛠️ Agentes disponibles
                1. 🔄 Interacción entre agentes
                  1. 🧩 Cómo crear un nuevo agente
                    1. ⚠️ Notas técnicas importantes
                      1. 📄 Licencia
                        1. 🙋‍♂️ Autor

                          Related MCP Servers

                          • -
                            security
                            A
                            license
                            -
                            quality
                            This is a server that lets your LLMs (like Claude) talk directly to your BigQuery data! Think of it as a friendly translator that sits between your AI assistant and your database, making sure they can chat securely and efficiently.
                            Last updated -
                            1
                            241
                            81
                            JavaScript
                            MIT License
                          • A
                            security
                            F
                            license
                            A
                            quality
                            A server that implements the Model Context Protocol to connect LLMs to Brightsy AI agents, allowing users to pass messages to and receive responses from these agents.
                            Last updated -
                            1
                            96
                            JavaScript
                          • -
                            security
                            F
                            license
                            -
                            quality
                            A server that manages conversation context for LLM interactions, storing recent prompts and providing relevant context for each user via REST API endpoints.
                            Last updated -
                            602
                            TypeScript
                          • A
                            security
                            A
                            license
                            A
                            quality
                            An AI router that connects applications to multiple LLM providers (OpenAI, Anthropic, Google, DeepSeek, Ollama, etc.) with smart model orchestration capabilities, enabling dynamic switching between models for different reasoning tasks.
                            Last updated -
                            3
                            10
                            11
                            TypeScript
                            MIT License
                            • Linux
                            • Apple

                          View all related MCP servers

                          MCP directory API

                          We provide all the information about MCP servers via our MCP API.

                          curl -X GET 'https://glama.ai/api/mcp/v1/servers/Gomezzz299/MCP'

                          If you have feedback or need assistance with the MCP directory API, please join our Discord server