Token导航 LogoToken导航TokenDH.com
MCP Lambda Server logo
开发工具stdio官方级别未说明来源级核验

MCP Lambda Server

MCP Server

@markvp/mcp-lambda-sam

An AWS Serverless Application Model that operates as an MCP server via serverless AWS resources

工具数

0

提示词数

0

GitHub Stars

12

资源数

0
TypeScript开发工具命令行工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

markvp

提供方

markvp

最后核验

2026/5/18 02:53

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @markvp/mcp-lambda-sam deploy

详细介绍

MCP Lambda SAM

使用AWS Lambda和SAM实现模型上下文协议(MCP)。

概述

该项目提供了模型上下文协议的无服务器实现,具有两个不同的接口:

  1. 系统配置 (行政):

- 注册MCP工具、资源和提示 - IAM权限管理 - 基础设施设置和配置

  1. 系统使用 (客户):

- 建立SSE连接 - 发送命令 - 接收流媒体响应

建筑

美人鱼图

您可以使用Mermaid语法来可视化系统:

graph TD
  Client --> MCP[/"MCP Lambda\n(/sse & /message)"/]
  MCP -->|read/write| SessionTable[(Session Table)]
  MCP -->|query| RegistrationTable[(Registration Table)]
  MCP -->|invoke| RegisteredLambda["Registered Lambda Tool"]

  Admin[Administrator] --> RegistrationLambda[/"Registration Lambda\n(/register)"/]
  RegistrationLambda -->|write| RegistrationTable
  • MCP Lambda 在启动和处理请求时从注册表中读取注册信息。
  • 它使用会话表来持久化会话状态。
  • 调用已注册的Lambda工具 动态地使用存储在注册表中的ARN。

系统配置指南(管理员)

本节面向需要配置和管理MCP服务器的系统管理员。

部署

npx @markvp/mcp-lambda-sam deploy

该命令将以交互方式提示进行管理配置:

  • 堆栈名称(适用于多个实例)
  • AWS区域
  • VPC配置(可选)

权限概述

要访问MCP端点,用户和客户端必须具有IAM权限才能调用相关功能URL。

  • 管理员:必须允许调用 mcp-registration 函数URL
  • 客户:必须允许调用 mcp 函数URL

您可以使用IAM策略或 aws lambda add-permission (见下文)。

通过AWS CLI分配权限

授予调用的权限 注册函数URL:

aws lambda add-permission \
  --function-name  \
  --statement-id allow-registration \
  --action lambda:InvokeFunctionUrl \
  --principal "*" \
  --function-url-auth-type IAM

授予调用的权限 MCP功能URL (SSE和消息):

aws lambda add-permission \
  --function-name  \
  --statement-id allow-mcp \
  --action lambda:InvokeFunctionUrl \
  --principal "*" \
  --function-url-auth-type IAM

替换 `` 使用实际的Lambda函数名称。

注册API

使用这些端点管理MCP工具、资源和提示:

注册新工具

awscurl -X POST ${REGISTRATION_URL}/register \
  --region ap-southeast-2 \
  --service lambda \
  -H "Content-Type: application/json" \
  -d '{
    "type": "tool",
    "name": "example",
    "description": "Example tool",
    "lambdaArn": "arn:aws:lambda:region:account:function:name",
    "parameters": {
      "input": "string"
    }
  }'

更新注册

awscurl -X PUT ${REGISTRATION_URL}/register/{id} \
  --region ap-southeast-2 \
  --service lambda \
  -d '...'

删除注册

awscurl -X DELETE ${REGISTRATION_URL}/register/{id} \
  --region ap-southeast-2 \
  --service lambda

列表注册

awscurl ${REGISTRATION_URL}/register \
  --region ap-southeast-2 \
  --service lambda

所需IAM权限

对于管理员

管理员需要这些权限来管理注册:

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Action": "lambda:InvokeFunctionUrl",
    "Resource": "arn:aws:lambda:${region}:${account}:function:${stack-id}-mcp-registration",
    "Condition": {
      "StringEquals": {
        "lambda:FunctionUrlAuthType": "AWS_IAM"
      }
    }
  }]
}

系统使用指南(客户端)

本节适用于希望使用MCP服务器的客户端。

所需IAM权限

客户端需要这些权限才能使用MCP服务器:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "lambda:InvokeFunctionUrl",
            "Resource": [
                "arn:aws:lambda:${region}:${account}:function:${stack-id}-mcp",
            ],
            "Condition": {
                "StringEquals": {
                    "lambda:FunctionUrlAuthType": "AWS_IAM"
                }
            }
        }
    ]
}

连接到服务器

  1. 建立SSE连接:
