本项目基于亚马逊Lambda和Streamable HTTP协议,实现了一个Github MCP Server。它展示了如何将官方TypeScript MCP Server转换为支持Streamable HTTP协议,并通过亚马逊Lambda进行部署,为相关开发提供了实用的参考。
此项目需要设置GITHUB_PERSONAL_ACCESS_TOKEN,该令牌已存储在亚马逊Lambda环境变量中。⚠️ 请勿将serverless.yml文件提交到公开的GitHub仓库。
# 克隆仓库
git clone https://gitlab.aws.dev/wsuam/sample-serverless-mcp-server.git
cd sample-serverless-mcp-server/src/github/
# 安装依赖项
npm install
npm install -g osls
# 将示例配置文件复制并重命名
cp serverless.example.yml serverless.yml
# 编辑serverless.yml文件,设置GITHUB_PERSONAL_ACCESS_TOKEN为<您的GitHub个人访问令牌>
# 测试本地运行
npm sls offline
# 部署到亚马逊Lambda
npm sls deploy
确保满足以下先决条件:
按照“快速开始”部分的部署步骤操作,即可将Github MCP Server部署到亚马逊Lambda。
在本地测试运行:
npm sls offline
将项目部署到亚马逊Lambda:
npm sls deploy
该项目采用以下架构:
npm sls offline。欢迎提交拉取请求。在提交之前,请确保:
该实现利用了MCP v2025.03.26引入的新功能,包括基于HTTP分块传输编码的流传输、动态上下文优先级控制,以及与现有HTTP基础设施的无缝集成。通过这些功能,项目实现了对Streamable HTTP MCP协议的支持,同时基于亚马逊Lambda实现了弹性部署和成本性能的优化平衡。
此库采用MIT - 0许可证,详见LICENSE文件。
该项目正在积极开发中。欢迎提出问题和建议!