Back to MCP directory
publicPublicdnsLocal runtime

sample-serverless-mcp-server

该项目展示了如何将官方TypeScript MCP服务器改造为支持流式HTTP协议,并通过Amazon Lambda部署的实现方案。核心功能包括流式传输协议支持、基于Lambda的弹性部署以及成本优化,适用于需要与现有HTTP基础设施无缝集成的场景。

article

README

🚀 无服务器流式HTTP MCP服务器示例

本项目基于亚马逊Lambda和Streamable HTTP协议,实现了一个Github MCP Server。它展示了如何将官方TypeScript MCP Server转换为支持Streamable HTTP协议,并通过亚马逊Lambda进行部署,为相关开发提供了实用的参考。

🚀 快速开始

先决条件

  • Node.js 20+版本
  • 配置好的AWS CLI
  • OSS - Serverless CLI工具

部署Github MCP Server到亚马逊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

✨ 主要特性

  • 支持Streamable HTTP MCP协议,利用MCP v2025.03.26引入的新功能,如基于HTTP分块传输编码的流传输、动态上下文优先级控制,以及与现有HTTP基础设施的无缝集成。
  • 基于亚马逊Lambda的弹性部署,可根据实际需求灵活调整资源。
  • 实现了成本性能的优化平衡。

📦 安装指南

环境准备

确保满足以下先决条件:

  • Node.js 20+版本
  • 配置好的AWS CLI
  • OSS - Serverless CLI工具

部署步骤

按照“快速开始”部分的部署步骤操作,即可将Github MCP Server部署到亚马逊Lambda。

💻 使用示例

基础用法

在本地测试运行:

npm sls offline

高级用法

将项目部署到亚马逊Lambda:

npm sls deploy

📚 详细文档

Github MCP Server在亚马逊Lambda上的架构

架构

架构概述

该项目采用以下架构:

  • API Gateway:负责处理HTTP请求。
  • Lambda函数:执行MCP Server逻辑。
  • Streamable HTTP:实现流式响应。
  • DynamoDB和S3存储请求日志(此功能尚未完成)。

开发指南

  1. 配置AWS凭证。
  2. 运行npm sls offline
  3. 按照提示完成部署配置。

贡献说明

欢迎提交拉取请求。在提交之前,请确保:

  • 代码遵循项目规范。
  • 所有测试通过。
  • 文档已更新。

🔧 技术细节

该实现利用了MCP v2025.03.26引入的新功能,包括基于HTTP分块传输编码的流传输、动态上下文优先级控制,以及与现有HTTP基础设施的无缝集成。通过这些功能,项目实现了对Streamable HTTP MCP协议的支持,同时基于亚马逊Lambda实现了弹性部署和成本性能的优化平衡。

📄 许可证

此库采用MIT - 0许可证,详见LICENSE文件。

项目状态

该项目正在积极开发中。欢迎提出问题和建议!

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client