Skip to main content
Glama

MCP Reloader

by mizchi
COMPARISON.md3.77 kB
# MCP Hot-Reload 実装比較 ## 類似ツールとの比較 ### ファイル監視ツール | ツール | 特徴 | 長所 | 短所 | |--------|------|------|------| | **tsx watch** | TypeScript専用、esbuild使用 | シンプル、TypeScript対応 | 設定制限、再起動が遅い、デコレータ未対応 | | **nodemon** | 汎用ファイル監視ツール | 高い設定自由度、安定性 | プロセス再起動のみ、状態保持なし | | **Node.js --watch** | ネイティブ実装 | 追加依存なし | 実験的機能、限定的な設定 | | **Bun --hot** | 真のホットリロード | 状態保持、高速 | Bunランタイム限定 | | **tsc-watch** | TypeScript特化 | コンパイルステータス連携 | TypeScript限定 | ### 本実装の位置づけ 本実装(mcp-hot-reload)は、**MCPプロトコル専用**のホットリロードシステムとして、以下の独自性があります: 1. **MCPプロトコル統合** - `tools/list_changed`通知の自動送信 - MCPクライアントとの連携最適化 2. **二段階リロード** - ツールファイル:ホットリロード(プロセス再起動なし) - 設定ファイル:プロセス再起動(dirtyフラグ) 3. **ラッパー機能** - 任意のLSPサーバーをホットリロード対応に - `--include`パターンで柔軟な監視設定 ## 他のMCPホットリロード実装 ### 1. whitejoce/hot-update-MCP-Server(Python) ```python # JSONファイルからツール定義を動的読み込み def load_tools(): tools_data = json.load(open("tools.json")) for tool in tools_data: exec(tool['code'], namespace) ``` **特徴**: - JSONベースのツール定義 - 独立した名前空間でコード実行 - ランタイムでのコード評価 ### 2. Spring AI実装 ```java // 動的ツール登録 mcpServer.addTool(new CustomTool()); // tool-updateシグナルで追加 ``` **特徴**: - APIベースのツール管理 - シグナルベースの更新通知 ### 3. MCP TypeScript SDK ```typescript // ツールの動的有効化/無効化 tool.enable(); tool.disable(); // 自動的にlistChanged通知 ``` **特徴**: - 公式SDKの標準機能 - 条件付きツール表示 ## 本実装の優位性と改善点 ### 優位性 1. **ファイルベースの直感的な管理** - ツールをファイルとして管理 - Git等でのバージョン管理が容易 2. **包括的な監視システム** - ツールと設定ファイルの両方を監視 - 変更の種類に応じた適切な対応 3. **汎用性** - 任意のプロセスをラップ可能 - 言語非依存 ### 改善の余地 1. **条件付きツール管理** ```javascript // 提案:enabledプロパティのサポート export default { name: "admin_tool", enabled: () => hasAdminPermission(), // ... } ``` 2. **ツールのバリデーション強化** ```javascript // 提案:スキーマ検証 validateToolSchema(tool) { return ajv.validate(toolSchema, tool); } ``` 3. **メトリクスとモニタリング** ```javascript // 提案:リロード統計 { reloadCount: 0, lastReloadTime: Date.now(), toolLoadErrors: [] } ``` ## 結論 本実装は、MCPプロトコルに特化したホットリロードシステムとして、既存のファイル監視ツールとは異なる価値を提供しています。特に、MCPの`tools/list_changed`通知との統合と、任意のLSPサーバーをラップできる柔軟性が特徴的です。 今後は、公式SDKの動的ツール管理機能との統合や、より高度なツール管理機能の追加により、さらに強力なシステムへと発展させることができるでしょう。

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/mizchi/mcp-reloader'

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