Multiple MCP SSE Servers with a Python Host について
設定ファイルから複数の SSE MCP サーバーを起動・管理する Python 製ホストです。Google's Gemini APIを使い、カレンダーとブラウザー操作のサーバー例を含みます。
主な機能
- 01設定済みの複数 MCP サーバーを起動
- 02接続維持と終了時のクリーンアップ
- 03Google's Gemini APIとの連携
- 04カレンダーとブラウザー操作の例
活用シーン
- 011つのホストで複数の SSE サーバーを実行
- 02Google Calendarの予定を検索・確認
- 03Chromeでブラウザータスクを実行
MCP 対応
config.jsonを読み込み、SSEで通信する複数の MCP サーバーを起動・管理します。STDIO対応は今後の課題として記載されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Python ホストでの複数の MCP SSE サーバー
このリポジトリには、Google の Gemini API を使用する、Server-Sent Events(SSE)対応の Model Control Protocol(MCP)クライアント実装が含まれています。 ホストアプリは config.json ファイルを読み込み、MCP Client クラスのインスタンスを作成して MCP サーバーを起動し、サーバーとの接続を維持し、シャットダウン時にクリーンアップなどを行います。
このホストアプリは dmg パッケージとして配布でき、どの MCP SSE サーバーでも使用できます。 Todo: stdio サーバーのサポートを追加 Todo: 複数モデルのサポートを追加 Todo: ツールチェーンを追加
セットアップ
-
このリポジトリをクローンします:
git clone https://github.com/hackerinheels/multipleMCPServerWithPythonHost.git cd multipleMCPServerWithPythonHost -
ルートディレクトリに、API キーを記載した
.envファイルを作成します:GEMINI_API_KEY=your_api_key_here MODEL_NAME=gemini-2.0-flashGemini API キーは、Google's AI Studio から取得できます。
-
googleCalendar/README.md ファイルの手順に従って、Google Calendar API をセットアップします。
-
config.json を更新して、browser-use サーバーを追加します:
{ "mcpServers": { "calendar": { "command": "uv", "args": ["run", "googleCalendar/calendarServer.py", "--port", "8000"] }, "browser-use": { "command": "uv", "args": ["run", "<path-to-browser-use-mcp-server>/server", "--port", "8006"] } } }<path-to-browser-use-mcp-server>を、リポジトリをクローンした実際のパスに置き換えます。 -
browser-use-mcp-server ディレクトリに、次の設定を記載した
.envファイルを作成します:
CHROME_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
アプリケーションの実行
uv venv --python 3.11
source .venv/bin/activate
uv pip install -r requirements.txt
uv run host.py
これにより、config.json ファイルに記載されているすべてのサーバーが起動します。
使用方法
サーバーとクライアントの起動後、クエリを入力して操作できます。
Google Calendar のコマンド
カレンダーサーバーでは、次のツールを利用できます:
list_events:今後のカレンダーイベントを一覧表示しますget_event_details:特定のイベントの詳細情報を取得しますsearch_events:クエリに一致するイベントを検索します
クエリの例:
- 「今後の予定を表示して」
- 「John との会議を検索して」
- 「イベント {event_id} の詳細を取得して」
ブラウザー自動化のための Browser Use
このツールは、次のツールを使用してブラウザーを自動化し、制御できます:
- 'browser_use'
- 'browser_get_result'
quit と入力すると、クライアントを終了します。
要件
- Python 3.11+
- UV パッケージマネージャー
- Google Gemini API キー
- Google Calendar API の認証情報(カレンダーサーバー用)
ライセンス
MCP マルチサーバー構成
このリポジトリでは、設定ファイルを使用して複数の MCP サーバーを読み込み、実行する方法を紹介します。
含まれるサーバー
カレンダーサーバー
- Google Calendar を操作
- イベントやスケジュールを管理
Browser-use サーバー
- ブラウザー操作を自動化
- Chrome ブラウザーをプログラムで制御
- ブラウザーを使用するタスクを実行
4. Browser-use サーバーの環境設定
browser-use-mcp-server ディレクトリに、次の設定を記載した .env ファイルを作成します:
CHROME_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
注:「your-openai-api-key」を実際の OpenAI API キーに置き換えてください。
注意事項
- すべての API キーが .env に正しく設定されていることを確認してください
- browser-use サーバーを使用するには、Chrome がインストールされていることを確認してください
- 各サーバーは指定されたポートで実行されます
- ホストがすべてのサーバーのライフサイクルを管理します
トラブルシューティング
- サーバーが起動しない場合は、ポートが使用可能か確認してください
- すべての環境変数が正しく設定されていることを確認してください
- Chrome のパスがご使用のシステムに合っていることを確認してください
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。