s

sammcj

rag-systemscloud-platforms

312 查看 · 2026-07-07 更新

AWS 知识库检索 MCP 服务器

一个用于通过 Bedrock Agent Runtime 从 AWS 知识库检索信息的 MCP 服务器实现。

功能

  • RAG(Retrieval-Augmented Generation,检索增强生成):根据查询和知识库 ID 从 AWS 知识库中检索上下文。
  • 支持多个结果检索:可以选择检索自定义数量的结果。

工具

  • retrieve_from_aws_kb
    • 使用 AWS 知识库执行检索操作。
    • 输入:
      • query (字符串):检索的搜索查询。
      • knowledgeBaseId (字符串):AWS 知识库的 ID。
      • n (数字, 可选):要检索的结果数量(默认值: 3)。
    • 响应格式:
      • 响应现在返回两个独立的内容项:
        • 一个包含来自知识库的原始上下文的文本项。
        • 一个包含带有元数据(id、fileName、snippet 和 score)的结构化 RAG 源的 JSON 项。
      • 这种分离允许更灵活地处理结果。

配置

设置 AWS 凭证

您有两种配置 AWS 凭证的选项:

选项 1:IAM 访问密钥

  1. 从 AWS 管理控制台获取 AWS 访问密钥 ID、秘密访问密钥和地区。
  2. 确保这些凭证具有适当的权限以执行 Bedrock Agent Runtime 操作。
  3. 如下面的配置示例所示设置环境变量。
  4. 对于临时凭证,您还可以使用 AWS_SESSION_TOKEN 环境变量提供会话令牌。

选项 2:AWS SSO(单点登录)

服务器现在支持 AWS SSO 凭证:

  1. 使用您的 SSO 配置文件配置 AWS CLI:aws configure sso
  2. 在 MCP 服务器配置中仅设置 AWS_REGION 环境变量。
  3. 服务器将使用默认凭据提供程序链,其中包括 SSO 凭据。

可选:配置默认知识库 ID

您可以选择指定一个或多个默认使用的知识库 ID:

  1. 以 JSON 格式创建一个知识库 ID 数组。
  2. 将其设置为配置中的 AWS_KB_IDS 环境变量。
  3. 当配置了此选项时,工具中的 knowledgeBaseId 参数变为可选。

与 Claude Desktop 一起使用

在您的 claude_desktop_config.json 中添加以下内容:

使用 IAM 访问密钥的 Docker

json { "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"]" } } } }

使用 AWS SSO 的 Docker

json { "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

json { "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

json { "mcpServers": { "aws-kb-retrieval": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-aws-kb-retrieval" ], "env": { "AWS_ACCESS_KEY_ID": "请在此处输入您的访问密钥", "AWS_SECRET_ACCESS_KEY": "请在此处输入您的秘密访问密钥", "AWS_SESSION_TOKEN": "如果您使用SSO临时凭证,请在此处输入会话ID(可选)", "AWS_REGION": "请在此处输入您的AWS区域", "AWS_KB_IDS": "["kb-12345", "kb-67890"]" } } } }

本地仓库(从克隆/构建的仓库)

json { "mcpServers": { "aws-kb": { "command": "node", "args": [ "/path/to/mcp-aws-kb/dist/index.js" ], "env": { "AWS_ACCESS_KEY_ID": "请在此处输入您的访问密钥", "AWS_SECRET_ACCESS_KEY": "请在此处输入您的秘密访问密钥", "AWS_SESSION_TOKEN": "如果您使用SSO临时凭证,请在此处输入会话ID(可选)", "AWS_REGION": "请在此处输入您的AWS区域", "AWS_KB_IDS": "["kb-12345", "kb-67890"]" }, "disabled": false, "autoApprove": [ "retrieve_from_aws_kb" ], "timeout": 120 } } }

构建

Docker:

sh docker build -t mcp/aws-kb-retrieval -f src/aws-kb-retrieval-server/Dockerfile .

许可证

此MCP服务器根据MIT许可证发布。这意味着您可以在遵守MIT许可证条款和条件的前提下自由地使用、修改和分发该软件。更多详情,请参阅项目仓库中的LICENSE文件。

本README假设您的服务器包名为@modelcontextprotocol/server-aws-kb-retrieval。如果在您的设置中包名或安装细节不同,请相应调整。同时,请确保您的服务器脚本正确构建,并且所有依赖项都在您的package.json中被妥善管理。

服务配置

[{'mcpServers': {'aws-kb-retrieval': {'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'], 'command': 'docker', 'env': {'AWS_ACCESS_KEY_ID': 'YOUR_ACCESS_KEY_HERE', 'AWS_KB_IDS': '[kb-12345,kb-67890]', 'AWS_REGION': 'YOUR_AWS_REGION_HERE', 'AWS_SECRET_ACCESS_KEY': 'YOUR_SECRET_ACCESS_KEY_HERE', 'AWS_SESSION_TOKEN': 'YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE'}}}}, {'mcpServers': {'aws-kb-retrieval': {'args': ['run', '-i', '--rm', '-e', 'AWS_REGION', '-e', 'AWS_KB_IDS', '-v', '${HOME}/.aws:/root/.aws', 'mcp/aws-kb-retrieval-server'], 'command': 'docker', 'env': {'AWS_ACCESS_KEY_ID': 'YOUR_ACCESS_KEY_HERE', 'AWS_KB_IDS': '[kb-12345,kb-67890]', 'AWS_REGION': 'YOUR_AWS_REGION_HERE', 'AWS_SECRET_ACCESS_KEY': 'YOUR_SECRET_ACCESS_KEY_HERE', 'AWS_SESSION_TOKEN': 'YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE'}}}}, {'mcpServers': {'aws-kb-retrieval': {'args': ['-y', '@modelcontextprotocol/server-aws-kb-retrieval'], 'command': 'npx', 'env': {'AWS_ACCESS_KEY_ID': 'YOUR_ACCESS_KEY_HERE', 'AWS_KB_IDS': '[kb-12345,kb-67890]', 'AWS_REGION': 'YOUR_AWS_REGION_HERE', 'AWS_SECRET_ACCESS_KEY': 'YOUR_SECRET_ACCESS_KEY_HERE', 'AWS_SESSION_TOKEN': 'YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE'}}}}, {'mcpServers': {'aws-kb-retrieval': {'args': ['-y', '@modelcontextprotocol/server-aws-kb-retrieval'], 'command': 'npx', 'env': {'AWS_ACCESS_KEY_ID': 'YOUR_ACCESS_KEY_HERE', 'AWS_KB_IDS': '[kb-12345,kb-67890]', 'AWS_REGION': 'YOUR_AWS_REGION_HERE', 'AWS_SECRET_ACCESS_KEY': 'YOUR_SECRET_ACCESS_KEY_HERE', 'AWS_SESSION_TOKEN': 'YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE'}}}}, {'mcpServers': {'aws-kb': {'args': ['/path/to/mcp-aws-kb/dist/index.js'], 'autoApprove': ['retrieve_from_aws_kb'], 'command': 'node', 'disabled': False, 'env': {'AWS_ACCESS_KEY_ID': 'YOUR_ACCESS_KEY_HERE', 'AWS_KB_IDS': '[kb-12345,kb-67890]', 'AWS_REGION': 'YOUR_AWS_REGION_HERE', 'AWS_SECRET_ACCESS_KEY': 'YOUR_SECRET_ACCESS_KEY_HERE', 'AWS_SESSION_TOKEN': 'YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE'}, 'timeout': 120}}}]

来源