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访问密钥
- 从AWS管理控制台获取AWS访问密钥ID、秘密访问密钥和区域。
- 确保这些凭据具有Bedrock Agent运行时操作的适当权限。
- 设置环境变量,如下面的配置示例所示。
- 对于临时凭据,您还可以使用
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文件。
此README假定您的服务器包名为 @modelcontextprotocol/server-aws-kb-retrieval。如果软件包名称和安装详细信息与您的设置不同,请进行调整。此外,请确保您的服务器脚本已正确构建,并且所有依赖关系都在您的 package.json.
