ESA MCP Server
使用说明
项目简介
这是一个基于 Model Context Protocol (MCP) 实现的服务器,旨在作为大型语言模型 (LLM) 客户端与阿里云边缘安全加速 (ESA) 服务之间的桥梁。它将 ESA 的各种管理 API 封装为标准的 MCP 工具,允许 LLM 通过 MCP 协议调用这些工具,实现对 ESA 资源的自动化管理和操作,例如创建、删除、部署和管理边缘例程 (Edge Routines) 以及相关的域名记录和站点配置。
主要功能点
- 暴露 ESA API 为工具: 将阿里云 ESA 服务的 API 接口转换为遵循 MCP Tool 规范的工具集合,供 LLM 客户端调用。
- 边缘例程 (Routine) 管理: 提供创建、删除、列出、获取例程详情、提交例程代码至暂存环境以及部署例程代码至指定环境(生产/预发/金丝雀)的能力。
- 例程路由 (Route) 管理: 支持创建、更新、删除、获取路由详情以及列出例程或站点的路由信息,用于控制流量如何匹配并转发到边缘例程。
- 站点 (Site) 与记录管理: 能够列出账号下的活跃站点,查找与用户输入匹配的站点,以及在站点下创建 A 记录和 CNAME 记录,并列出站点的所有记录。
- 记录 (Record) 管理: 提供创建、删除和列出例程相关的记录的能力。
- 通过 Stdio 通信: 服务器通过标准输入输出 (Stdio) 协议与 MCP 客户端进行交互。
安装步骤
该服务器通常作为 MCP 生态系统的一部分,以 npm 包的形式发布。用户无需手动在系统上全局安装。标准的 MCP 客户端(例如 'cline' 或支持 MCP 的其他应用)会根据其配置文件自动下载并运行该服务器。您只需确保您的系统具备运行 Node.js 应用的环境即可。
服务器配置
该 MCP 服务器的配置需要在您使用的 MCP 客户端的配置文件中完成。通常,您需要在客户端配置文件的 'mcpServers' 字段中添加一个条目来描述如何启动和连接到此服务器。以下是一个典型的配置示例(以 JSON 格式表示):
{ "mcpServers": { "esa-mcp-server": { // 您为该服务器在客户端中指定的唯一名称 "command": "npx", // 用于启动服务器进程的命令 "args": ["-y", "mcp-server-esa"], // 传递给 command 的参数,"-y mcp-server-esa" 表示使用 npx 直接运行 mcp-server-esa 包 "env": { // 启动服务器进程时需要设置的环境变量,用于阿里云认证 "ALIBABA_CLOUD_ACCESS_KEY_ID": "此处填写您阿里云账号的Access Key ID", "ALIBABA_CLOUD_ACCESS_KEY_SECRET": "此处填写您阿里云账号的Access Key Secret", "ALIBABA_CLOUD_SECURITY_TOKEN": "此处填写STS Token (如果使用STS临时凭证则必需,否则可留空或省略此行)" } } // 如果有其他MCP服务器,可以在此处继续添加配置... }, // 客户端的其他配置项... }
配置完成后,当您启动配置了上述信息的 MCP 客户端时,客户端会自动尝试启动并连接到 'esa-mcp-server'。
基本使用方法
在 MCP 客户端成功连接到 'esa-mcp-server' 后,客户端会通过 MCP 协议发现该服务器提供的所有工具(如 'routine_create', 'site_active_list' 等)及其详细的输入参数定义 ('inputSchema') 和描述。之后,LLM 就可以利用这些信息,通过客户端发起 Tool Calling 的请求,调用相应的 ESA 管理工具来执行具体任务。具体的交互方式取决于您的 MCP 客户端如何集成 Tool Calling 功能。LLM 会根据用户的指令和工具的描述,生成符合工具 'inputSchema' 格式的参数,并通过客户端发送给 'esa-mcp-server' 执行。服务器执行完成后,会将结果返回给客户端,进而呈现给 LLM 或用户。