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.
Integrations
Adapts the MCP TypeScript SDK to work with AWS Lambda functions, supporting Server-Sent Events through Lambda response streaming and function URLs
Provides MCP server infrastructure specifically designed for Node.js runtime in AWS Lambda, with official support for response streaming
Offers full TypeScript support for implementing MCP servers with type definitions and interfaces
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 中可用:Copy
- 构建并部署应用程序:Copy
- 按照提示配置堆栈名称、区域、功能和参数覆盖。
您可以重新运行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
一个 Node.js 包,为支持 SSE 的 AWS Lambda 函数提供模型上下文协议服务器基础设施,使开发人员能够将 MCP 工具和提示实现为无服务器函数。