Bedrock MCPビジョン実装ガイド

BedrockとMCPでつくるビジョンAIとは

Amazon BedrockとModel Context Protocol(MCP)を組み合わせると、画像・動画の説明、物体検出、切り抜き、意味検索などを、AIエージェントが共通のツールとして選び分ける構成を作れます。AWS公式サンプルは、Strands Agents、Amazon Bedrock、Amazon Rekognition、Amazon S3、Amazon OpenSearchを2つのMCPサーバーで接続しています。

最初に役割を分けておくことが重要です。MCPは画像認識エンジンではないため、画像を理解したり物体を検出したりはしません。MCPはツールの発見と呼び出しを標準化し、Bedrockのマルチモーダルモデル、Rekognition、OpenSearchなどが実際のビジョン処理を担当します。

5つの構成要素と役割

構成要素担当すること担当しないこと
UI/クライアント画像・動画の受付、質問、結果表示モデル判断や認可の代替
Strandsエージェント依頼の解釈、ツール選択、複数手順の調整画像解析APIそのもの
MCPサーバーツール定義、入力schema、呼び出し窓口接続先サービスを越えた自動的な安全保証
Bedrock/Rekognition画像・動画の説明、ラベル、bounding boxなどの推論業務上の最終判断
S3/OpenSearchmedia保管、説明・embedding・metadataのindexと検索保存目的・retention・閲覧権限の決定

AWS公式構成では、IAM roleを権限の入口にし、クライアントへ長期credentialを埋め込まない形を取ります。本番でremote MCPを集約するなら、AgentCore Gatewayでinbound authと接続先へのoutbound authを分ける方法もあります。ただし、認証済みであることと、その利用者が操作を許可されていることは別です。

処理の7段階

  1. 受付:拡張子だけでなくmagic bytes、MIME、file size、画像寸法を検査する
  2. 保管:mediaをS3へ置き、bucket名とobject keyを処理対象として受け渡す
  3. 意図判断:エージェントが「説明」「物体検出」「crop」「検索」など目的を分類する
  4. ツール選択:MCPのtool catalogから許可済みツールを選び、schemaに沿う引数を作る
  5. ビジョン処理:BedrockのマルチモーダルモデルやRekognitionが画像・動画を解析する
  6. 追加処理:必要に応じてcrop、背景除去、embedding生成、OpenSearchへのindex・検索を行う
  7. 応答:結果、confidence、根拠となるobject key、失敗理由を整理して利用者へ返す

Bedrock Converse APIは、対応モデルへ画像bytesまたはS3 URIを含むmessageを直接送れます。画像1枚を説明するだけなら、MCPを置かずConverseを直接呼ぶ方が単純です。複数サービスの選択・連携が必要になったときにMCPの価値が高まります。

直接呼び出しとMCP、固定workflowの選び方

方式向くケース判断の目安
Bedrockを直接呼ぶ画像1枚への質問、説明生成、固定された少数処理使うmodelと処理が決まり、tool discoveryが不要
MCP+エージェント説明、検出、crop、動画、検索を依頼ごとに選択・連携複数ツールを共通interfaceで再利用したい
固定workflow検品判定、登録・削除、通知など失敗時の影響が大きい処理順序、承認、再実行、監査を決定論的に管理したい

公式サンプルで使える主な機能

領域ツール例実処理
画像理解describe_imageBedrockのマルチモーダルmodelで説明
動画理解analyze_videoAmazon Novaで動画を分析
物体検出detect_labelsRekognitionでlabel、confidence、bounding boxを取得
画像加工crop_bounding_box検出座標を使って対象部分を切り出す
背景除去・segmentremove_backgroundなどrembgやSAMを使う。AWS管理サービスではない
画像catalogdescription、embedding、ingestBedrockとOpenSearchで説明・vector・metadataをindex
意味検索text/image query文章または画像から類似画像を検索

元のブログにあるPNG、JPG、JPEG、GIF、WEBP、各種動画、最大200MBという記述は掲載されたStreamlitサンプルUIの受付条件です。Bedrock、Rekognition、各modelに共通する上限ではありません。実装時は利用するAPI、model、Regionの現行quotaとformatを個別に確認します。

