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 -2106PythonMIT 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 -74JavaScriptMIT 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 -23123PythonMIT 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 -11211TypeScriptMIT License