複数の MCP サーバーを使った OpenAI Agents SDK コード例
Link copied to clipboard!
2025-03-29T01:45:13Z

すでにご存知の方も多いかと思いますが、OpenAI の Agents SDK から直接 Model Context Protocol (MCP) サーバーをツールとして利用できるようになりました!工夫次第でいろいろと可能性が広がりそうですね。 https://x.com/OpenAIDevs/status/1904957755829481737 この機能の基本的な使い方を知るには Agents SDK のドキュメントページ(英語) とリポジトリ内の examples/mcp/ 配下が参考になりますが、実際に MCP サーバーの連携を利用する場合、複数の MCP サーバーを同時に利用することが多いのではないかと思います。この記事では、その方法について補足解説したいと思います。 紹介するコード例では MCP プロジェクトが提供している以下のサーバーを利用します: それでは、さっそくコードを動かすための準備に入っていきましょう。 はじめに必要なランタイムとライブラリをセットアップします。Python と Node.js がインストールされているかを確認してください。その上で、以下の二つのインストールを実行します。 Slack MCP サーバーを利用する場合、Slack アプリ(カスタムアプリ)を作成し、その bot トークンとワークスペースの ID (team_id) を設定する必要があります。 手順①: https://api.slack.com/apps にアクセスして「Create New App」をクリック、ワークスペースを選択、「From a manifest」を選択、YAMLモードに切り替え、最後に以下の内容を貼り付けてアプリ設定を作成してください(アプリ名は変更しても構いません)。 手順②: Settings > Install App の画面で、アプリを Slack ワークスペースにインストールし、以下の 2 つの環境変数をこれからアプリを実行するターミナルで設定してください。 手順③: MCP からのアクセスを許可したい Slack のチャンネルに先ほどインストールした「Test MCP Connector」という連携アプリ(名前を変更した場合はその名前のアプリ)を招待してください。 これで、複数の MCP サーバーを使ったエージェントワークフローの準備が完了です。 以下の Python コードをapp.pyとして保存し、python app.py で実行してください。 うまく動作する状態になっていれば、以下のような結果になるはずです。ここでは app.py の場所を探してほしい、あと #cat-lovers (C06CS8GRPC2)の直近数時間の内容を自然な日本語でまとめて というプロンプトを使っていますが、ご自身の環境に合わせてカスタマイズしてみてください。 プロンプトに Slack のチャンネル ID を含めているのを疑問に思われた方もいるかもしれません。これは MCP プロジェクトが提供している Slack 連携のサーバーが(少なくともこの記事投稿時点では)ワークスペースに大量のチャンネルがある場合にチャンネル名だけで特定できない場合があるためです。自前の MCP サーバーを作って、Slack API の応答のページネーションに対応した実装にすれば、おそらくチャンネル名だけでも動作するはずです(ただし、チャンネルがたくさんある場合、実行に少し時間がかかるかもしれません)。 OpenAI の Agents SDK を利用する場合、何も設定しなくてもデフォルトでダッシュボードにあるトレース画面を利用することができます。上の実行結果は、以下のような画面表示で確認することができます。 この記事がお役に立てば幸いです。既に存在する MCP サーバーを活用できれば、自前でツール実装をしなくても Agents SDK を使ったエージェントを簡単に拡張することができるかもしれません。ぜひ様々な組み合わせを試してみてください! OpenAI の Developer Experience チームで働いています。以前は Slack の公式 SDK の開発者、SmartNews の VPoE、エムスリーでバックエンドエンジニアなどの仕事をしていました。あと、かつて Scala にハマっていました。 OpenAI の API プラットフォームに関する最新情報やチュートリアルなどをお届けします。 バッジを受け取った著者にはZennから現金やAmazonギフトカードが還元されます。 OpenAI の Developer Experience チームで働いています。以前は Slack の公式 SDK の開発者、SmartNews の VPoE、エムスリーでバックエンドエンジニアなどの仕事をしていました。あと、かつて Scala にハマっていました。 エンジニアのための情報共有コミュニティ
Link copied to clipboard!
James Whitmore
Source of the news: Zenn.dev
BANNER
This is a advertising space.
BANNER
This is a advertising space.