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 服务器作为子进程,初始化它,转发传入的请求,返回响应,然后关闭该进程。支持四种连接方式:
- Amazon API Gateway:使用带有 OAuth 认证的 MCP Streamable HTTP 传输。
- Amazon Bedrock AgentCore Gateway:使用带有 OAuth 认证的 MCP Streamable HTTP 传输。
- Lambda Function URLs:使用通过 AWS IAM(SigV4)认证的自定义 Streamable HTTP 传输。
- 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 凭证的指导。
相关
- 项目
- 项目
- 项目
- 项目