mcpField
🤖
🤖 MCP Server Examples with AutoGen

🤖 MCP Server Examples with AutoGen

ローカル
github.com/SaM-92AI・エージェント2980 週間前に更新

🤖 MCP Server Examples with AutoGen について

AIエージェントを開発する人向けに、AutoGenでのMCPツール統合を示すサンプルです。ローカルの数学ツールとリモートのApifyウェブ閲覧ツールを、それぞれStdioとSSEで同じエージェントに接続します。

主な機能

  1. 01AutoGenエージェントによるMCPツール利用
  2. 02Stdio経由でローカル数学サーバーに接続
  3. 03SSE経由でApifyサービスに接続
  4. 04計算とウェブ閲覧の実行例

活用シーン

  1. 01エージェントに算術問題を解かせる
  2. 02最新ニュースを検索して要約する

MCP 対応

AutoGenからローカルのStdio MCPサーバーとリモートのSSE MCPサーバーに接続し、両方のツールを利用する例です。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

🤖 AutoGen による MCP サーバーの例

このリポジトリは、AutoGen フレームワーク内で Model Context Protocol (MCP) を使用して、AI エージェントにツールを統合する実践的なデモンストレーションを提供します。

示されている主な機能:

  • デュアル MCP 統合: AutoGen エージェントを以下に接続する方法を示します:
    • Stdio トランスポートを使用するローカルツールサーバー (math_server.py)。
    • Server-Sent Events (SSE) トランスポートを使用するリモートツールサーバー (Apify の RAG Web Browser Actor)。
  • ローカルツールの例: math_server.py を介してローカルで実行されるシンプルな計算機 (add、multiply)。
  • リモートツールの例: Web 検索とコンテンツ取得のために、Apify の MCP サーバー を介して Apify の RAG Web Browser Actor を活用します。
  • AutoGen エージェント: ユーザーのクエリに回答するために、両方のツールセットを利用するように構成された AssistantAgent。

目的: AI エージェントが、ローカルでホストされているかリモートでホストされているかに関係なく、標準化された通信プロトコル (Stdio および SSE) を介して多様なツールにアクセスできるようにする MCP の柔軟性を説明することです。

シナリオ: この例のエージェントは、2 つの異なる質問に回答します:

  1. 数学の問題 ((3 + 5) x 12?)。ローカルの math_server.py を使用することが期待されます。
  2. 最近のニュースのリクエスト (「イランと米国の交渉に関する最新ニュースを要約してください...」)。リモートの Apify Web ブラウジングツールを使用することが期待されます。

MCP Workflow

📚 使用されているライブラリとフレームワーク

  • AutoGen: AI エージェントフレームワーク (autogen_agentchat、autogen_core、autogen_ext)
  • MCP: ツール統合のための Model Context Protocol
  • Python-dotenv: 環境変数の管理用
  • OpenAI API: LLM 機能用
  • Apify API: Web ブラウジング機能用

🛠️ セットアップ

環境をセットアップするには、以下の手順に注意深く従ってください:

  1. 前提条件:

    • Python 3.12 がインストールされていることを確認してください。
    • まだインストールしていない場合は、uv をインストールしてください:
      pip install uv
      
  2. プロジェクトディレクトリに移動:

    cd mcp_autogen_sse_stdio
    
  3. 仮想環境の作成と有効化:

    # Create virtual environment using uv
    uv venv --python 3.12
    
    # Activate the virtual environment
    source .venv/bin/activate  # On macOS/Linux
    # OR
    .\.venv\Scripts\activate  # On Windows
    
  4. 依存関係のインストール:

    # Install project dependencies
    uv pip install -e .
    

    トラブルシューティングの注意: MCP CLI のインストールで問題が発生した場合は、手動でインストールできます:

    uv add "mcp[cli]"
    
  5. 環境変数の設定:

    • mcp_autogen_sse_stdio ディレクトリに .env ファイルを作成します。
    • API キーを追加します:
      OPENAI_API_KEY=your_openai_api_key_here
      APIFY_API_KEY=your_apify_api_key_here
      
    • Apify API キーは Apify MCP Server ページ から取得してください。

🚀 プロジェクトの実行

  1. 親ディレクトリ (プロジェクトディレクトリの 1 つ上) にいることを確認してください:

    cd ..
    
  2. uv を使用してメインスクリプトを実行します:

    uv run mcp_autogen_sse_stdio/main.py
    

これにより、以下のデモが実行されます:

  1. Apify ツールを使用してイランと米国の交渉に関するニュースを要約します
  2. ローカルの数学ツールを使用して簡単な数学の問題 (3 + 5) x 12 を解きます

🔌 MCP (Model Context Protocol) の理解

MCP は、AI モデルとツール間の通信を標準化するプロトコルです。この例では、MCP を使用する 2 つの方法を示します:

1. ローカルツール (StdioServerParams)
  • 通信に標準入出力を使用します
  • ツールはお使いのマシン上でローカルに実行されます
  • 例: math_server.py は簡単な数学演算を提供します
2. リモートツール (SseServerParams)
  • 通信に Server-Sent Events (SSE) を使用します
  • ツールはリモートサーバー (Apify など) 上で実行されます
  • 例: Apify の rag-web-browser を介した Web ブラウジング機能

📝 コードのウォークスルー

main.py では次のことを示しています:

  1. 環境のセットアップ:

    • API キーを読み込み、検証します
  2. ツールの設定:

    • StdioServerParams を使用してローカルの数学ツールをセットアップします
    • SseServerParams を使用して Apify のウェブブラウザーに接続します (API は https://apify.com/apify/actors-mcp-server から)
  3. エージェントの作成:

    • 両方のツールセットを備えた AutoGen アシスタントを作成します
    • ベースモデルとして GPT-4 を使用します
  4. タスクの実行:

    • 両方のツールが動作する様子を示す 2 つのデモタスクを実行します
    • ニュース要約のためのウェブブラウジング
    • 算術問題のための数学計算

🔄 通信フロー

User → AutoGen Agent → MCP Tools → Results → User

この例では、MCP を使用してさまざまな種類のツールをいかに簡単に 1 つのエージェントに統合できるかを示しています!

コメント

MCP は初めてですか?

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

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