Skip to main content
Glama

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