AWS Bedrock KB Retrieval

公式

Amazon Bedrock Knowledge Basesに対して自然言語でクエリを実行し、データソースから関連情報を取得します。

AWS Bedrock KB Retrieval MCPで何ができますか?

  • ナレッジベースの検出 — ListKnowledgeBases を使用して、利用可能なすべての Bedrock ナレッジベースとそのデータソースを一覧表示するよう依頼します。
  • 自然言語でのクエリ — 会話形式の質問を行い、ナレッジベースから引用付きの関連パッセージを取得します。
  • データソースによるフィルタリング — 特定のデータソースに検索を絞り込み、結果に含めたり除外したりします。
  • 合成を伴うエージェント型検索 — AgenticQueryKnowledgeBases を使用して、複数の管理されたナレッジベースにわたる引用付き回答を得るための多段階検索プランを依頼します。
  • ACL 保護コンテンツへのアクセス — user_id を渡して、SharePoint や Confluence などの ACL 対応データソースからコンテンツを取得します。
  • 結果の再ランク付け — cohere.rerank-v3-5:0 などの Amazon Bedrock モデルを使用して再ランク付けを有効にし、検索の関連性を向上させます。

ドキュメント

Amazon Bedrock Knowledge Base Retrieval MCP サーバー

Amazon Bedrock Knowledge Bases にアクセスするためのMCPサーバー

機能

ナレッジベースとそのデータソースの検出

  • 利用可能なすべてのナレッジベースを検索・探索
  • 名前またはタグでナレッジベースを検索
  • 各ナレッジベースに関連付けられたデータソースを一覧表示

自然言語によるナレッジベースのクエリ

  • 会話形式のクエリを使用して情報を取得
  • ナレッジベースから関連するパッセージを取得
  • すべての結果の引用情報にアクセス

データソースによる結果のフィルタリング

  • 特定のデータソースにクエリを集中
  • 特定のデータソースを含めるまたは除外
  • 特定のデータソースからの結果を優先

マネージドナレッジベースでのエージェント型検索

  • 多段階の検索戦略を計画し、引用付きの回答を合成
  • 1回の呼び出しで複数のナレッジベースを検索
  • エージェントの計画および検索ステップのオプションの簡潔なトレース
  • マネージドナレッジベースのみ対応。他のタイプは明確なメッセージとともに拒否されます

ACL保護されたコンテンツへのアクセス

  • user_id を渡すと、ACL対応データソース(SharePoint、OneDrive、ドキュメント単位のACLを持つConfluence)からコンテンツを取得
  • これがないと、そのコンテンツにはアクセスできず、エージェント型検索の全文展開ステップが「ACL対応データソースにはUserContextが必要です」というエラーで失敗
  • 結果は、そのユーザーが閲覧を許可されているものにフィルタリングされます

マネージドおよびベクター型ナレッジベースの両方をサポート

  • ベクター型ナレッジベース(type: VECTOR)とマネージドナレッジベース(type: MANAGED)の両方で動作
  • ナレッジベースのタイプは自動的に検出され、正しい Retrieve 設定が送信されます(vectorSearchConfiguration または managedSearchConfiguration)
  • データソースのフィルタリングは、ナレッジベースのタイプに適したメタデータキーを使用
  • ListKnowledgeBases ツールは、各ナレッジベースの type を報告

結果の再ランキング

  • 検索結果の関連性を向上
  • Amazon Bedrockの再ランキング機能を使用
  • クエリへの関連性で結果を並べ替え

前提条件

インストール要件

  1. Astral または GitHub README から uv をインストール
  2. uv python install 3.10 を使用してPythonをインストール

AWS要件

  1. AWS CLI設定: Amazon BedrockおよびKnowledge Basesにアクセスできる認証情報とAWS_PROFILEを使用してAWS CLIが設定されている必要があります
  2. Amazon Bedrock Knowledge Base: タグキー mcp-multirag-kb の値が true であるAmazon Bedrock Knowledge Baseが少なくとも1つ必要です
  3. IAM権限: IAMロール/ユーザーに以下の適切な権限が必要です:
    • ナレッジベースの一覧表示と説明
    • データソースへのアクセス
    • ナレッジベースのクエリ

再ランキングの要件

