MCPサーバーの実装
外部ツールを使用して大規模言語モデル機能を強化するための Model Context Protocol (MCP) の完全な Flask ベースの実装。
概要
このリポジトリは、モデルのテキスト出力内で直接ツールを呼び出すことでLLM機能を拡張する手法であるモデルコンテキストプロトコル(MCP)を処理するサーバーの構築方法を示します。関数呼び出しとは異なり、MCPはツール定義をコンテキストウィンドウに直接配置し、モデルの自然言語応答を解析してツールの使用状況を識別します。
特徴
- 🔧完全なMCP実装:完全な解析、実行、および応答処理
- 🌤️サンプルツール: パラメータ検証機能を備えた天気予報および計算ツール
- 🔄会話フロー:複数のやり取りにわたってコンテキストを維持する
- 🧩正規表現ベースの解析:ツール呼び出しのための柔軟なテキスト解析
- 🚀 Flask API : チャット統合のための REST API エンドポイント
プロジェクト構造
インストール
- リポジトリをクローンします。
- 仮想環境を作成します。
- 依存関係をインストールします:
- 環境変数を設定します。
使用法
サーバーの実行
Flask 開発サーバーを起動します。
生産の場合:
APIエンドポイント
- POST /chat : MCP でチャットメッセージを処理する
スタンドアロンの例
サンプル スクリプトを実行して、MCP の動作を確認します。
仕組み
- ツール登録: ツールはパラメータと実行ロジックとともに登録されます
- ツール定義の挿入: XML形式のツールの説明がプロンプトに追加されます
- LLM 応答処理: 正規表現パターンは LLM のテキスト出力内のツール呼び出しを識別します。
- ツール実行: パラメータが解析され、適切なツールハンドラに渡されます。
- 結果の挿入: ツールの実行結果がレスポンスに挿入されます
MCPと関数呼び出し
特徴 | MCP | 関数呼び出し |
---|---|---|
定義場所 | プロンプトテキスト | APIパラメータ内 |
呼び出し形式 | 自然言語 | 構造化JSON |
実装 | テキスト解析 | API統合 |
可視性 | 応答で表示される | 隠れている可能性があります |
プラットフォームサポート | テキストベースのLLM | APIサポートが必要 |
会話例
ユーザー: ボストンの天気はどうですか?
法学修士:
処理後:
独自のツールを追加する
Tool
から継承した新しいクラスを作成する- パラメータと実行ロジックを定義する
- MCPハンドラーに登録する
例:
MCP の構成と呼び出しフロー
- ツール登録:
- MCPツールはハンドラーに登録されます
- 各ツールは、名前、説明、パラメータ定義を提供します。
- ツール定義の注入:
- ツール定義がシステムメッセージに追加されます
- MCPのフォーマットはXML構造に従います
- LLM応答処理:
- LLMはツールの呼び出しを含む可能性のある応答を生成します
- パターンマッチングはテキスト内のツール呼び出しを識別します
- ツールパラメータは解析され、ツール実行メソッドに渡されます
- ツールの実行:
- ツールは指定されたパラメータで実行されます
- 結果が会話に反映される
- 会話管理:
- ツールの結果を含む処理済みの応答は会話履歴に追加されます
- 今後のLLMリクエストには、コンテキストのためにこの履歴が含まれます。
会話例
会話の例は次のようになります。
ユーザー: ボストンの天気はどうですか?
システム: MCPツール定義を含むプロンプトをLLMに送信します
LLMの回答:
MCPハンドラ:応答を解析し、ツール呼び出しを見つけて、天気ツールを実行します。
ツール実行結果:
処理された応答(ユーザーに返送されます):
ユーザー: 144 の平方根を計算できますか?
LLMの回答:
MCP ハンドラ:応答を解析し、計算ツールを実行します
ツール実行結果:
処理された応答(ユーザーに返送されます):
これは、LLM のテキストベースの呼び出しから実行および応答処理までの、MCP ツールの使用の完全なフローを示しています。
ライセンス
マサチューセッツ工科大学
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
モデル コンテキスト プロトコルを実装し、自然言語を介して外部ツール機能で LLM を強化する Flask ベースのサーバー。これにより、天気検索や計算などのツールをモデルのテキスト出力で直接呼び出すことができます。
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol server that enables LLMs to interact directly with MongoDB databases, allowing users to query collections, inspect schemas, and manage data through natural language.Last updated -340TypeScriptMIT License
- -securityAlicense-qualityA Model Context Protocol Server that enables LLMs to interact with and execute REST API calls through natural language prompts, supporting GET/PUT/POST/PATCH operations on configured APIs.Last updated -5PythonApache 2.0
- -securityAlicense-qualityA Model Context Protocol server that enables LLMs to interact with databases (currently MongoDB) through natural language, supporting operations like querying, inserting, deleting documents, and running aggregation pipelines.Last updated -TypeScriptMIT License
- AsecurityFlicenseAqualityA Python server implementing the Model Context Protocol to provide customizable prompt templates, resources, and tools that enhance LLM interactions in the continue.dev environment.Last updated -21Python