AWS Strands Agents: Building and Connecting Your First Model Context Protocol (MCP) Server について
Strands Agentsとの連携を学ぶ開発者向けの、JavaScript/Node.js製MCPサーバーのデモです。位置情報と天候に基づくShutterstock画像検索を行い、気象データを使ったエージェント連携も示します。
主な機能
- 01位置情報と天候に応じたShutterstock画像検索
- 02NWS APIによる気象情報の取得
- 03Strands Agentsによる複数エージェントの連携
- 04STDIOとStreamable HTTPのトランスポート対応
活用シーン
- 01地域の天候を踏まえた画像検索フローの構築
- 02Strands AgentsとMCPサーバーの接続方法の確認
MCP 対応
クライアントにShutterstockのメディア検索機能を提供するMCPサーバーを実装しています。Strands Agentsがサーバーに接続し、気象データと組み合わせて呼び出す例も含まれます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
AWS Strands Agents:初めての Model Context Protocol(MCP)サーバーの構築と接続
概要
サードパーティー API を使用して、現在地と状況に基づいてストックフォトを検索する MCP サーバーをデプロイし、Strands Agents と Amazon Q Developer CLI を使ってオーケストレーションします。
Model Context Protocol(MCP)は、AI エージェントが外部サービスとシームレスに連携できる標準インターフェースを提供します。この投稿では、高品質なライセンス付き画像、動画、音楽、クリエイティブツールを提供する私のお気に入りのプラットフォーム、Shutterstock と、その堅牢な API を統合する MCP サーバーの構築方法を紹介します。続いて、AWS のコードファーストフレームワークである Strands Agents を使って開発したエージェントに、この豊富なメディア検索機能を公開する方法を説明します。複数のエージェントをオーケストレーションすることで、エージェントが National Weather Service(NWS)API にアクセスし、現在の気象状況に基づいて文脈に合った写真をインテリジェントに選択して、推論とコンテキストを考慮した自動化の力を示す結果を提供できるようにします。
以下を基にした JavaScript/Node.js MCP サーバー:https://github.com/lucianoayres/mcp-server-node。
前提条件
- Git 分散バージョン管理システム
- Node.js v22.16.01 LTS 以降(MCP サーバー)
- npm、Yarn、またはその他の Node.js パッケージマネージャー
- Python 3.13.x(Strands Agents)
- pip、Poetry、またはその他の Python パッケージマネージャー
- AWS アカウント(Amazon Bedrock の生成 AI モデルへのアクセス用。他のモデルプロバイダーもサポートされています)
- 無料の Shutterstock テストアカウントとトークン(Shutterstock Developers で登録)
- 任意:投稿の最後のセクションで使用する Amazon Q Developer CLI
インストール
- リポジトリをクローンしてパッケージをインストール
npm install -g corepack # if using yarn
git clone https://github.com/garystafford/aws-strands-agents-mcp-demo.git
cd aws-strands-agents-mcp-demo
yarn install
- MCP サーバーを起動
# terminal window 1: STDIO transport
# environment variables are set by MCP server with STDIO
export API_KEY=abc-1234567890
export SHUTTERSTOCK_API_TOKEN=<YOUR_SHUTTERSTOCK_API_TOKEN>
node mcp-server.js
# terminal window 2: Streamable HTTP transport
# environmental variables are set by agent with Streamable HTTP
node mcp-server-remote.js
- Strands Agents をインストール
python -m pip install virtualenv -Uqqq
python -m venv .venv
source .venv/bin/activate
python -m pip install pip -Uqqq
python -m pip install -r requirements.txt -Uqqq
- Strands Agents を起動
export API_KEY=abc-1234567890
export SHUTTERSTOCK_API_TOKEN=<YOUR_SHUTTERSTOCK_API_TOKEN>
python agent_stdio_multi_agent.py
このリポジトリの内容は、Amazon Web Services(AWS)を含む、過去または現在の雇用主の見解を表すものではなく、私個人の見解を表しています。サードパーティーのライブラリ、モジュール、プラグイン、SDK はすべて、それぞれの所有者に帰属します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。