关于 Serverless Web MCP Server
Serverless Web MCP Server 让编码 Agent 将 Web 应用部署到 AWS 无服务器基础设施,适用于后端、前端和全栈项目。它还提供部署状态、日志与性能指标查询。
主要功能
- 01部署后端、前端和全栈应用
- 02列出模板与现有部署
- 03获取 CloudWatch 日志和指标
- 04更新前端资源
- 05提供部署帮助与故障排查
适用场景
- 01通过 Agent 部署 AWS 后端服务
- 02发布由 S3 和 CloudFront 提供的前端
- 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:更新前端资源,而无需重新部署整个基础设施
架构
服务由以下核心组件组成:
- MCP 协议处理器:实现 JSON-RPC 接口和消息处理
- 统一部署服务:管理不同类型的部署(后端、前端、全栈)
- 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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。