AWS Bedrock KB Retrieval

官方

使用自然语言查询Amazon Bedrock知识库,从您的数据源中检索相关信息。

你可以用 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 内容类型的结果不包含在知识库查询响应中。
  • reranking 参数需要额外的权限、Amazon Bedrock 模型访问权限,并且仅在特定区域可用。