mcpField
M
MCP Hot Update Server Demo

MCP Hot Update Server Demo

ローカル
github.com/whitejoce開発ツール179 週間前に更新

MCP Hot Update Server Demo について

MCP Hot Update Server Demoは、JSONからユーティリティ関数を読み込み、再起動せずに登録済みツールを更新するFastMCPのサンプルです。動的なツール管理を示すもので、本番利用ではexec()の実行に対する追加対策が必要です。

主な機能

  1. 01ユーティリティ関数の動的読み込み
  2. 02JSON設定によるツール管理
  3. 03再起動不要のツール更新
  4. 04エラー処理とログ記録

活用シーン

  1. 01MCPツールの動的登録のテスト
  2. 02JSONによるユーティリティ関数の変更
  3. 03開発中のホットアップデートの検証

MCP 対応

JSON設定で定義された関数を読み込み、MCPツールとして登録します。コードの実行にはexec()を使用します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP ホットアップデートサーバーのデモ

中国語ドキュメント | このリポジトリの DeepWiki

これは FastMCP フレームワークをベースにしたホットアップデートサーバーのサンプルで、サーバーを再起動せずにユーティリティ関数を動的に読み込み、更新できます。

特長

  • ユーティリティ関数の動的読み込みに対応
  • JSON 設定ファイルを使ったツールの管理
  • リアルタイムのホットアップデート機能
  • 詳細なエラー処理とログ記録

主なコード

exec(tool_code, globals(), local_namespace)
if inspect.isfunction(obj) and obj.__name__ in local_namespace:
     if found_func is not None:
          # Handle potential duplicate function definition if needed
          pass # Or log a warning, raise an error, etc.
     found_func = obj
if found_func:
     # Add the tool to MCP using the database name
     mcp.tool(
          name=tool_name, description=tool_description
     )(found_func)
     print(f"Successfully registered tool '{tool_name}'")

🚀 クイックスタート

1️⃣ 環境のセットアップ

Python 3.7+ がインストールされていることを確認してください。次に、必要なライブラリをインストールします。

$ pip install fastmcp
  • fastmcp: MCP の Python 実装ライブラリです。
2️⃣ MCP サーバーの実行
$ python server.py
  • tools.json ファイルの形式は次のとおりです。
[
     {
          "name": "Tool Name",
          "description": "Tool Description",
          "code": "def function_name(params):\n    # Function implementation\n    return result"
     }
]

セキュリティに関する注意事項

⚠️ 重要なセキュリティ警告:

  • 現在の実装では、JSON ファイルから読み込んだコードの実行に exec() を使用しています
  • 本番環境では、追加のセキュリティ対策が必要です:
    • コード署名の検証
    • サンドボックス環境の制限
    • コードレビューの仕組み
    • アクセス制御

開発に関する提案

  1. 開発環境ですべてのユーティリティ関数をテストします
  2. JSON ファイルの形式が正しいことを確認します
  3. 適切なエラー処理を追加します
  4. コードレビューのプロセスを導入します
  5. バージョン管理の仕組みの導入を検討します

ワークフロー

graph TD
     A[Start Server] --> B[Load tools.json]
     B --> C{Parse JSON}
     C -->|Success| D[Iterate Tool List]
     C -->|Failure| E[Output Error Log]
     D --> F[Execute Tool Code]
     F --> G{Code Execution}
     G -->|Success| H[Register to MCP]
     G -->|Failure| I[Output Error Log]
     H --> J[Server Running]
     J --> K[Wait for New Requests]

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。