Skip to main content
Glama
Gomezzz299

MCP: Multi-Agent Control Point

by Gomezzz299

🧠 MCP: マルチエージェントコントロールポイント

このプロジェクトでは、ユーザーの質問を LLM モデルまたは専門エージェント (日付、場所、天気、技術専門家など) にルーティングするマルチエージェント サーバーを実装します。使いやすさを考慮して Streamlit で構築されたシンプルな Web インターフェイスが含まれています。


🚀 機能

  • 🌐 FastAPI を使用したバックエンド

  • 🧠 専門エージェント(日付、場所、天気、LLM エキスパート)

  • 🧩 継承機能を備えた拡張可能なモジュール型エージェントシステム

  • ⚙️ エラーとレスポンスの統一的な処理のための共通継承AgenteBase

  • 🤖 エージェント同士が協力し合うためのスマートなロジック

  • 🖥️ Streamlit のビジュアルインターフェース (GUI)

  • 🐳 簡単に導入できる Docker コンテナ

  • 🔌 ローカルまたはリモートネットワークに対応したクライアント・サーバー通信


Related MCP server: Brightsy MCP Server

📁 プロジェクト構造

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 MCP

2. Streamlitの設定ファイルを作成する

guiディレクトリ内に次のファイルを作成します。

gui/.streamlit/secrets.toml

以下の内容が含まれます。

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

3. Docker Composeで実行する

docker-compose up --build

これにより、2 つのコンテナが構築され、持ち上げられます。

  • バックエンドはhttp://localhost:8000

  • http://localhost:8501のグラフィカル インターフェイス


🌍 別のマシンからのアクセス(オプション)

  1. ポート8501正しく公開されていることを確認してください ( 8000 )。

  2. secrets.tomlではlocalhost代わりにサーバーマシンの IP を使用します。

  3. クロスホスト アクセス用にカスタム Docker ネットワークを設定することもできます。


📦 制作用

別のインターフェースと統合する場合は、バックエンドのみを実行できます。

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

✨ 使用例

Web インターフェースでは、次のような質問を入力できます。

  • ¿Qué día es hoy?

  • ¿Dónde estoy?

  • ¿Qué clima hace?

  • Explícame qué es Python

アプリは質問に直接回答するか、エージェントに委任するかを決定します。


🛠️ エージェント募集中

エージェント

関数

日付

現在の日付と時刻を返します

位置

IPアドレスで都市と国を検出します

気候

現在の場所の天気を返します


🔄エージェント間の相互作用

天気エージェントは、天気を照会する前に位置情報エージェントを直接使用して地理座標 ( latlon ) と都市を決定するようになりました。これにより、ユーザーの実際の位置に合わせた応答が可能になります。これにより、エージェント間のモジュール性とコラボレーションが向上します。


🧩 新しいエージェントを作成する方法

  1. 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. 関連する質問を検出するためのパターンを指定します。

  2. キー success とデータまたはエラーを含む辞書を返すagente()を実装します。

  3. エージェントは指定された LLM を自動的に使用して、データに基づいて自然な応答を生成します。


⚠️ 重要な技術的注意事項

  • すべてのエージェントは AgenteBase から継承され、以下を管理します。

    • 標準誤差

    • LLMによるデータの自然な応答への変換

  • agent() メソッドは構造化された辞書を返す必要があります。

  • 各エージェントは、使用する LLM モデル ( llm_simpleまたはllm_experto ) を指定します。

📄 ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています。


🙋‍♂️ 著者

Alejandro Gómez Sierra によって開発されました。

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

Latest Blog Posts

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