const sse = new EventSource(SSE_URL, {
  headers: { 
    Authorization: 'AWS4-HMAC-SHA256 ...', // Must be AWS SigV4 signed
  }
});

sse.onmessage = (event) => {
  console.log(JSON.parse(event.data));
};

SSE的cURL示例

awscurl -X GET "${MCP_URL}/sse" \
  --region ap-southeast-2 \
  --service lambda

第一场活动将包括 sessionId。发送消息时使用此选项。

  1. 发送命令:
awscurl -X POST "${MCP_URL}/message?sessionId=session-123" \
  --region ap-southeast-2 \
  --service lambda \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "example",
    "params": {
      "input": "hello"
    }
  }'

错误处理

常见客户端错误

  • 401:AWS凭据无效/缺失
  • 403:权限不足
  • 404:会话ID无效
  • 429:超出费率限制

故障排除

  1. 连接问题:

- 验证AWS凭据 - 检查IAM权限 - 确保网络连接

  1. 命令执行错误:

- 验证会话ID是否处于活动状态 - 检查命令格式是否与工具注册匹配 - 确保参数与架构匹配

需求

  • 已安装并配置AWS CLI
  • 已安装AWS SAM CLI
  • Node.js 20.x或更高版本
  • 具有创建权限的AWS帐户:

- 匿名函数 - DynamoDB表 - IAM角色 - SQS队列

AWS SAM CLI设置

要使用AWS SAM CLI在本地或AWS上部署此应用程序:

  1. 安装AWS SAM CLI:https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html
  2. 确保它在您的PATH中可用:
   sam --version
  1. 构建和部署应用程序:
   sam build
   sam deploy --guided
  1. 按照提示配置堆栈名称、区域、功能和参数覆盖。

您可以重新运行 sam deploy 没有 --guided 使用保存的配置。

安装

您可以通过四种方式安装和部署此应用程序:

1.使用AWS无服务器应用程序存储库(SAR)

部署MCP服务器的最简单方法是通过AWS无服务器应用程序存储库(SAR):

  • 转到 SAR控制台
  • 搜索 mcp lambda sam 马克·范·普罗克特
  • 点击 部署
  • 设置参数:

- StackIdentifier:此MCP服务器实例的唯一ID - VpcEnabled:设置为 true 如果部署在VPC中 - VpcIdSubnetIds:仅在以下情况下提供 VpcEnabledtrue

  • 按照提示进行部署

或者,您可以从AWS CLI进行部署:

aws serverlessrepo create-cloud-formation-change-set \
  --application-id arn:aws:serverlessrepo:ap-southeast-2:522814717816:applications/mcp-lambda-sam \
  --stack-name your-stack-name \
  --capabilities CAPABILITY_IAM \
  --parameter-overrides '[{"name":"StackIdentifier","value":"your-stack-id"}]'

2.使用npx(CLI)

npx @markvp/mcp-lambda-sam deploy

该命令将以交互方式提示进行管理配置:

  • 堆栈名称(适用于多个实例)
  • AWS区域
  • VPC配置(可选)

3.安装时的程序化使用

安装软件包:

npm install @markvp/mcp-lambda-sam

安装包后,您可以通过编程方式使用它:

import { deploy } from '@markvp/mcp-lambda-sam';

// Usage example
deploy();

4.当地开发和部署

安装软件包:

npm install @markvp/mcp-lambda-sam

在进行开发更改后,您可以手动部署它:

npm run deploy

发展

# Install dependencies
npm install

# Lint
npm run lint

# Run tests
npm test

# Build
npm run build

# Deploy
npm run deploy

向SAR发布

如果您正在为此项目做出贡献,并且需要向SAR发布更新:

  1. 打包应用程序:
npm run package:sar
  1. 发布到SAR:
npm run publish:sar
  1. 将应用程序公开(一次性设置):

- 转到AWS控制台>无服务器应用程序存储库 - 选择应用程序 - 点击“分享”并选择“公开” - 应用以下共享策略:

   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": "*",
               "Action": "serverlessrepo:CreateCloudFormationTemplate",
               "Resource": "arn:aws:serverlessrepo:${region}:${account-id}:applications/mcp-lambda-sam"
           }
       ]
   }

许可证

麻省理工学院

贡献

  1. 分叉存储库
  2. 创建功能分支
  3. 提交您的更改
  4. 推到分支
  5. 创建新的Pull请求

目录标签

目录标签

TypeScript开发工具命令行工具developer-tools无服务器架构本地部署AWSLambda动态工具管理流式响应模型上下文协议

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

部署方式(deploymentType,部署类型)

remote-capable

来源包(packageName,安装包名)

@markvp/mcp-lambda-sam

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononeremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP