MCP Lambda SAM
使用 AWS Lambda 和 SAM 实现模型上下文协议 (MCP)。
概述
该项目提供了模型上下文协议的无服务器实现,具有两个不同的接口:
系统配置(管理):
MCP 工具、资源和提示的注册
IAM权限管理
基础设施设置和配置
系统使用情况(客户端):
建立 SSE 连接
发送命令
接收流式响应
建筑学
美人鱼图
您可以使用以下 Mermaid 语法来可视化系统:
MCP Lambda在启动和处理请求时从注册表读取注册信息。
它使用会话表来保存会话状态。
它使用注册表中存储的 ARN 动态调用已注册的 Lambda 工具。
系统配置指南(管理员)
本节适用于需要配置和管理 MCP 服务器的系统管理员。
部署
该命令将以交互方式提示管理配置:
堆栈名称(用于多个实例)
AWS 区域
VPC 配置(可选)
权限概述
要访问 MCP 端点,用户和客户端必须具有 IAM 权限才能调用相关的函数 URL。
管理员:必须被允许调用
mcp-registration
函数 URL客户端:必须允许调用
mcp
函数 URL
您可以使用 IAM 策略或aws lambda add-permission
授予访问权限(见下文)。
通过 AWS CLI 分配权限
授予调用注册功能 URL 的权限:
要授予调用MCP 函数 URL (SSE 和消息)的权限:
将<registration-function-name>
和<mcp-function-name>
替换为实际的 Lambda 函数名称。
注册 API
使用这些端点来管理 MCP 工具、资源和提示:
注册新工具
更新注册
删除注册
列出注册
所需的 IAM 权限
对于管理员
管理员需要以下权限来管理注册:
系统使用指南(客户端)
本节适用于想要使用 MCP 服务器的客户。
所需的 IAM 权限
客户端需要以下权限才能使用 MCP 服务器:
连接到服务器
建立 SSE 连接:
SSE 的 cURL 示例
第一个事件将包含一个sessionId
。发送消息时请使用它。
发送命令:
错误处理
常见客户端错误
401
:AWS 凭证无效/缺失403
:权限不足404
:无效的会话 ID429
:超出速率限制
故障排除
连接问题:
验证 AWS 凭证
检查 IAM 权限
确保网络连接
命令执行错误:
验证会话 ID 是否处于活动状态
检查命令格式是否与工具注册相符
确保参数与架构匹配
要求
已安装并配置 AWS CLI
已安装 AWS SAM CLI
Node.js 20.x 或更高版本
具有以下权限的 AWS 账户:
Lambda 函数
DynamoDB 表
IAM 角色
SQS 队列
AWS SAM CLI 设置
要使用 AWS SAM CLI 在本地部署此应用程序或将其部署到 AWS:
安装 AWS SAM CLI: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html
确保它在你的 PATH 中可用:
构建并部署应用程序:
按照提示配置堆栈名称、区域、功能和参数覆盖。
您可以重新运行sam deploy
而不使用--guided
来使用已保存的配置。
安装
您可以通过四种方式安装和部署此应用程序:
1.使用 AWS 无服务器应用程序存储库 (SAR)
部署 MCP 服务器最简单的方法是通过 AWS 无服务器应用程序存储库 (SAR):
转至SAR 控制台
搜索 Mark Van Proctor 的mcp-lambda-sam
单击部署
设置参数:
StackIdentifier
:此 MCP 服务器实例的唯一 IDVpcEnabled
:如果在 VPC 中部署,则设置为true
VpcId
和SubnetIds
:仅当VpcEnabled
为true
时提供
按照提示进行部署
或者,您可以从 AWS CLI 部署:
2.使用 npx(CLI)
该命令将以交互方式提示管理配置:
堆栈名称(用于多个实例)
AWS 区域
VPC 配置(可选)
3. 通过 Install 进行编程使用
安装软件包:
安装该包后,您可以以编程方式使用它:
4. 本地开发与部署
安装软件包:
进行开发更改后,您可以手动部署它:
发展
发布到 SAR
如果您正在为此项目做出贡献并需要向 SAR 发布更新:
打包应用程序:
发布到 SAR:
将应用程序公开(一次性设置):
转到 AWS 控制台 > 无服务器应用程序存储库
选择应用程序
点击“共享”,并选择“公开”
应用以下共享策略:GXP25
执照
麻省理工学院
贡献
分叉存储库
创建你的功能分支
提交你的更改
推送到分支
创建新的 Pull 请求
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
一个 Node.js 包,为支持 SSE 的 AWS Lambda 函数提供模型上下文协议服务器基础设施,使开发人员能够将 MCP 工具和提示实现为无服务器函数。
Related MCP Servers
- AsecurityAlicenseAqualityEnables AI models to interact with AWS Lambda functions via the MCP protocol, allowing access to private resources, real-time data, and custom computation in a secure environment.Last updated -2108MIT License
- AsecurityAlicenseAqualityA comprehensive Model Context Protocol server that provides advanced Node.js development tooling for automating project creation, component generation, package management, and documentation with AI-powered assistance.Last updated -75MIT License
- AsecurityAlicenseAqualityA Model Context Protocol server implementation that enables Claude to perform AWS operations on S3 and DynamoDB services through natural language commands.Last updated -23127MIT License
- -securityAlicense-qualityA Node.js package providing Model Context Protocol server infrastructure for AWS Lambda functions with streaming response capabilities through Server-Sent Events.Last updated -11212MIT License