MCP: Multi-Agent Control Point
🧠 MCP: многоагентная точка управления
В этом проекте реализован многоагентный сервер, который направляет вопросы пользователей в модель LLM или специализированным агентам (например, дата, местоположение, погода или технический эксперт). Включает простой веб-интерфейс, созданный с помощью Streamlit для удобства использования.
🚀 Особенности
🌐 Бэкэнд с FastAPI
🧠 Специализированные агенты (дата, место, погода, эксперт LLM)
🧩 Расширяемая и модульная система агентов с наследованием
⚙️ Общее наследование
AgenteBaseдля единообразной обработки ошибок и ответов🤖 Умная логика для сотрудничества агентов друг с другом
🖥️ Визуальный интерфейс с Streamlit (GUI)
🐳 Docker-контейнеры для простого развертывания
🔌 Клиент-серверное взаимодействие, готовое для локальной или удаленной сети
Related MCP server: Time-MCP
📁 Структура проекта
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
⚙️ Требования
🧪 Быстрая установка
1. Клонировать репозиторий
git clone https://github.com/tu-usuario/MCP.git
cd MCP2. Создайте файл конфигурации для Streamlit
Внутри каталога gui создайте файл:
gui/.streamlit/secrets.tomlСо следующим содержанием:
server_url = "http://backend:8000/process"3. Запуск с помощью Docker Compose
docker-compose up --buildЭто позволит построить и поднять два контейнера:
Бэкэнд на
http://localhost:8000Графический интерфейс по адресу
http://localhost:8501
🌍 Доступ с другого компьютера (опционально)
Убедитесь, что вы правильно открыли порты (
8000,8501).Используйте IP-адрес серверной машины вместо
localhostвsecrets.toml.Вы также можете настроить собственные сети Docker для кросс-хостового доступа.
📦 Для производства
Вы можете запустить только бэкэнд, если хотите интегрировать его с другим интерфейсом:
docker build -f Dockerfile.backend -t mcp_backend .
docker run -p 8000:8000 mcp_backend✨ Пример использования
В веб-интерфейсе вы можете вводить такие вопросы, как:
¿Qué día es hoy?¿Dónde estoy?¿Qué clima hace?Explícame qué es Python
Приложение решит, отвечать ли на вопрос напрямую или делегировать это агенту.
🛠️ Доступны агенты
Агент | Функция |
ДАТА | Возвращает текущую дату и время |
РАСПОЛОЖЕНИЕ | Определяет город и страну по IP |
КЛИМАТ | Возвращает погоду в текущем местоположении |
🔄 Взаимодействие между агентами
Агент погоды теперь напрямую использует агент местоположения для определения географических координат ( lat , lon ) и города перед запросом погоды, что позволяет получать ответы, соответствующие фактическому местоположению пользователя. Это улучшает модульность и взаимодействие между агентами.
🧩 Как создать нового агента
Создайте класс, наследующий от 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}Определяет шаблоны для обнаружения релевантных вопросов.
Реализует функцию
agente(), которая возвращает словарь с ключевыми данными об успехе и ошибке.Агент автоматически использует указанный LLM для генерации естественных ответов на основе ваших данных.
⚠️ Важные технические примечания
Все агенты наследуют от AgenteBase, который управляет:
Стандартные ошибки
Преобразование данных в естественный ответ с помощью LLM
Метод agent() должен возвращать структурированный словарь.
Каждый агент указывает, какую модель LLM использовать (
llm_simpleилиllm_experto).
📄 Лицензия
Данный проект лицензирован по лицензии MIT.
🙋♂️ Автор
Разработано Алехандро Гомесом Сьеррой.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
LLM Orchestration Agent (Langgraph)
LLM Orchestration Agent (Langchain)
LLM Orchestration Agent (Opentelemetry Api)
LLM Orchestration Agent (Opentelemetry Instrumentation Fastapi)
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn intermediate agent server that enhances LLMs with weather data capabilities using the Model Context Protocol (MCP) framework, enabling retrieval of real-time weather information.-
- FlicenseNot gradedqualityDmaintenanceAn 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.-
- FlicenseNot gradedqualityDmaintenanceA multi-server implementation that uses OpenAI's LLM to orchestrate multiple tool servers providing web search, weather lookup, random facts, and PostgreSQL database querying capabilities.-
- AlicenseCqualityDmaintenanceA server that transforms a standard Language Model into a dynamic multi-agent system where the model simulates both a Conductor (project manager) and Experts (specialized agents) to tackle complex problems through a collaborative workflow.234Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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