使用说明

项目简介

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 文档获取更详细的使用说明和示例。

信息

分类

开发者工具