Back to MCP directory
publicPublicdnsLocal runtime

Lambda-MCP-Server

该项目展示了一个基于AWS Lambda的无服务器MCP(模型上下文协议)工具实现,包含Python服务端和TypeScript客户端,支持流式HTTP通信。服务端简化了MCP工具开发流程,内置会话状态管理,并演示了与Amazon Bedrock的集成。

article

README

🚀 Lambda MCP 服务器

Lambda MCP 服务器基于 AWS Lambda 实现,专门用于支持 MCP 协议。本项目提供了完整的技术文档,助您快速上手和部署。

🚀 快速开始

快速部署

克隆仓库

git clone <repository-url>

进入服务器目录

cd server-http-python-lambda

使用 SAM 部署

sam build
sam deploy --guided

⚠️ 重要提示

在部署过程中,系统会提示您输入 McpAuthToken。这是调用端点所需的授权令牌。此实现使用 AWS API Gateway 作者器,并将 McpAuthToken 作为环境变量传递。可以根据需要替换为其他生产实现。

客户端设置

进入客户端目录

cd client-http-typescript-docker

运行辅助脚本

run-client.sh

✨ 主要特性

  • 装饰器模式:在 server/app.py 中添加新工具时,使用装饰器模式,可自动处理类型验证、请求解析、响应格式化、错误处理和 MCP 文档生成。
  • 身份验证升级:版本 1.1.0 将 API Key 验证替换为通过 Authorization 标头传递的 Bearer Token 验证,并添加了 API Gateway 自定义作者器进行令牌验证。
  • 多环境支持:支持 AWS Lambda 环境,使用 DynamoDB 管理会话状态,还提供了带有 Amazon Bedrock 集成的 TypeScript HTTP 客户端。

💻 使用示例

添加新工具

server/app.py 中添加新的工具,使用装饰器模式:

@mcp_server.tool()
def my_new_tool(param1: str, param2: int) -> str:
    """您的工具描述。
    
    参数:
        param1:参数 1 的描述
        param2:参数 2 的描述
        
    返回值:
        描述返回值的说明
    """
    # 您的工具实现
    return f"Processed {param1} with value {param2}"

装饰器功能说明

⚠️ 重要提示

装饰器会自动处理以下内容:

  • 类型验证
  • 请求解析
  • 响应格式化
  • 错误处理
  • MCP 文档生成

🔧 技术细节

  • 在编写时,TypeScript MCP SDK 是少数(如果不是唯一)支持基于 HTTP 的 MCP 通信的实现。
  • 生产环境中,请考虑使用 AWS IAM 最佳实践进行身份验证和授权。

📄 许可证

本库 licensed under MIT-0 License,请参阅 LICENSE 文件。

📚 详细文档

版本更新

版本 1.1.0

  • 将 API Key 验证替换为通过 Authorization 标头传递的 Bearer Token 验证
  • 添加了 API Gateway 自定义作者器进行令牌验证
  • 更新客户端配置以使用 Bearer Tokens
  • 制作符合 MCP 标准的身份验证系统
  • 增加变更日志部分

版本 1.0.0

  • 初始版本发布
  • 基于 AWS Lambda 的基本 MCP 服务器实现
  • 使用 DynamoDB 管理会话状态
  • 示例工具实现
  • 带有 Amazon Bedrock 集成的 TypeScript HTTP 客户端

安全性

有关安全问题的通知,请参阅 CONTRIBUTING

有关 AWS 和 Amazon Bedrock 的安全性,请参考 AWS 安全文档Amazon Bedrock 安全最佳实践

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