Skip to main content
Glama

MCP Gateway (Parent MCP Server)

by TomCat2357

Parent MCP Server

複数の子MCPサーバーを一元管理する親MCPサーバーです。

概要

このサーバーは、複数の子MCPサーバー(filesystem, sqlite など)を登録・管理し、統一されたインターフェースで操作できるようにします。

セットアップ

1. 依存関係のインストール

uv sync

2. 子サーバー設定ファイルを用意

children_config.example.json / children_abstract.example.json をテンプレートとしてコピーし、実環境に合わせて編集してください。

cp children_config.example.json children_config.json cp children_abstract.example.json children_abstract.json

3. uvxで起動(推奨)

GitHubに公開後、uvxから直接起動できます。

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済みの場合)

uv run python parent_server.py \ --children-config /absolute/path/to/children_config.json \ --children-abstract /absolute/path/to/children_abstract.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アカウントに置き換えてください):

{ "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出力を確認できるデバッグモードが有効になります。

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環境が見つからない

uv sync

を実行して、プロジェクト専用の仮想環境を作成してください。

子サーバーが起動しない

  • config.json の設定を確認

  • 子サーバーのコマンド(npx, uvx など)が利用可能か確認

  • 子サーバーの依存関係がインストールされているか確認

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

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