AWS 知识库检索 MCP 服务器
使用 Bedrock Agent Runtime 从 AWS 知识库检索信息的 MCP 服务器实现。
特征
- RAG(检索增强生成) :根据查询和知识库 ID 从 AWS 知识库检索上下文。
- 支持多个结果检索:可选择检索自定义数量的结果。
工具
- 从 aws_kb 检索
- 使用 AWS 知识库执行检索操作。
- 输入:
query
(字符串):用于检索的搜索查询。knowledgeBaseId
(字符串):AWS 知识库的 ID。n
(数字,可选):要检索的结果数(默认值:3)。
- 响应格式:
- 响应现在返回两个单独的内容项:
- 包含来自知识库的原始上下文的文本项。
- 包含具有元数据(id、fileName、snippet 和 score)的结构化 RAG 源的 JSON 项。
- 这种分离使得结果的处理更加灵活。
配置
设置AWS凭证
您有两种配置 AWS 凭证的选项:
选项 1:IAM 访问密钥
- 从 AWS 管理控制台获取 AWS 访问密钥 ID、秘密访问密钥和区域。
- 确保这些凭据具有 Bedrock Agent Runtime 操作的适当权限。
- 按照下面的配置示例所示设置环境变量。
- 对于临时凭证,您还可以使用
AWS_SESSION_TOKEN
环境变量提供会话令牌。
选项 2:AWS SSO(单点登录)
该服务器现在支持 AWS SSO 凭证:
- 使用您的 SSO 配置文件配置 AWS CLI:
aws configure sso
- 仅设置 MCP 服务器配置中的 AWS_REGION 环境变量。
- 服务器将使用默认凭证提供程序链,其中包括 SSO 凭证。
可选:配置默认知识库 ID
您可以选择指定一个或多个默认使用的知识库 ID:
- 创建 JSON 格式的知识库 ID 数组。
- 在您的配置中将其设置为 AWS_KB_IDS 环境变量。
- 配置完成后,
knowledgeBaseId
参数在工具中变为可选。
与 Claude Desktop 一起使用
将其添加到您的claude_desktop_config.json
中:
带有 IAM 访问密钥的 Docker
{
"mcpServers": {
"aws-kb-retrieval": {
"command": "docker",
"args": [ "run", "-i", "--rm", "-e", "AWS_ACCESS_KEY_ID", "-e", "AWS_SECRET_ACCESS_KEY", "-e", "AWS_REGION", "-e", "AWS_KB_IDS", "mcp/aws-kb-retrieval-server" ],
"env": {
"AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_HERE",
"AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY_HERE",
"AWS_SESSION_TOKEN": "YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE",
"AWS_REGION": "YOUR_AWS_REGION_HERE",
"AWS_KB_IDS": "[\"kb-12345\", \"kb-67890\"]"
}
}
}
}
Docker 与 AWS SSO
{
"mcpServers": {
"aws-kb-retrieval": {
"command": "docker",
"args": [ "run", "-i", "--rm", "-e", "AWS_REGION", "-e", "AWS_KB_IDS", "-v", "${HOME}/.aws:/root/.aws", "mcp/aws-kb-retrieval-server" ],
"env": {
"AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_HERE",
"AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY_HERE",
"AWS_SESSION_TOKEN": "YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE",
"AWS_REGION": "YOUR_AWS_REGION_HERE",
"AWS_KB_IDS": "[\"kb-12345\", \"kb-67890\"]"
}
}
}
}
带有 IAM 访问密钥的 NPX
{
"mcpServers": {
"aws-kb-retrieval": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-aws-kb-retrieval"
],
"env": {
"AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_HERE",
"AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY_HERE",
"AWS_SESSION_TOKEN": "YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE",
"AWS_REGION": "YOUR_AWS_REGION_HERE",
"AWS_KB_IDS": "[\"kb-12345\", \"kb-67890\"]"
}
}
}
}
NPX 与 AWS SSO
{
"mcpServers": {
"aws-kb-retrieval": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-aws-kb-retrieval"
],
"env": {
"AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_HERE",
"AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY_HERE",
"AWS_SESSION_TOKEN": "YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE",
"AWS_REGION": "YOUR_AWS_REGION_HERE",
"AWS_KB_IDS": "[\"kb-12345\", \"kb-67890\"]"
}
}
}
}
本地存储库(来自克隆/构建的存储库)
{
"mcpServers": {
"aws-kb": {
"command": "node",
"args": [
"/path/to/mcp-aws-kb/dist/index.js"
],
"env": {
"AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_HERE",
"AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY_HERE",
"AWS_SESSION_TOKEN": "YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE",
"AWS_REGION": "YOUR_AWS_REGION_HERE",
"AWS_KB_IDS": "[\"kb-12345\", \"kb-67890\"]"
},
"disabled": false,
"autoApprove": [
"retrieve_from_aws_kb"
],
"timeout": 120
}
}
}
建筑
Docker:
docker build -t mcp/aws-kb-retrieval -f src/aws-kb-retrieval-server/Dockerfile .
执照
此 MCP 服务器采用 MIT 许可证。这意味着您可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。更多详情,请参阅项目仓库中的 LICENSE 文件。
本自述文件假定您的服务器软件包名为@modelcontextprotocol/server-aws-kb-retrieval
。如果您的设置与软件包名称和安装详细信息不同,请调整它们。此外,请确保您的服务器脚本已正确构建,并且所有依赖项均已在package.json
中得到妥善管理。