知识库检索服务

一个用于从AWS知识库中检索信息的MCP服务器实现,支持检索增强生成(RAG)和多结果检索。

  • by sammcj
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 sammcj/mcp-aws-kb

使用说明

AWS知识库检索MCP服务器

使用Bedrock Agent Runtime从AWS知识库检索信息的MCP服务器实现。

特性

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

工具

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

配置

设置AWS凭据

您有两个配置AWS凭据的选项:

选项1:IAM访问密钥

  1. 从AWS管理控制台获取AWS访问密钥ID、秘密访问密钥和区域。
  2. 确保这些凭据具有Bedrock Agent运行时操作的适当权限。
  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

{
  "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文件。

此README假定您的服务器包名为 @modelcontextprotocol/server-aws-kb-retrieval。如果软件包名称和安装详细信息与您的设置不同,请进行调整。此外,请确保您的服务器脚本已正确构建,并且所有依赖关系都在您的 package.json.