awslabs/run-model-context-protocol-servers-with-aws-lambda

Run existing Model Context Protocol (MCP) stdio-based servers in AWS Lambda functions

解决的问题

大多数 Model Context Protocol (MCP) 服务器设计为以子进程形式在本地运行,通过标准输入/输出(stdio)进行通信。本项目提供了一种将这些基于 stdio 的服务器封装为 AWS Lambda 函数的方法,使其能够在云端托管并通过 HTTPS 访问,而不再局限于单台本地机器。

工作原理

该库管理 Lambda 函数内 MCP 服务器的生命周期。每次调用时,Lambda 函数会启动 MCP 服务器作为子进程,初始化它,转发传入的请求,返回响应,然后关闭该进程。支持四种连接方式:

  1. Amazon API Gateway:使用带有 OAuth 认证的 MCP Streamable HTTP 传输。
  2. Amazon Bedrock AgentCore Gateway:使用带有 OAuth 认证的 MCP Streamable HTTP 传输。
  3. Lambda Function URLs:使用通过 AWS IAM(SigV4)认证的自定义 Streamable HTTP 传输。
  4. Lambda Invoke API:使用直接通过 AWS IAM 调用 Lambda API 的自定义传输。

适用人群

希望将 MCP 服务器从本地环境迁移到分布式云架构,同时保持与 MCP 客户端(如 Cursor、Cline 或 Claude Desktop)兼容的开发者。

主要亮点

  • 多语言支持:提供 Python 和 TypeScript 的实现示例。
  • 云原生托管:使 MCP 服务器可作为无服务器函数运行。
  • 灵活的认证机制:支持 OAuth(通过 API Gateway/Bedrock)和 AWS IAM。
  • 详细配置指南:包含服务器打包、通过 AWS Secrets Manager 管理密钥、向子进程传递 AWS 凭证的指导。

相关

  • 项目
  • 项目
  • 项目
  • 项目