知识库检索增强生成服务

该服务提供基于AWS Bedrock知识库和模型上下文协议(MCP)的检索增强生成(RAG)能力,可集成到VS Code和Claude桌面等MCP兼容的AI代理客户端中,为私有或专业知识库提供额外上下文支持。

  • by foyst
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 foyst/aws-knowledgebase-mcp-server

使用说明

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桌面,为额外的上下文提供私有或专业的知识库。

它由两部分组成:

  1. ./infra:设置基岩知识库、S3存储桶、IAM角色和OpenSearch无服务器资源的基础架构代码。这是使用Pulumi和SST部署的。
  2. ./mcp服务器:连接到基岩知识库并通过http作为mcp端点的mcp服务器代码。这可以通过STDIO在本地运行,也可以作为Lambda函数部署。

关键提及

  • 这使用https://github.com/CodeGenieApp/serverless-express,它无缝地将Express.js应用程序连接到AWS Lambda,从而可以轻松地将MCP服务器部署为无服务器功能。
  • 为了简单起见,服务器使用lambda函数URL公开,但在生产场景中,您可能希望使用API网关或应用程序负载均衡器来实现更好的安全性和管理。

如何使用

  1. 克隆此存储库。

  2. 使用安装infra和mcp服务器目录的依赖项 npm install.

  3. 配置您的AWS凭据以允许Pulumi和SST部署资源。

  4. 使用SST部署基础设施:

    npx sst deploy
    
  5. 将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服务器提供身份验证