AWS Bedrock KB Retrieval

官方

使用自然語言查詢 Amazon Bedrock Knowledge Bases,從您的資料來源中檢索相關資訊。

你可以用 AWS Bedrock KB Retrieval MCP 做什麼?

  • 探索知識庫 — 透過 ListKnowledgeBases 要求列出所有可用的 Bedrock 知識庫及其資料來源。
  • 以自然語言查詢 — 提出對話式問題,從您的知識庫中檢索帶有引用的相關段落。
  • 依資料來源篩選 — 將檢索聚焦於特定資料來源,包括從結果中包含或排除它們。
  • 具代理性的檢索與綜合 — 使用 AgenticQueryKnowledgeBases 要求跨多個受管知識庫執行多步驟檢索計畫,並提供附引用的答案。
  • 存取受 ACL 保護的內容 — 傳遞 user_id 以從 SharePoint 或 Confluence 等具 ACL 感知能力的資料來源檢索內容。
  • 重新排序結果 — 透過啟用 Amazon Bedrock 模型(如 cohere.rerank-v3-5:0)的重新排序功能,提升檢索相關性。

文件

Amazon Bedrock Knowledge Base Retrieval MCP 伺服器

用於存取 Amazon Bedrock Knowledge Bases 的 MCP 伺服器

功能

探索知識庫及其資料來源

  • 尋找並探索所有可用的知識庫
  • 依名稱或標籤搜尋知識庫
  • 列出與每個知識庫關聯的資料來源

以自然語言查詢知識庫

  • 使用對話式查詢擷取資訊
  • 從知識庫取得相關段落
  • 存取所有結果的引用資訊

依資料來源篩選結果

  • 將查詢聚焦於特定資料來源
  • 包含或排除特定資料來源
  • 優先顯示來自特定資料來源的結果

受管知識庫上的代理式擷取

  • 規劃多步驟擷取策略並綜合出具引用的答案
  • 在一次呼叫中搜尋多個知識庫
  • 可選的代理規劃與擷取步驟精簡追蹤
  • 僅限受管知識庫;此工具會以明確訊息拒絕其他類型

存取受 ACL 保護的內容

  • 傳遞 user_id 以從具 ACL 感知能力的資料來源(SharePoint、OneDrive、具逐文件 ACL 的 Confluence)擷取內容
  • 若未提供,該內容將無法存取,且代理式擷取的全文擴充步驟會失敗並顯示「UserContext is required for ACL-aware data sources」
  • 結果會篩選為該使用者獲授權檢視的內容

同時支援受管與向量知識庫

  • 適用於向量知識庫(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 設定:您必須設定 AWS CLI,包含憑證及可存取 Amazon Bedrock 和 Knowledge Bases 的 AWS_PROFILE
  2. Amazon Bedrock Knowledge Base:您必須至少有一個 Amazon Bedrock Knowledge Base,其標籤鍵為 mcp-multirag-kb,值為 true
  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。傳遞 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 模型存取,且僅在特定區域中可用。