LangChain Agent with MCP Servers について
LangChain Agent with MCP Serversは、LangChainエージェントへのMCPツール統合を示すプロジェクトです。LangGraphのReActパターンを使い、MCPサーバーのサブプロセスも管理します。
主な機能
- 01Tavily Search、天気、数学ツールの統合
- 02クエリに応じたツールの動的選択
- 03サーバーのサブプロセス管理
- 04シグナル処理と正常な終了
- 05MCPサーバーを拡張しやすい構成
活用シーン
- 01MCPツールを呼び出すLangChainエージェントの構築
- 02クエリに応じた検索・計算ツールの選択
- 03終了時のサーバーサブプロセスの後処理
MCP 対応
LangChain MCP Adaptersを介してMCPサーバーに接続し、そのツールをエージェントに統合します。メインプログラムがサーバーのサブプロセスを管理します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバーを使用する LangChain エージェント
Model Context Protocol(MCP)サーバーと連携するツール統合に MCP Adapters を使用する LangChain エージェントです。
概要
このプロジェクトでは、Model Context Protocol(MCP)を使用してさまざまなサービスとやり取りする LangChain エージェントの構築方法を紹介します。
- Tavily Search:ウェブ検索とニュース検索機能
- Weather:モックの天気情報の取得
- Math:数式の評価
エージェントは LangGraph の ReAct エージェントパターンを使用し、ユーザーのクエリに基づいてこれらのツールを動的に選択して使用します。
機能
- グレースフルシャットダウン:すべての MCP サーバーで、正常に終了するための適切なシグナル処理を実装しています
- サブプロセス管理:メインエージェントがすべての MCP サーバーのサブプロセスを追跡し、管理します
- エラー処理:アプリケーション全体で堅牢なエラー処理を行います
- モジュール設計:MCP サーバーを簡単に追加して拡張できます
グレースフルシャットダウンの仕組み
このプロジェクトでは、包括的なグレースフルシャットダウンシステムを実装しています。
- シグナル処理:SIGINT と SIGTERM シグナルを捕捉し、グレースフルシャットダウンを開始します
- プロセス追跡:メインエージェントがすべての子プロセスの登録リストを保持します
- クリーンアップ処理:終了時にすべてのサブプロセスが適切に終了することを保証します
- シャットダウンフラグ:各 MCP サーバーにシャットダウンフラグがあり、シャットダウン開始後の新しい操作を防ぎます
- 非同期処理の協調:asyncio を使用して、可能な場合は進行中の操作が完了できるようにします
インストール
# Clone the repository
git clone https://github.com/yourusername/langchain-mcp.git
cd langchain-mcp
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -e .
設定
プロジェクトのルートに .env ファイルを作成し、次の変数を設定します。
OPENAI_API_KEY=your_openai_api_key
TAVILY_API_KEY=your_tavily_api_key
使用方法
コマンドラインからエージェントを実行します。
python src/agent.py
エージェントがクエリの入力を求め、適切なツールを使用して処理します。
開発
新しい MCP サーバーを追加するには:
src/mcpserver/に新しいファイルを作成します- 適切なシグナル処理を実装してサーバーを作成します
src/mcpserver/__init__.pyを更新して新しいサーバーを公開しますsrc/agent.pyにサーバーの設定を追加します
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。