Skip to main content
Glama
MCP: Multi-Agent Control Point

MCP: Multi-Agent Control Point

by Gomezzz299

🧠 MCP: Multi-Agent-Kontrollpunkt

Dieses Projekt implementiert einen Multiagentenserver, der Benutzerfragen an ein LLM-Modell oder an spezialisierte Agenten weiterleitet (z. B. Datum, Standort, Wetter oder einen technischen Experten). Enthält eine einfache, mit Streamlit erstellte Weboberfläche zur Benutzerfreundlichkeit.


🚀 Funktionen

  • 🌐 Backend mit FastAPI

  • 🧠 Spezialisierte Agenten (Datum, Ort, Wetter, LLM-Experte)

  • 🧩 Erweiterbares und modulares Agentensystem mit Vererbung

  • ⚙️ Gemeinsame Vererbung AgenteBase für einheitliche Fehler- und Antwortbehandlung

  • 🤖 Intelligente Logik für die Zusammenarbeit der Agenten untereinander

  • 🖥️ Visuelle Schnittstelle mit Streamlit (GUI)

  • 🐳 Docker-Container für einfache Bereitstellung

  • 🔌 Client-Server-Kommunikation bereit für lokales oder Remote-Netzwerk


Related MCP server: Time-MCP

📁 Projektstruktur

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

⚙️ Voraussetzungen


🧪 Schnelle Installation

1. Klonen Sie das Repository

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

2. Konfigurationsdatei für Streamlit erstellen

Erstellen Sie im gui -Verzeichnis die Datei:

gui/.streamlit/secrets.toml

Mit folgendem Inhalt:

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

3. Mit Docker Compose ausführen

docker-compose up --build

Dadurch werden zwei Container gebaut und angehoben:

  • Backend unter http://localhost:8000

  • Grafische Oberfläche unter http://localhost:8501


🌍 Zugriff von einem anderen Computer (optional)

  1. Stellen Sie sicher, dass Sie die Ports richtig freigeben ( 8000 , 8501 ).

  2. Verwenden Sie in secrets.toml die IP des Servercomputers anstelle von localhost .

  3. Sie können auch benutzerdefinierte Docker-Netzwerke für den hostübergreifenden Zugriff einrichten.


📦 Für die Produktion

Sie können nur das Backend ausführen, wenn Sie es in eine andere Schnittstelle integrieren möchten:

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

✨ Anwendungsbeispiel

In der Weboberfläche können Sie Fragen eingeben wie:

  • ¿Qué día es hoy?

  • ¿Dónde estoy?

  • ¿Qué clima hace?

  • Explícame qué es Python

Die App entscheidet, ob die Frage direkt beantwortet oder an einen Agenten delegiert wird.


🛠️ Agenten verfügbar

Agent

Funktion

DATUM

Gibt das aktuelle Datum und die Uhrzeit zurück

STANDORT

Erkennt Stadt und Land anhand der IP

KLIMA

Gibt das Wetter am aktuellen Standort zurück


🔄 Interaktion zwischen Agenten

Der Wetteragent verwendet jetzt direkt den Standortagenten, um geografische Koordinaten ( lat , lon ) und die Stadt zu bestimmen, bevor er das Wetter abfragt. Dadurch sind auf den tatsächlichen Standort des Benutzers zugeschnittene Antworten möglich. Dies verbessert die Modularität und Zusammenarbeit zwischen Agenten.


🧩 So erstellen Sie einen neuen Agenten

  1. Erstellen Sie eine Klasse, die von AgenteBase erbt:

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. Gibt Muster an, um relevante Fragen zu erkennen.

  2. Implementiert agente() , das ein Dict mit dem Schlüssel „Erfolg“ und „Daten oder Fehler“ zurückgibt.

  3. Der Agent verwendet automatisch das angegebene LLM, um basierend auf Ihren Daten natürliche Antworten zu generieren.


⚠️ Wichtige technische Hinweise

  • Alle Agenten erben von AgenteBase, das Folgendes verwaltet:

    • Standardfehler

    • Konvertieren von Daten in eine natürliche Reaktion über LLM

  • Die Methode agent() muss ein strukturiertes Wörterbuch zurückgeben.

  • Jeder Agent gibt an, welches LLM-Modell verwendet werden soll ( llm_simple oder llm_experto ).

📄 Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert.


🙋‍♂️ Autor

Entwickelt von Alejandro Gómez Sierra.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An intermediate agent server that enhances LLMs with weather data capabilities using the Model Context Protocol (MCP) framework, enabling retrieval of real-time weather information.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    An agentic AI system that answers time-related questions by calling a time API tool and general questions using an LLM, accessible through a simple chat interface.
    -