3つの実務例

  • 商品画像catalog:画像説明とmultimodal embeddingを作り、「白背景の青いマグ」などの自然文や類似画像から素材を探す
  • 設備・現場の確認支援:対象物を検出して切り出し、担当者が確認すべき候補とconfidenceを返す。自動確定ではなく人の判定を残す
  • visual memory:時刻、場所、object key、説明、embeddingを関連付けて過去sceneを検索する。人物追跡や監視へ使う場合は、目的、法的根拠、通知、保存期間、アクセス権を先に決める

導入の8ステップ

  1. 目的を1つに絞る:画像説明、検出、catalog検索など、正解を評価できるtaskから始める
  2. 評価setを作る:通常例、暗所・blur・小物体、未対応format、攻撃的入力を含む代表dataを用意する
  3. データ境界を決める:個人情報、機密区分、保存場所、retention、削除、学習利用可否を文書化する
  4. 処理方式を選ぶ:Bedrock直接、MCP+agent、固定workflowを複雑さと影響度で選ぶ
  5. tool contractを定義する:input schema、出力、timeout、上限、権限、side effect、errorを固定する
  6. 認証・認可を実装する:IAM最小権限、inbound/outbound auth、tool allowlist、利用者単位の認可を設ける
  7. 品質・安全・費用を比較する:task成功率、誤検出、tool選択、遅延、task単価、拒否率をdirect方式と比較する
  8. 段階公開する:read-only、小規模利用、人の確認から始め、監査logと失敗例を見て対象を広げる

本番導入前の注意点

  • MCPを安全境界にしない:tool description、annotation、system promptだけで認可せず、server側で利用者、tool、引数、resourceを検証する
  • 認証と認可を分ける:AgentCore GatewayのAUTHENTICATE_ONLYは本人確認であり操作許可ではない。policyまたは接続先で認可する
  • no-authを本番へ置かない:remote MCPにはJWTやIAMなどのinbound authと、接続先ごとのoutbound credentialを設ける
  • uploadを信用しない:拡張子、MIME、magic bytes、size、解像度、圧縮bomb、malwareを検査し、EXIFなど不要metadataを除く
  • URL取得を制限する:許可domain、DNS再解決、redirect、private/loopback/link-local addressを検証してSSRFを防ぐ
  • 画像内の命令を信用しない:画像、OCR text、tool resultに含まれる指示を命令として扱わず、許可された業務目的へ固定する
  • 最小権限にする:IAM action、bucket prefix、model、Region、OpenSearch collectionを絞り、長期access keyをclientへ埋め込まない
  • 保存を最小化する:S3暗号化、public access block、短いpresigned URL、object分離、retention、削除確認を設ける。private接続が必要ならVPCを検討する
  • confidenceを正解とみなさない:Rekognitionのscoreやmodel回答は不確実。閾値別のfalse positive/negativeを測り、重要判断は人が確認する
  • 人物利用を別審査にする:顔、生体情報、人物追跡は法務・privacy・差別リスクを確認し、用途外利用を禁止する
  • side effectを承認制にする:検出結果を根拠に削除、通報、公開、課金などを自動実行しない。人の承認とrollbackを置く
  • 観測可能にする:request ID、利用者、tool、引数の要約、object version、model、latency、cost、拒否理由を残し、機密値はredactする

評価と監視で見る指標

観点確認する指標
task品質代表task成功率、説明の根拠性、再現性
検出品質precision、recall、false positive/negative、閾値別結果
agent品質tool選択率、引数正確性、不要call、手順完了率
検索品質text/image queryのRecall@k、nDCG、zero-result率
体験p50/p95遅延、timeout、再試行、部分失敗
安全性不正file・URL・tool・引数の拒否率、承認迂回件数
費用Bedrock、Rekognition、S3、OpenSearch、networkを含むtask単価

同じ評価setをBedrock直接呼び出し、MCP+agent、必要なら固定workflowで実行し、平均だけでなく失敗例を比較します。modelやtoolを変更したときも同じsetを再実行できるよう、入力、期待結果、判定理由、実行versionを保存します。

関連する記事と支援

複数ツールの実行方式を深掘りする場合はAmazon Bedrock Programmatic Tool Calling、ツールの順序や利用量を制御する場合はAgentCore Temporal Policiesとレート制限も参考にしてください。自社画像で直接呼び出しとMCPを比較し、privacy・費用・運用まで小さく検証する場合は、AI活用・業務効率化支援で要件整理を支援しています。

AIアップデートを、自社の業務改善へつなげる
新機能をすぐ導入する前に、目的・対象業務・確認責任・情報管理・費用対効果を6項目で整理します。
生成AI業務導入ガイドを読む