Serverless Web MCP Server

使用说明

项目简介

Serverless Web MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为 LLM (大型语言模型) 客户端提供标准化的接口,以便将 Web 应用程序部署到 AWS Serverless 基础设施。它充当 LLM 客户端和 AWS 云服务之间的桥梁,简化了云端部署流程,并允许 AI 智能体自动化执行部署任务。

主要功能点

  • 资源管理 (Resources): 提供关于部署模板和现有部署状态的上下文信息,例如:
    • 'template:list': 列出可用的部署模板。
    • 'template:{name}': 获取特定部署模板的详细信息。
    • 'deployment:list': 列出所有部署项目及其状态。
    • 'deployment:{project-name}': 获取特定部署项目的详细信息。
  • 工具注册与执行 (Tools): 暴露 AWS Serverless 部署能力为工具,允许 LLM 客户端调用执行,例如:
    • 'deploy': 将 Web 应用程序部署到 AWS Serverless 基础设施 (Lambda, API Gateway, S3, CloudFront 等)。
    • 'configure-domain': 设置自定义域名和 SSL 证书 (占位符实现)。
    • 'provision-database': 创建和配置数据库资源 (占位符实现)。
    • 'get-logs': 获取应用程序日志 (占位符实现)。
    • 'get-metrics': 获取应用程序性能指标 (占位符实现)。
  • Prompt 模板 (Prompts): 虽然文档中没有明确提及 Prompt 模板,但 MCP 服务器的架构设计支持 Prompt 模板的定义和渲染,以支持可定制的 LLM 交互模式 (未在此仓库中实现)。
  • 传输协议 (Transport Options): 支持 Stdio 和 HTTP 两种传输协议,方便本地和远程客户端连接。
    • 'stdio': 默认传输方式,适用于本地 MCP 服务器,例如与 Claude for Desktop 集成。
    • 'HTTP': 基于 Web 的传输方式,支持远程客户端连接。
  • 安全与用户控制 (Security and User Control): 遵循 MCP 安全原则,强调用户授权、数据隐私和工具安全。集成 AWS IAM 进行安全认证。
  • 架构设计 (Architecture): 采用模块化架构,包括 MCP 协议处理、统一部署服务、AWS 集成层和上下文管理等核心组件,保证了系统的可扩展性和可维护性。
  • 自动依赖安装 (Automatic Dependency Installation): 支持 Node.js, Python, Ruby 等后端应用的自动依赖安装,简化部署流程。

安装步骤

  1. 前提条件:

    • Node.js 18 或更高版本
    • AWS SAM CLI
    • 已配置 AWS 凭证
  2. 安装 Serverless Web MCP Server:

    • 全局安装 (推荐):

      npm install -g serverless-web-mcp-server
    • 或克隆仓库本地安装:

      git clone https://github.com/bnusunny/serverless-web-mcp-server.git
      cd serverless-web-mcp-server
      npm install
      npm run build
  3. 配置服务器 (config.json):

    在项目根目录下创建 'config.json' 文件,配置服务器端口、AWS 区域和凭证等信息:

    {
      "port": 3000,
      "aws": {
        "region": "us-east-1",
        "profile": "default"
      },
      "templates": {
        "path": "./templates"
      }
    }

服务器配置 (MCP 客户端配置)

MCP 客户端 (例如 Claude for Desktop) 需要配置 MCP 服务器的启动命令才能连接。以下是针对 Serverless Web MCP Server 的配置信息,请将以下 JSON 配置添加到您的 MCP 客户端配置文件中。

{
  "serverless-web": {
    "command": "serverless-web-mcp"
  }
}
  • 'serverless-web': 服务器名称,可以自定义,用于在客户端中标识该服务器。
  • 'command': 启动 Serverless Web MCP Server 的命令。如果使用全局安装,则为 'serverless-web-mcp';如果本地安装,则可能需要指定到项目 'bin' 目录下的可执行文件路径。

可选参数:

您可以通过以下方式为 'serverless-web-mcp' 命令添加可选参数,以定制服务器行为:

  • 命令行选项: 直接在 'command' 字段后添加选项和参数。
  • 环境变量: 通过设置环境变量来配置服务器。

以下是一些常用的可选参数及其说明:

  • '--debug, -d': 启用调试日志,输出更详细的日志信息,方便问题排查。
  • '--templates, -t <path>': 指定部署模板目录的路径。如果模板不在默认位置,可以使用此选项指定。
  • '--transport, -m <mode>': 指定传输方法,可选 'stdio' 或 'http'。默认为 'stdio'。
  • '--port, -p <number>': 指定 HTTP 服务器端口号。仅在 'http' 传输模式下使用,默认为 '3000'。

示例配置 (Claude for Desktop - '~/Library/Application Support/Claude/claude_desktop_config.json'):

{
  "mcpServers": {
    "serverless-web": {
      "command": "serverless-web-mcp",
      "args": ["--debug", "--port", "3001"]
    }
  }
}
  • 在此示例中,'args' 数组包含了 '--debug' (启用调试日志) 和 '--port 3001' (设置 HTTP 端口为 3001) 两个参数。

请根据您的 MCP 客户端的具体配置方法,将上述配置信息添加到客户端设置中。

基本使用方法

  1. 启动 Serverless Web MCP Server:

    • HTTP 模式: 'MCP_TRANSPORT=http npm start' 或 'serverless-web-mcp --transport http'
    • Stdio 模式 (默认): 直接运行 'serverless-web-mcp' 或 'npm start'
  2. 配置 MCP 客户端: 参考 "服务器配置" 章节,将 Serverless Web MCP Server 添加到您的 MCP 客户端配置中。

  3. 资源和工具发现: 使用 MCP 客户端的资源和工具发现功能,或者手动发送 JSON-RPC 请求,例如:

    • 列出资源:

      {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "resource/list",
        "params": {}
      }
    • 列出工具:

      {
        "jsonrpc": "2.0",
        "id": 2,
        "method": "tool/list",
        "params": {}
      }
  4. 工具调用: 使用 MCP 客户端或发送 JSON-RPC 请求调用部署工具,例如 'deploy' 工具,并提供相应的参数 (如 'deploymentType', 'projectName', 'backendConfiguration', 'frontendConfiguration' 等)。 具体参数参考 README.md 文档中的 "Deployment Parameters" 章节。

    • 调用 'deploy' 工具示例:
      {
        "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": "/path/to/built/artifacts",
              "runtime": "nodejs18.x",
              "startupScript": "bootstrap",
              "memorySize": 512,
              "timeout": 30,
              "environment": {
                "NODE_ENV": "production"
              }
            }
          }
        }
      }
  5. 资源请求: 使用 MCP 客户端或发送 JSON-RPC 请求获取资源信息,例如获取部署详情:

    • 获取部署详情:
      {
        "jsonrpc": "2.0",
        "id": 2,
        "method": "resource/get",
        "params": {
          "uri": "deployment:my-api"
        }
      }

请参考仓库的 README.md 文档获取更详细的使用说明和示例。

服务器信息