使用说明

项目简介

本项目提供了一个适配器,用于将现有的、基于stdio通信的Model Context Protocol (MCP) 服务器封装并运行在AWS Lambda函数中。这使得开发者可以将本地运行的MCP服务器部署到Serverless环境,利用AWS Lambda的弹性伸缩能力,为LLM应用提供可扩展的上下文服务。

主要功能点

  • Stdio MCP服务器适配: 能够将基于标准输入输出流 (stdio) 的MCP服务器适配到AWS Lambda环境。
  • Lambda函数部署: 允许将适配后的MCP服务器作为AWS Lambda函数进行部署和管理。
  • 自定义客户端传输: 提供自定义的MCP客户端传输层,用于通过Lambda函数调用与云端MCP服务器通信。
  • 示例代码: 包含Python和TypeScript的示例代码,展示如何部署和使用Lambda化的MCP服务器。
  • 支持无状态服务器: 适配器适用于无状态的MCP服务器,例如时间服务器或Fetch服务器。

安装步骤

  1. 环境准备: 确保已安装Node.js, npm, Python, pip, AWS CLI 和 CDK CLI。
  2. 克隆仓库: 'git clone https://github.com/awslabs/run-model-context-protocol-servers-with-aws-lambda'
  3. 安装依赖: 根据需要,进入 'examples/servers/time' 或 'examples/servers/weather-alerts' 目录,运行 'npm install' 或 'pip install -r requirements.txt' 安装项目依赖。
  4. 部署Lambda函数: 使用AWS CDK部署示例Lambda函数。例如,在 'examples/servers/time' 目录下,运行 'cdk deploy' (需要配置AWS 凭证和账户信息)。 具体部署步骤请参考仓库中的 'DEVELOP.md' 开发指南。

服务器配置

MCP客户端需要配置连接Lambda函数形式的MCP服务器的相关信息。以下是一个客户端配置示例 (JSON 格式),用于指定连接名为 "time-server" 的 MCP 服务器,该服务器以名为 "mcp-server-time" 的Lambda函数形式运行在 'us-east-2' 区域:

{
  "lambdaFunctionServers": {
    "time-server": {
      "functionName": "mcp-server-time",
      "region": "us-east-2"
    }
  }
}
  • 'lambdaFunctionServers': 定义 Lambda 函数形式的 MCP 服务器配置。
  • 'time-server': 服务器名称,客户端用于引用该服务器。
  • 'functionName': AWS Lambda 函数的名称,MCP 客户端通过调用此函数与 MCP 服务器通信。
  • 'region': Lambda 函数所在的 AWS 区域。

基本使用方法

  1. 部署MCP服务器: 按照仓库 'DEVELOP.md' 指南,将示例或自定义的stdio MCP服务器部署为AWS Lambda函数。
  2. 配置客户端: 在MCP客户端应用中,使用 'LambdaFunctionClientTransport' 并配置 Lambda 函数名称和区域等信息,建立与Lambda MCP服务器的连接。
  3. 与LLM集成: 将配置好的MCP客户端集成到LLM应用中,即可利用部署在AWS Lambda上的MCP服务器提供的上下文信息和工具能力。
  4. 参考示例: 仓库中的 'examples/chatbots' 目录提供了Python和TypeScript的聊天机器人示例,展示了如何配置和使用 LambdaFunctionClientTransport 连接 Lambda MCP 服务器。

信息

分类

AI与计算