10月3日、AWSが「Add secure Web Search to Claude Desktop with Amazon Bedrock AgentCore」と題した記事を公開した。外部APIキー不要・全トラフィックがAWSインフラ内に閉じる構成で、Claude Desktopのナレッジカットオフ問題をAWSサービスだけで解消できる点が本稿の核心だ。
背景:Claude Desktopのナレッジカットオフ問題
Claude Desktopは強力なAIアシスタントだが、モデルの学習データのカットオフ日以降の情報は取得できない。最新ドキュメント、リアルタイム価格、天気情報など、「今」の情報が必要な場面では答えられない。この記事で紹介するのは、その制約をAWS内で完結するかたちで解消する構成だ。
構成の核心:外部APIキー不要、全トラフィックがAWS内に閉じる
Amazon Bedrock AgentCoreは、任意のフレームワーク・モデルでエージェントを構築・接続・最適化するためのプラットフォームだ。その機能のひとつAgentCore Gatewayを使うことで、Claude DesktopをWeb Searchに接続できる。
このWeb Searchは、数百億件のドキュメントをカバーするAmazonのWebインデックスをバックエンドに持つ、フルマネージドのMCP対応Web検索機能だ。MCP(Model Context Protocol)とは、AIモデルが外部ツールやデータソースと標準化された方法でやり取りするためのオープン規格であり、Anthropicが策定・主導している。ClaudeはMCPの設計思想と親和性が高く、Claude DesktopはMCPサーバーへの接続をネイティブにサポートしている。外部APIキーの管理は不要で、クエリトラフィックはすべてAWSインフラ内に留まる。
認証フローは以下の構成だ:
- AWS IAM Identity Center(SSO)でユーザー認証(SAML)
- Amazon Cognitoがフェデレーション層としてJWTを発行
- AgentCore GatewayがJWTを検証
すべてAWS内で完結するため、サードパーティのIDプロバイダーや別途クレデンシャル管理は不要だ。
セットアップ手順:6ステップで完成
現在Web Searchが利用可能なリージョンはus-east-1(バージニア)、eu-west-1(アイルランド)、ap-northeast-1(東京)の3つだ。
Step 1: Cognito User Poolの作成
CLIコマンドでUser Poolを作成し、後続のステップで使用するPool IDを環境変数にエクスポートする。対象リージョン(AWS_REGION)は上記3リージョンのいずれかを指定する。
Step 2: IAM Identity CenterでSAMLアプリを設定
IAM Identity Centerのコンソールから、CognitoのACS URLとAudienceを指定してSAML 2.0アプリを作成する。属性マッピングとして Subject(Persistent形式)と Email(Basic形式)を設定し、アクセスを許可するユーザー・グループをアサインする。
Step 3: SAMLのIdPをCognitoに登録
ダウンロードしたSAMLメタデータXMLを使い、IAM Identity CenterをCognitoのSAML IdPとして登録する。
Step 4: Cognito App Clientの作成
Claude Desktopがこのクライアントを使ってOAuthフローを開始し、JWTを取得する。--generate-secret を指定してクライアントシークレットを生成する点が重要だ。
Step 5: AgentCore GatewayをPythonスクリプトで構築
記事中のPythonスクリプトは、以下を自動的に処理する:
- IAM実行ロールの作成(
bedrock-agentcore.amazonaws.comがAssumeRole) - AgentCore Gatewayの作成(プロトコル: MCP、認証:
CUSTOM_JWT) - GatewayがREADY状態になるまで最大10分間ポーリング
web-searchマネージドコネクタのターゲットをGatewayにアタッチ
IAMポリシーのポイントは bedrock-agentcore:InvokeWebSearch のリソースARNとしてマネージドツールARNを指定することで、Web検索ツールへのアクセスが明示的に許可される点だ。
※注意: 元記事のサンプルコードでは当該リソースARNに
us-east-1が固定で記載されている箇所がある。ap-northeast-1(東京)など他リージョンで構築する場合は、ARN内のリージョン識別子を利用リージョンに合わせて変更する必要がある。
Step 6: Claude Desktopの設定
Claude Desktopの設定画面から「Add server」→「Blank」を選択し、以下を入力する:
- Transport: Streamable HTTP
- URL: Step 5で作成したGatewayのURL
- OAuth: Bring your own client
- Client ID / Client Secret: Step 4で取得した値
- Callback port: 53280
「Sign in and test」を押すとブラウザが開き、IAM Identity CenterのSSOログイン画面にリダイレクトされる。認証成功後、Claude DesktopにMCPサーバーの登録成功メッセージが表示される。
実際の動作
設定が完了すると、Claude DesktopはMCPのtools/list呼び出しを通じてWebSearchToolを自動検出する。最新情報が必要なクエリに対して、Claudeはツール実行の承認ダイアログを表示する。ダイアログでは「Deny」「Allow for this task」「Allow once」の3択が提示され、承認するとWeb検索結果がレスポンスに組み込まれる。
詳細はAdd secure Web Search to Claude Desktop with Amazon Bedrock AgentCoreを参照していただきたい。