powered by TechFeed
表示モード
ハウツー

Claude Desktopに最新情報を持たせる — AWS完結でWeb検索を追加する6ステップ構成

10月3日、AWSが「Add secure Web Search to Claude Desktop with Amazon Bedrock AgentCore」と題した記事を公開した。外部APIキー不要・全トラフィックがAWSインフラ内に閉じる構成で、Claude Desktopのナレッジカットオフ問題をAWSサービスだけで解消できる点が本稿の核心だ。

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スクリプトは、以下を自動的に処理する:

  1. IAM実行ロールの作成(bedrock-agentcore.amazonaws.comがAssumeRole)
  2. AgentCore Gatewayの作成(プロトコル: MCP、認証: CUSTOM_JWT)
  3. GatewayがREADY状態になるまで最大10分間ポーリング
  4. 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を参照していただきたい。