mcpField
S
Serverless Web MCP Server

Serverless Web MCP Server

本地服务
github.com/bnusunny云与基础设施179 周前更新

关于 Serverless Web MCP Server

Serverless Web MCP Server 让编码 Agent 将 Web 应用部署到 AWS 无服务器基础设施,适用于后端、前端和全栈项目。它还提供部署状态、日志与性能指标查询。

主要功能

  1. 01部署后端、前端和全栈应用
  2. 02列出模板与现有部署
  3. 03获取 CloudWatch 日志和指标
  4. 04更新前端资源
  5. 05提供部署帮助与故障排查

适用场景

  1. 01通过 Agent 部署 AWS 后端服务
  2. 02发布由 S3 和 CloudFront 提供的前端
  3. 03查看部署状态并排查问题

MCP 相关

该 MCP 服务提供部署模板和部署状态等资源,并暴露 deploy、get_logs、get_metrics、deployment_help 与 update_frontend 工具,供 MCP 客户端调用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

无服务器 Web MCP 服务

用于将 Web 应用部署到 AWS 无服务器基础设施的模型上下文协议(MCP)服务实现。

概述

本项目实现了一个 MCP 服务,可让 LLM 编码 Agent 将 Web 应用部署到 AWS 无服务器服务。它遵循模型上下文协议规范,为 AI Agent 提供与 AWS 部署功能交互的标准化接口。

服务支持部署:

  • 使用 API Gateway、带 Web Adapter 的 Lambda 以及 DynamoDB/Aurora Serverless 的后端服务
  • 使用 S3 和 CloudFront 的前端应用
  • 结合后端和前端组件的全栈应用

MCP 实现

此服务实现了模型上下文协议,并具有以下功能:

资源

提供以下内容的上下文信息:

  • 可用的部署模板(template:list、template:{name})
  • 现有部署及其状态(deployment:list、deployment:{project-name})
工具

以工具形式提供部署功能:

  • deploy:将 Web 应用部署到 AWS 无服务器基础设施
  • get_logs:从 CloudWatch 获取应用日志
  • get_metrics:获取已部署应用的性能指标
  • deployment_help:获取有关部署要求和故障排除的帮助
  • update_frontend:更新前端资源,而无需重新部署整个基础设施

架构

服务由以下核心组件组成:

  1. MCP 协议处理器:实现 JSON-RPC 接口和消息处理
  2. 统一部署服务:管理不同类型的部署(后端、前端、全栈)
  3. AWS 集成层:与 AWS SAM CLI 和 AWS 服务交互

部署类型

服务以统一方式支持不同类型的部署:

  • 后端部署:使用 Lambda + API Gateway 的后端服务
  • 前端部署:使用 S3 + CloudFront 的前端应用
  • 全栈部署:结合后端和前端的部署

AWS Lambda Web Adapter

对于后端和全栈部署,服务使用 AWS Lambda Web Adapter 在 AWS Lambda 上运行 Web 应用。开发者无需更改代码,即可使用熟悉的 Web 框架。

开始使用

先决条件
  • Node.js 18 或更高版本
  • AWS SAM CLI
  • 已配置 AWS 凭证
安装
# Install globally from npm
npm install -g serverless-web-mcp-server

# Or clone the repository
git clone https://github.com/bnusunny/serverless-web-mcp-server.git
cd serverless-web-mcp-server

# Install dependencies
npm install

# Build the project
npm run build

使用方法

用作本地 MCP 服务

若要与 Claude for Desktop 或其他 MCP 客户端配合使用,请将此服务添加到客户端配置中:

对于 Claude for Desktop,请编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "serverless-web": {
      "command": "serverless-web-mcp"
    }
  }
}

配置完成后,重启 Claude for Desktop。你应该能在 Claude 界面中看到 serverless-web 工具。

命令行选项
Usage:
  serverless-web-mcp [options]

Options:
  --debug, -d                 Enable debug logging
  --templates, -t <path>      Specify templates directory path
  --transport, -m <mode>      Transport method (stdio or http, default: stdio)
  --port, -p <number>         HTTP server port (default: 3000, only used with http transport)
  --help, -h                  Show this help message
  
Environment Variables:
  MCP_TRANSPORT               Transport method (stdio or http, default: stdio)
  PORT                        HTTP server port (default: 3000)
  TEMPLATES_PATH              Path to templates directory
资源发现

若要发现可用资源和工具,请使用以下方法:

列出资源
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "resource/list",
  "params": {}
}

这将返回所有可用资源的列表及其模式和说明。

列出工具
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tool/list",
  "params": {}
}

这将返回所有可用工具的列表及其说明和参数架构。

工具调用示例
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tool/invoke",
  "params": {
    "name": "deploy",
    "parameters": {
      "deploymentType": "backend",
      "projectName": "my-api",
      "projectRoot": "/path/to/project",
      "region": "us-east-1",
      "backendConfiguration": {
        "builtArtifactsPath": "backend/dist",
        "runtime": "nodejs18.x",
        "startupScript": "bootstrap",
        "memorySize": 512,
        "timeout": 30,
        "environment": {
          "NODE_ENV": "production"
        }
      }
    }
  }
}
资源请求示例
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "resource/get",
  "params": {
    "uri": "deployment:my-api"
  }
}

部署参数

后端部署
{
  "deploymentType": "backend",
  "projectName": "my-api",
  "projectRoot": "/path/to/project",
  "region": "us-east-1",
  "backendConfiguration": {
    "builtArtifactsPath": "backend/dist",
    "runtime": "nodejs18.x",
    "startupScript": "bootstrap",
    "memorySize": 512,
    "timeout": 30,
    "environment": {
      "NODE_ENV": "production"
    },
    "databaseConfiguration": {
      "tableName": "Users",
      "attributeDefinitions": [
        { "name": "id", "type": "S" }
      ],
      "keySchema": [
        { "name": "id", "type": "HASH" }
      ]
    }
  }
}
前端部署
{
  "deploymentType": "frontend",
  "projectName": "my-website",
  "projectRoot": "/path/to/project",
  "region": "us-east-1",
  "frontendConfiguration": {
    "builtAssetsPath": "frontend/build",
    "indexDocument": "index.html"
  }
}
全栈部署
{
  "deploymentType": "fullstack",
  "projectName": "my-fullstack-app",
  "projectRoot": "/path/to/project",
  "region": "us-east-1",
  "backendConfiguration": {
    "builtArtifactsPath": "backend/dist",
    "runtime": "nodejs18.x",
    "environment": {
      "NODE_ENV": "production"
    }
  },
  "frontendConfiguration": {
    "builtAssetsPath": "frontend/build",
    "indexDocument": "index.html"
  }
}

开发

项目结构
/
├── src/
│   ├── mcp/              # MCP protocol implementation
│   │   ├── tools/        # Tool implementations
│   │   │   └── index.ts  # Tool registration
│   │   ├── resources/    # Resource implementations
│   │   │   └── index.ts  # Resource registration
│   │   └── server.ts     # MCP server setup
│   ├── deployment/       # Deployment service
│   ├── cli/              # Command line interface
│   └── index.ts          # Main server entry point
├── templates/            # Deployment templates
├── examples/             # Example applications
├── docs/                 # Documentation
├── config.json           # Server configuration
├── DESIGN.md             # Detailed design document
└── README.md             # This file

许可证

MIT

贡献

欢迎贡献!请随时提交 Pull Request。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。