使用说明
AWS基岩知识库MCP服务器
对以下项目及其各自的作者提供的基础工作表示敬意: https://github.com/daohoangson/aws-knowledge-base-mcp-server
https://github.com/modelcontextprotocol/servers-archived/tree/main/src/aws-kb-retrieval-server
概述
此解决方案使用与模型上下文协议(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": { "<name-your-mcp-client>": { "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": "<knowledge-base-id>", "AWS_ACCESS_KEY_ID": "<aws-access-key-id>", "AWS_SECRET_ACCESS_KEY": "<aws-secret-key>", "AWS_SESSION_TOKEN": "<aws-session-token>" } } }, "inputs": [] }您可以从SST部署输出中获取AWS_BEDROCK_KNOWLEDGE_BASE_ID:
如果你想连接到远程部署的lambda MCP服务器,你可以按如下方式添加它:
{ "servers": { "<name-your-mcp-client>": { "url": "<mcpServerUrl>", "type": "http" } }, "inputs": [] }
使用VS代码在本地调试MCP服务器
本地和远程(lambda)MCP服务器都可以使用VS Code进行调试。对于具有的本地服务器 debug 属性设置为“node”,您可以将鼠标悬停在中的服务器详细信息上 mcp.json 选择“debug”选项:
然后,这是一个添加断点并正常从GitHub副本(或其他客户端)调用MCP请求的情况。
已知限制
- 尽管使用了流式传输,但响应实际上并没有被流式传输回客户端,而是被缓冲并在最后作为单个响应发送。
后续步骤
- 使用OAuth 2.1为MCP服务器提供身份验证