再ランキング機能を使用する場合、Bedrock Knowledge Baseに追加の権限が必要です:

  1. IAMロールに bedrock:Rerank と bedrock:InvokeModel の両方のアクションの権限が必要です
  2. Amazon Bedrock Knowledge Basesサービスロールにもこれらの権限が必要です
  3. 再ランキングの利用可能性はモデルごとに異なります:amazon.rerank-v1:0 は us-east-1 では提供されておらず、cohere.rerank-v3-5:0 は提供されています。サーバーは(リージョン、モデル)のペアを検証し、明確なメッセージとともに迅速に失敗します。サポートされているリージョンの最新リストについては、公式ドキュメントを参照してください。
  4. 指定されたリージョンで利用可能な再ランキングモデルのモデルアクセスを有効にします。

エージェント型検索の要件

AgenticQueryKnowledgeBases ツールは AgenticRetrieveStream を呼び出します。これはマネージドナレッジベースのみ(type: MANAGED)でサポートされています。検索戦略を計画し、generate_response=false を渡さない限り、引用付きの回答を書くためにファウンデーションモデルを呼び出します。

  1. IAMロールには、上記の権限に加えて、ナレッジベースに対する bedrock:AgenticRetrieveStream が必要です
  2. ファウンデーションモデルを呼び出すため、QueryKnowledgeBases よりも1回の呼び出しあたりのコストが大幅に高くなります。合成なしの検索には generate_response=false を渡してください
  3. RetrieveAndGenerate はマネージドナレッジベースではサポートされていないため、generate_response=true を使用したエージェント型検索が、生成された回答を得る方法です

再ランキングの制御

再ランキングは、BEDROCK_KB_RERANKING_ENABLED 環境変数を使用してグローバルに有効または無効にできます:

  • false に設定(デフォルト):明示的に有効にしない限り、すべてのクエリで再ランキングを無効化
  • true に設定:明示的に無効にしない限り、すべてのクエリで再ランキングを有効化

環境変数はさまざまな形式を受け入れます:

  • 有効化の場合:'true'、'1'、'yes'、または'on'(大文字小文字を区別しない)
  • 無効化の場合:その他の値または未設定(デフォルトの動作)

この設定はグローバルなデフォルトを提供し、個々のAPI呼び出しで reranking パラメータを明示的に設定することで上書きできます。

ナレッジベースの設定に関する詳細な手順については、以下を参照してください:

インストール

KiroCursorVS Code
Add to KiroInstall MCP ServerInstall on VS Code

MCPクライアント設定でMCPサーバーを設定します(例:Kiroの場合は ~/.kiro/settings/mcp.json を編集):

{
  "mcpServers": {
    "awslabs.bedrock-kb-retrieval-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.bedrock-kb-retrieval-mcp-server@latest"],
      "env": {
        "AWS_PROFILE": "your-profile-name",
        "AWS_REGION": "us-east-1",
        "FASTMCP_LOG_LEVEL": "ERROR",
        "KB_INCLUSION_TAG_KEY": "optional-tag-key-to-filter-kbs",
        "BEDROCK_KB_RERANKING_ENABLED": "false"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Windowsでのインストール

Windowsユーザーの場合、MCPサーバー設定の形式が少し異なります:

{
  "mcpServers": {
    "awslabs.bedrock-kb-retrieval-mcp-server": {
      "disabled": false,
      "timeout": 60,
      "type": "stdio",
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--from",
        "awslabs.bedrock-kb-retrieval-mcp-server@latest",
        "awslabs.bedrock-kb-retrieval-mcp-server.exe"
      ],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR",
        "AWS_PROFILE": "your-aws-profile",
        "AWS_REGION": "us-east-1"
      }
    }
  }
}

または、docker build -t awslabs/bedrock-kb-retrieval-mcp-server . が成功した後のdocker:

# fictitious `.env` file with AWS temporary credentials
AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
  {
    "mcpServers": {
      "awslabs.bedrock-kb-retrieval-mcp-server": {
        "command": "docker",
        "args": [
          "run",
          "--rm",
          "--interactive",
          "--env",
          "FASTMCP_LOG_LEVEL=ERROR",
          "--env",
          "KB_INCLUSION_TAG_KEY=optional-tag-key-to-filter-kbs",
          "--env",
          "BEDROCK_KB_RERANKING_ENABLED=false",
          "--env",
          "AWS_REGION=us-east-1",
          "--env-file",
          "/full/path/to/file/above/.env",
          "awslabs/bedrock-kb-retrieval-mcp-server:latest"
        ],
        "env": {},
        "disabled": false,
        "autoApprove": []
      }
    }
  }

注:認証情報はホストから最新の状態に保つ必要があります

制限事項

  • IMAGE コンテンツタイプの結果はKBクエリ応答に含まれません。
  • reranking パラメータには追加の権限、Amazon Bedrockモデルアクセスが必要であり、特定のリージョンでのみ利用可能です。