Skip to main content
Glama

MCP Gateway (Parent MCP Server)

by TomCat2357
README.md5.1 kB
# Parent MCP Server 複数の子MCPサーバーを一元管理する親MCPサーバーです。 ## 概要 このサーバーは、複数の子MCPサーバー(filesystem, sqlite など)を登録・管理し、統一されたインターフェースで操作できるようにします。 ## セットアップ ### 1. 依存関係のインストール ```bash uv sync ``` ### 2. 子サーバー設定ファイルを用意 `children_config.example.json` / `children_abstract.example.json` をテンプレートとしてコピーし、実環境に合わせて編集してください。 ```bash cp children_config.example.json children_config.json cp children_abstract.example.json children_abstract.json ``` ### 3. uvxで起動(推奨) GitHubに公開後、uvxから直接起動できます。 ```bash uvx --from git+https://github.com/OWNER/ParentMCPserver \ parent-mcp-server \ --children-config /absolute/path/to/children_config.json \ --children-abstract /absolute/path/to/children_abstract.json ``` ### 4. ローカルでの起動(リポジトリclone済みの場合) ```bash uv run python parent_server.py \ --children-config /absolute/path/to/children_config.json \ --children-abstract /absolute/path/to/children_abstract.json ``` ## 設定例 ```json { "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "./files"], "env": {}, "description": "ファイル操作を行うサーバー" }, "sqlite": { "command": "uvx", "args": ["mcp-server-sqlite", "--db-path", "./test.db"], "env": {}, "description": "SQLiteデータベース操作サーバー" } } } ``` ## 使用方法 ### このプロジェクトで使用する場合 `.mcp.json` に以下を設定(OWNERはご自身のGitHubアカウントに置き換えてください): ```json { "mcpServers": { "parent-manager": { "command": "uvx", "args": [ "--from", "git+https://github.com/OWNER/ParentMCPserver", "parent-mcp-server", "--children-config", "/absolute/path/to/children_config.json", "--children-abstract", "/absolute/path/to/children_abstract.json" ], "env": { "PYTHONUTF8": "1" } } } } ``` ### 別プロジェクトから使用する場合 他のプロジェクトの `.mcp.json` にも同様に設定できます(上記と同じ構成を追加してください)。 **重要**: `--children-config` と `--children-abstract` で実際の絶対パスを指定してください(children-abstract未指定の場合は警告を出し、children_abstractリソースは登録されません)。 ## 提供されるツール ### 基本ツール - `list_registered_children()` - 登録された子サーバー一覧を取得 - `wake_child_and_get_schema(child_name)` - 子サーバーを起動してスキーマを取得 - `execute_child_tool(child_name, tool_name, tool_args, head_chars=None, tail_chars=None)` - 子サーバーのツールを実行し、長い出力を省略可能 - `get_children_abstract()` - 子サーバー概要JSONの内容を返す(`--children-abstract`指定時のみ) ### セッション管理ツール - `get_active_sessions()` - 現在アクティブな子サーバーセッションの一覧を取得 - `close_child_session(child_name)` - 特定の子サーバーとのセッションを閉じる - `check_child_session_health(child_name)` - セッションの健全性をチェック - `reconnect_child_session(child_name)` - セッションを強制的に再接続 ## 高度な機能 ### デバッグモード 環境変数 `DEBUG_MCP=1` を設定すると、子サーバーのstderr出力を確認できるデバッグモードが有効になります。 ```bash DEBUG_MCP=1 uv run python parent_server.py \ --children-config /path/to/children_config.json \ --children-abstract /path/to/children_abstract.json ``` ### 自動リトライ機能 接続失敗時は自動的に最大3回までリトライします(指数バックオフ: 1秒、2秒、4秒)。 ## プロジェクト構造 ``` ParentMCPserver/ ├── parent_server.py # メインサーバーコード ├── children_config.example.json # 子サーバー設定テンプレート ├── children_abstract.example.json # 子サーバー概要テンプレート ├── example.mcp.json # .mcp.json設定例 ├── pyproject.toml # プロジェクト定義 ├── .venv/ # 仮想環境(uv syncで作成) └── README.md # このファイル ``` ## トラブルシューティング ### Python環境が見つからない ```bash uv sync ``` を実行して、プロジェクト専用の仮想環境を作成してください。 ### 子サーバーが起動しない - `config.json` の設定を確認 - 子サーバーのコマンド(npx, uvx など)が利用可能か確認 - 子サーバーの依存関係がインストールされているか確認

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/TomCat2357/MCPgateway'

If you have feedback or need assistance with the MCP directory API, please join our Discord server