AWS基岩知识库MCP服务器
对以下项目及其各自的作者提供的基础工作表示敬意: https://github.com/daohoangson/aws-knowledge-base-mcp-server
https://github.com/modelcontextprotocol/servers-archived/tree/main/src/aws-kb-retrieval-server
概述
Screenshot of architecture diagram
此解决方案使用与模型上下文协议(MCP)集成的AWS基岩知识库提供检索增强生成(RAG)功能。这可以与各种兼容MCP的AI代理客户端集成,如VS Code和Claude桌面,为额外的上下文提供私有或专业的知识库。
它由两部分组成:
- ./infra:设置基岩知识库、S3存储桶、IAM角色和OpenSearch无服务器资源的基础架构代码。这是使用Pulumi和SST部署的。
- ./mcp服务器:连接到基岩知识库并通过http作为mcp端点的mcp服务器代码。这可以通过STDIO在本地运行,也可以作为Lambda函数部署。
关键提及
- 这使用https://github.com/CodeGenieApp/serverless-express,它无缝地将Express.js应用程序连接到AWS Lambda,从而可以轻松地将MCP服务器部署为无服务器功能。
- 为了简单起见,服务器使用lambda函数URL公开,但在生产场景中,您可能希望使用API网关或应用程序负载均衡器来实现更好的安全性和管理。
如何使用
- 克隆此存储库。
- 使用安装infra和mcp服务器目录的依赖项
npm install.
- 配置您的AWS凭据以允许Pulumi和SST部署资源。
- 使用SST部署基础设施:
npx sst deploy- 将MCP服务器部署为Lambda函数或在本地运行它:
要在本地运行它,您需要将其添加到所选代理客户端中的MCP配置中。例如,在VS Code中 .vscode/mcp.json 文件添加以下内容:
{
"servers": {
"": {
"type": "stdio",
"command": "node",
"cwd": "${workspaceFolder}",
"args": ["./mcp-server/dist/stdio.js"],
"dev": {
"watch": "mcp-server/**/*.ts",
"debug": { "type": "node" }
},
"env": {
"AWS_REGION": "us-east-1",
"AWS_BEDROCK_KNOWLEDGE_BASE_ID": "",
"AWS_ACCESS_KEY_ID": "",
"AWS_SECRET_ACCESS_KEY": "",
"AWS_SESSION_TOKEN": ""
}
}
},
"inputs": []
}您可以从SST部署输出中获取AWS_BEDROCK_KNOWLEDGE_BASE_ID:
Screenshot of SST deployment output
如果你想连接到远程部署的lambda MCP服务器,你可以按如下方式添加它:
{
"servers": {
"": {
"url": "",
"type": "http"
}
},
"inputs": []
}使用VS代码在本地调试MCP服务器
本地和远程(lambda)MCP服务器都可以使用VS Code进行调试。对于具有的本地服务器 debug 属性设置为“node”,您可以将鼠标悬停在中的服务器详细信息上 mcp.json 选择“debug”选项:
Screenshot showing debug option in VS Code MCP client configuration
然后,这是一个添加断点并正常从GitHub副本(或其他客户端)调用MCP请求的情况。
已知限制
- 尽管使用了流式传输,但响应实际上并没有被流式传输回客户端,而是被缓冲并在最后作为单个响应发送。
后续步骤
- 使用OAuth 2.1为MCP服务器提供身份验证
