Langchain Agent Mcp Server について
Langchain Agent Mcp Serverは、LangChainのReActエージェントをMCPツールとして公開し、複数ステップのタスク実行に対応します。Playwrightサンドボックスでウェブサイトのアクセシビリティスナップショットも確認できます。
主な機能
- 01LangChain ReActエージェント
- 02単一のMCP agent_executorツール
- 03呼び出しごとのシステム指示
- 04ウェブサイトのアクセシビリティスナップショット
- 05Google Cloud Runへのデプロイ
活用シーン
- 01MCPクライアントから複数ステップのクエリを実行
- 02タスクごとのエージェント動作の調整
- 03ウェブサイトのアクセシビリティスナップショットの確認
MCP 対応
MCPマニフェストと呼び出しエンドポイントを通じて、LangChainエージェントをagent_executorツールとして提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
LangChain Agent MCP Server
Model Context Protocol を通じて LangChain エージェントの機能を公開する、本番環境対応の MCP サーバーです。Google Cloud Run にデプロイされています。
🚀 概要
これは、LangChain エージェントを単一の高レベル MCP ツールとしてラップするスタンドアロンのバックエンドサービスです。サーバーは FastAPI で構築され、Google Cloud Run にデプロイされており、MCP に準拠したあらゆるクライアントに AI エージェントの機能を公開する、スケーラブルで本番環境に対応したソリューションを提供します。
稼働中のサービス: https://langchain-agent-mcp-server-554655392699.us-central1.run.app
✨ 特長
- ✅ MCP 準拠 - Model Context Protocol を完全にサポート
- ✅ LangChain エージェント - ReAct パターンによる複数ステップの推論
- ✅ Playwright サンドボックス - アクセシビリティスナップショットのインタラクティブなプレビュー(新機能!)
- ✅ Google Cloud Run - スケーラブルなサーバーレスデプロイ
- ✅ ツールのサポート - カスタムツール向けの拡張可能なフレームワーク
- ✅ 本番環境対応 - エラー処理、ログ記録、モニタリング
- ✅ Docker サポート - 簡単にデプロイできるコンテナ化
🏗️ アーキテクチャ
| コンポーネント | 技術 | 目的 |
|---|---|---|
| バックエンドフレームワーク | FastAPI | 高性能な非同期 Web サーバー |
| エージェントフレームワーク | LangChain | 複数ステップの推論とツールの実行 |
| デプロイ | Google Cloud Run | サーバーレスの自動スケーリングホスティング |
| コンテナ化 | Docker | 一貫性のあるデプロイ環境 |
| プロトコル | Model Context Protocol (MCP) | ツールとコンテキストを共有する標準規格 |
🛠️ クイックスタート
前提条件
- Python 3.11+
- OpenAI API キー
- Google Cloud アカウント(Cloud Run へのデプロイ用)
- Docker(任意、ローカルテスト用)
ローカル開発
-
リポジトリをクローンします:
git clone https://github.com/mcpmessenger/LangchainMCP.git cd LangchainMCP -
依存関係をインストールします:
# Windows py -m pip install -r requirements.txt # Linux/Mac pip install -r requirements.txt -
環境変数を設定します:
.envファイルを作成します:OPENAI_API_KEY=your-openai-api-key-here OPENAI_MODEL=gpt-4o-mini PORT=8000 -
サーバーを実行します:
# Windows py run_server.py # Linux/Mac python run_server.py -
エンドポイントをテストします:
- ヘルスチェック: http://localhost:8000/health
- マニフェスト: http://localhost:8000/mcp/manifest
- API ドキュメント: http://localhost:8000/docs
- Playwright サンドボックス: http://localhost:8080/sandbox(フロントエンドの起動後)
-
フロントエンドを起動します(任意):
# Install frontend dependencies (first time only) npm install # Start frontend dev server npm run dev続いて http://localhost:8080/sandbox にアクセスし、Playwright サンドボックスのプレビュー機能を利用します。
☁️ Google Cloud Run へのデプロイ
このサーバーは Google Cloud Run へのデプロイを想定して設計されています。詳しいデプロイガイドはこちらをご覧ください。
- DEPLOY_CLOUD_RUN_WINDOWS.md - Windows 向けデプロイガイド
- DEPLOY_CLOUD_RUN.md - 一般的なデプロイガイド
- QUICK_DEPLOY.md - クイックリファレンス
クイックデプロイ
# Windows PowerShell
.\deploy-cloud-run.ps1 -ProjectId "your-project-id" -Region "us-central1"
# Linux/Mac
./deploy-cloud-run.sh your-project-id us-central1
現在のデプロイ状況
- サービス URL: https://langchain-agent-mcp-server-554655392699.us-central1.run.app
- プロジェクト: slashmcp
- リージョン: us-central1
- ステータス: ✅ 稼働中
📡 API エンドポイント
MCP エンドポイント
マニフェストを取得
GET /mcp/manifest
利用可能なツールを宣言する MCP マニフェストを返します。
レスポンス:
{
"name": "langchain-agent-mcp-server",
"version": "1.0.0",
"tools": [
{
"name": "agent_executor",
"description": "Execute a complex, multi-step reasoning task...",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The user's query or task"
},
"system_instruction": {
"type": "string",
"description": "Optional system-level instructions to customize agent behavior"
}
},
"required": ["query"]
}
}
]
}
ツールを呼び出す
POST /mcp/invoke
Content-Type: application/json
{
"tool": "agent_executor",
"arguments": {
"query": "What is the capital of France?",
"task_id": "optional-workflow-id"
}
}
システム指示を指定する場合(任意):
POST /mcp/invoke
Content-Type: application/json
{
"tool": "agent_executor",
"arguments": {
"query": "Analyze Tesla stock",
"system_instruction": "You are a financial analyst. Provide detailed analysis with specific numbers."
}
}
レスポンス:
{
"content": [
{
"type": "text",
"text": "The capital of France is Paris."
}
],
"isError": false
}
システム指示
agent_executor ツールでは、任意の system_instruction パラメーターを指定して、呼び出しごとにエージェントの動作をカスタマイズできます。
使用方法:
-
基本的なクエリ(デフォルトのプロンプトを使用):
{ "tool": "agent_executor", "arguments": { "query": "What is the weather today?" } } -
カスタム指示付きのクエリ:
{ "tool": "agent_executor", "arguments": { "query": "Explain quantum computing", "system_instruction": "You are a physics professor. Explain concepts clearly and use examples." } } -
パーソナリティのカスタマイズ:
{ "tool": "agent_executor", "arguments": { "query": "Tell me about space", "system_instruction": "You are a pirate explaining complex topics. Use pirate terminology!" } }
注意:
system_instructionを省略した場合、エージェントはデフォルトのプロンプトを使用します- 空または空白文字のみの指示は無視されます(デフォルトのプロンプトが使用されます)
- カスタム指示を指定するたびに、新しいエージェントインスタンスが作成されます
Playwright Sandbox エンドポイント
アクセシビリティスナップショットを生成する
POST /api/playwright/snapshot
Content-Type: application/json
{
"url": "wikipedia.org",
"use_cache": true
}
レスポンス:
{
"snapshot": "[body]\n Name: Wikipedia\n [main]\n Name: Main content...",
"url": "https://wikipedia.org",
"cached": false,
"token_count": 3307
}
機能:
- 任意のウェブサイトの構造化されたアクセシビリティスナップショットを生成します
- AI が構造化データを通してウェブサイトをどのように「見ている」かを表示します
- 人気サイトのキャッシュに対応しています
- トークン数を推定します
- Windows に対応しています(ProactorEventLoop を使用)
スナップショットに対してプロンプトをテストする
POST /api/playwright/test-prompt
Content-Type: application/json
{
"snapshot": "[body]\n [button]\n Name: Login",
"prompt": "Find the login button"
}
レスポンス:
{
"matches": [
{
"line": 2,
"content": "[button] Name: Login",
"context": "..."
}
],
"prompt": "Find the login button",
"total_matches": 1
}
Playwright Sandbox UI:
http://localhost:8080/sandbox にアクセスすると、インタラクティブなプレビュー機能を使用できます:
- 任意の URL を入力してスナップショットを生成します
- ライブのウェブサイトと AI によるアクセシビリティスナップショットを並べて表示します
- プロンプトをテストして、スナップショット内の要素を見つけます
- 完全な HTML やスクリーンショットと比較したトークン削減量を確認します
その他のエンドポイント
GET /- サーバー情報GET /health- ヘルスチェックGET /api/tasks- 安全なタスクの概要(任意のモニタリング)GET /api/tasks/{task_id}- 安全なタスクの概要(任意のモニタリング)GET /docs- インタラクティブな API ドキュメント(Swagger UI)
🔧 設定
環境変数
| 変数 | 説明 | デフォルト | 必須 |
|---|---|---|---|
OPENAI_API_KEY | OpenAI API キー | - | ✅ はい |
OPENAI_MODEL | 使用する OpenAI モデル | gpt-4o-mini | いいえ |
PORT | サーバーポート | 8000 | いいえ |
API_KEY | 認証用の任意の API キー | - | いいえ |
MAX_ITERATIONS | エージェントの最大反復回数 | 10 | いいえ |
DEFAULT_SYSTEM_INSTRUCTION | デフォルトのシステムプロンプト(Glazyr) | - | いいえ |
VERBOSE | 詳細なログ記録を有効にする | false | いいえ |
POLICY_ENFORCEMENT | /mcp/invoke ポリシーゲートを適用する | false | いいえ |
MAX_QUERY_CHARS | 許可されるクエリの最大サイズ | 5000000 | いいえ |
ALLOWLISTED_DOMAINS | カンマ区切りのドメイン許可リスト(クエリ URL) | - | いいえ |
REDIS_URL | Redis 状態ストアとタスクモニタリングを有効にする | - | いいえ |
TASK_TTL_SECONDS | タスク概要の TTL | 86400 | いいえ |
RECENT_TASKS_MAX | 最近のタスクインデックスのサイズ | 200 | いいえ |
📚 ドキュメント
📖 ドキュメントサイト全体 - 例を含む完全なドキュメント(GitHub Pages)
クイックリンク:
- はじめに - ローカルでセットアップして実行する
- 例 - **「10 行で RAG エージェントを構築する」**を含むコード例
- デプロイガイド - Google Cloud Run にデプロイする
- API リファレンス - API ドキュメント全体
- トラブルシューティング - よくある問題と解決方法
ドキュメントをローカルでビルドする:
# Windows
.\build-docs.ps1 serve
# Linux/Mac
./build-docs.sh serve
その他のガイド:
- README_BACKEND.md - 技術ドキュメント全体
- PLAYWRIGHT_SANDBOX_SETUP.md - Playwright Sandbox のセットアップと使用方法
- BUG_REPORT_PLAYWRIGHT_NOTIMPLEMENTEDERROR.md - Windows 互換性修正のドキュメント
- DEPLOY_CLOUD_RUN_WINDOWS.md - Windows でのデプロイガイド
- INSTALL_PREREQUISITES.md - 前提条件のインストール
- SLASHMCP_INTEGRATION.md - SlashMCP 統合ガイド
- docs/glazyr-integration.md - Glazyr 統合に関するメモ(スクリーンショット → MCP invoke)
🧪 テスト
# Test health endpoint
Invoke-WebRequest -Uri "https://langchain-agent-mcp-server-554655392699.us-central1.run.app/health"
# Test agent invocation
$body = @{
tool = "agent_executor"
arguments = @{
query = "What is 2+2?"
}
} | ConvertTo-Json
Invoke-WebRequest -Uri "https://langchain-agent-mcp-server-554655392699.us-central1.run.app/mcp/invoke" `
-Method POST `
-ContentType "application/json" `
-Body $body
# Test with system instruction
$bodyWithInstruction = @{
tool = "agent_executor"
arguments = @{
query = "What is 2+2?"
system_instruction = "You are a math teacher. Explain your reasoning step by step."
}
} | ConvertTo-Json
Invoke-WebRequest -Uri "https://langchain-agent-mcp-server-554655392699.us-central1.run.app/mcp/invoke" `
-Method POST `
-ContentType "application/json" `
-Body $bodyWithInstruction
🎭 Playwright サンドボックス機能
Playwright サンドボックスは、AI エージェントが構造化されたアクセシビリティデータを通じてウェブサイトをどのように「見る」かを実演する、インタラクティブなプレビュー機能です。構造化スナップショットと完全な HTML またはスクリーンショットの違いを理解するのに特に役立ちます。
機能
- デュアルビューインターフェース:ライブウェブサイトと、構造化されたアクセシビリティスナップショットを並べて表示します
- トークン効率:トークン数を比較できます。スナップショットは通常、完全な HTML より 90% 以上小さくなります
- インタラクティブなテスト:プロンプトを試して、スナップショット内の要素を見つけられます
- キャッシュ:人気のサイトはキャッシュされ、デモ結果をすばやく表示できます
- Windows 対応:ProactorEventLoop を使用して、Windows での
NotImplementedErrorを修正しました
クイックスタート
-
Playwright をインストールします:
py -m pip install playwright py -m playwright install chromium -
バックエンドを起動します:
py run_server.py -
フロントエンドを起動します:
npm install # First time only npm run dev -
サンドボックスにアクセスします: http://localhost:8080/sandbox を開き、次のような URL を試してください:
wikipedia.orggithub.comgoogle.com
仕組み
- URL を入力 - Playwright を使用してウェブサイトに移動します
- スナップショットを生成 - 構造化されたアクセシビリティ情報(ロール、名前、説明)を抽出します
- 比較を表示 - ライブサイトと AI の構造化されたビューを並べて表示します
- プロンプトをテスト - AI に特定の要素を探すよう依頼してみます
技術的な詳細
- バックエンド:Playwright と連携する FastAPI エンドポイント
- フロントエンド:TanStack Query を使用した React + Vite
- イベントループ:サブプロセスをサポートするため、Windows では ProactorEventLoop を使用します
- ステルスモード:互換性を高めるためのボット対策検知機能
- エラー処理:自動アクセスをブロックするサイトを適切に処理します
詳しいセットアップ手順については、PLAYWRIGHT_SANDBOX_SETUP.md をご覧ください。
🏗️ プロジェクト構成
.
├── src/
│ ├── main.py # FastAPI application with MCP endpoints
│ ├── agent.py # LangChain agent definition and tools
│ ├── pages/
│ │ └── Sandbox.tsx # Playwright Sandbox UI component
│ ├── mcp_manifest.json # MCP manifest configuration
│ └── start.sh # Cloud Run startup script
├── tests/
│ └── test_mcp_endpoints.py # Test suite
├── Dockerfile # Container configuration
├── requirements.txt # Python dependencies (includes playwright)
├── deploy-cloud-run.ps1 # Windows deployment script
├── deploy-cloud-run.sh # Linux/Mac deployment script
└── cloudbuild.yaml # Cloud Build configuration
🚀 デプロイの選択肢
Google Cloud Run(推奨)
- スケーラブル - トラフィックに応じて自動的にスケールします
- サーバーレス - 使用した分だけお支払いいただきます
- マネージド - インフラストラクチャの管理は不要です
- 高速 - グローバル CDN による低レイテンシ
詳しい手順については、DEPLOY_CLOUD_RUN_WINDOWS.md をご覧ください。
Docker(ローカル/その他のプラットフォーム)
docker build -t langchain-agent-mcp-server .
docker run -p 8000:8000 -e OPENAI_API_KEY=your-key langchain-agent-mcp-server
📊 パフォーマンス
- P95 レイテンシ: 標準的な 3 ステップの ReAct チェーンで 5 秒未満
- スケーラビリティ: Cloud Run での水平スケーリング
- 稼働率: 99.9% を目標(Cloud Run SLA)
- スループット: 同時リクエストを効率的に処理します
🔒 セキュリティ
- API キー認証(任意)
- 環境変数の管理
- Secret Manager との連携(Cloud Run)
- デフォルトで HTTPS を使用(Cloud Run)
- CORS の設定
🤝 コントリビューション
コントリビューションを歓迎します!コントリビューションガイドラインをご覧ください。
- リポジトリをフォークします
- フィーチャーブランチを作成します
- 変更を加えます
- プルリクエストを送信します
📜 ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。
🔗 リンク
- GitHub リポジトリ: https://github.com/mcpmessenger/LangchainMCP
- 稼働中のサービス: https://langchain-agent-mcp-server-554655392699.us-central1.run.app
- API ドキュメント: https://langchain-agent-mcp-server-554655392699.us-central1.run.app/docs
- Model Context Protocol: https://modelcontextprotocol.io/
🙏 謝辞
- LangChain を使用して構築
- Google Cloud Run にデプロイ
- ウェブフレームワークとして FastAPI を使用
ステータス: ✅ 本番環境対応済みで、Google Cloud Run にデプロイ済み
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。