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 重排序能力
- 按与查询的相关性对结果进行排序
前提条件
安装要求
- 从 Astral 或 GitHub README 安装
uv - 使用
uv python install 3.10安装 Python
AWS 要求
- AWS CLI 配置:您必须配置 AWS CLI,包含凭证和有权访问 Amazon Bedrock 和 Knowledge Bases 的 AWS_PROFILE
- Amazon Bedrock Knowledge Base:您必须至少有一个 Amazon Bedrock Knowledge Base,其标签键为
mcp-multirag-kb,值为true - IAM 权限:您的 IAM 角色/用户必须具有适当的权限以:
- 列出和描述知识库
- 访问数据源
- 查询知识库
重排序要求
如果您打算使用重排序功能,您的 Bedrock Knowledge Base 需要额外的权限:
- 您的 IAM 角色必须同时具有
bedrock:Rerank和bedrock:InvokeModel操作的权限 - Amazon Bedrock Knowledge Bases 服务角色也必须具有这些权限
- 重排序的可用性因模型而异:
amazon.rerank-v1:0在us-east-1中不可用,而cohere.rerank-v3-5:0可用。服务器会验证(区域,模型)组合,并在出错时快速失败并给出明确消息。请参阅官方文档以获取最新的支持区域列表。 - 在指定区域中为可用的重排序模型启用模型访问权限。
智能体检索要求
AgenticQueryKnowledgeBases 工具调用 AgenticRetrieveStream,该功能仅支持托管知识库(type: MANAGED)。它会规划检索策略,除非您传入 generate_response=false,否则会调用基础模型来生成带引用的答案。
- 除了上述列出的权限外,您的 IAM 角色还需要对知识库具有
bedrock:AgenticRetrieveStream权限 - 由于它会调用基础模型,因此每次调用的成本远高于
QueryKnowledgeBases。传入generate_response=false可仅进行检索而不进行综合生成 RetrieveAndGenerate不支持托管知识库,因此使用generate_response=true的智能体检索是从托管知识库获取生成答案的方式
控制重排序
可以使用 BEDROCK_KB_RERANKING_ENABLED 环境变量全局启用或禁用重排序:
- 设置为
false(默认):禁用所有查询的重排序,除非显式启用 - 设置为
true:启用所有查询的重排序,除非显式禁用
环境变量接受各种格式:
- 启用:'true'、'1'、'yes' 或 'on'(不区分大小写)
- 禁用:任何其他值或未设置(默认行为)
此设置提供全局默认值,而单个 API 调用仍可通过显式设置 reranking 参数来覆盖它。
有关设置知识库的详细说明,请参阅:
安装
| Kiro | Cursor | 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 模型访问权限,并且仅在特定区域可用。