mcpField
L
Langchain Agent Mcp Server

Langchain Agent Mcp Server

ローカル
github.com/mcpmessengerAI・エージェント444 週間前に更新

Langchain Agent Mcp Server について

Langchain Agent Mcp Serverは、LangChainのReActエージェントをMCPツールとして公開し、複数ステップのタスク実行に対応します。Playwrightサンドボックスでウェブサイトのアクセシビリティスナップショットも確認できます。

主な機能

  1. 01LangChain ReActエージェント
  2. 02単一のMCP agent_executorツール
  3. 03呼び出しごとのシステム指示
  4. 04ウェブサイトのアクセシビリティスナップショット
  5. 05Google Cloud Runへのデプロイ

活用シーン

  1. 01MCPクライアントから複数ステップのクエリを実行
  2. 02タスクごとのエージェント動作の調整
  3. 03ウェブサイトのアクセシビリティスナップショットの確認

MCP 対応

MCPマニフェストと呼び出しエンドポイントを通じて、LangChainエージェントをagent_executorツールとして提供します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

LangChain Agent MCP Server

Model Context Protocol を通じて LangChain エージェントの機能を公開する、本番環境対応の MCP サーバーです。Google Cloud Run にデプロイされています。

GitHub Stars GitHub Forks License

🚀 概要

これは、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(任意、ローカルテスト用)
ローカル開発
  1. リポジトリをクローンします:

    git clone https://github.com/mcpmessenger/LangchainMCP.git
    cd LangchainMCP
    
  2. 依存関係をインストールします:

    # Windows
    py -m pip install -r requirements.txt
    
    # Linux/Mac
    pip install -r requirements.txt
    
  3. 環境変数を設定します: .env ファイルを作成します:

    OPENAI_API_KEY=your-openai-api-key-here
    OPENAI_MODEL=gpt-4o-mini
    PORT=8000
    
  4. サーバーを実行します:

    # Windows
    py run_server.py
    
    # Linux/Mac
    python run_server.py
    
  5. エンドポイントをテストします:

  6. フロントエンドを起動します(任意):

    # 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 へのデプロイを想定して設計されています。詳しいデプロイガイドはこちらをご覧ください。

クイックデプロイ
# Windows PowerShell
.\deploy-cloud-run.ps1 -ProjectId "your-project-id" -Region "us-central1"

# Linux/Mac
./deploy-cloud-run.sh your-project-id 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_KEYOpenAI 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_URLRedis 状態ストアとタスクモニタリングを有効にする-いいえ
TASK_TTL_SECONDSタスク概要の TTL86400いいえ
RECENT_TASKS_MAX最近のタスクインデックスのサイズ200いいえ

📚 ドキュメント

📖 ドキュメントサイト全体 - 例を含む完全なドキュメント(GitHub Pages)

クイックリンク:

ドキュメントをローカルでビルドする:

# Windows
.\build-docs.ps1 serve

# Linux/Mac
./build-docs.sh serve

その他のガイド:

🧪 テスト

# 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 を修正しました
クイックスタート
  1. Playwright をインストールします:

    py -m pip install playwright
    py -m playwright install chromium
    
  2. バックエンドを起動します:

    py run_server.py
    
  3. フロントエンドを起動します:

    npm install  # First time only
    npm run dev
    
  4. サンドボックスにアクセスします: http://localhost:8080/sandbox を開き、次のような URL を試してください:

    • wikipedia.org
    • github.com
    • google.com
仕組み
  1. URL を入力 - Playwright を使用してウェブサイトに移動します
  2. スナップショットを生成 - 構造化されたアクセシビリティ情報(ロール、名前、説明)を抽出します
  3. 比較を表示 - ライブサイトと AI の構造化されたビューを並べて表示します
  4. プロンプトをテスト - 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 の設定

🤝 コントリビューション

コントリビューションを歓迎します!コントリビューションガイドラインをご覧ください。

  1. リポジトリをフォークします
  2. フィーチャーブランチを作成します
  3. 変更を加えます
  4. プルリクエストを送信します

📜 ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています。

🔗 リンク

🙏 謝辞


ステータス: ✅ 本番環境対応済みで、Google Cloud Run にデプロイ済み

コメント

MCP は初めてですか?

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

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