MCP服务器-ESA
Model Context Protocol服务器的一种实现,它使AI模型能够与边缘安全加速(ESA)服务进行通信,通过标准化协议,模型可以管理例程、部署、路由、记录和站点。
服务介绍
ESA MCP 服务器
ESA MCP 服务器是 Model Context Protocol (MCP) 服务器的一种实现,旨在促进 AI 模型与边缘安全加速 (ESA) 服务之间的通信。该服务器充当桥梁,允许模型通过标准化协议利用 ESA 功能。
安装
在支持 MCP 的客户端配置中进行配置:
{
"mcpServers": {
"esa-mcp-server": {
"command": "npx",
"args": ["-y", "mcp-server-esa"],
"env": {
"ESA_ACCESS_KEY_ID": "your AK",
"ESA_ACCESS_KEY_SECRET": "your SK"
}
}
}
}
演示视频
Claude 演示


Cline 演示

Cline 配置成功:

Claude 配置成功:

特性
- 实现用于工具执行的 Model Context Protocol
- 提供访问 ESA OpenAPI 服务的途径
- 通过 stdio 运行作为服务器,以便与模型运行器无缝集成
工具列表
服务器提供了以下可通过 MCP 协议调用的 ESA 工具:
常规管理工具
routine_create
创建常规任务
| 参数 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| name | 字符串 | 是 | 常规任务名称,支持小写字母、数字和连字符,必须以小写字母开头,至少2个字符 |
| description | 字符串 | 否 | 常规任务描述,不允许有空格 |
| code | 字符串 | 是 | 常规任务源代码,例如:export default { async fetch(request) { return handleRequest(request); } } |
routine_delete
删除常规任务
| 参数 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| name | 字符串 | 是 | 要删除的常规任务名称 |
routine_list
列出所有常规任务
不需要参数。
routine_get
获取常规任务详情
| 参数 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| name | 字符串 | 是 | 要查询的常规任务名称 |
部署工具
routine_code_commit
提交常规任务代码
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| name | string | 是 | Routine 名称 |
| code | string | 是 | Routine 源代码 |
routine_code_deploy
部署 Routine 代码
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| name | string | 是 | Routine 名称 |
| codeVersion | string | 是 | Routine 版本,必须是有效的 semver |
| env | string | 是 | Routine 环境: "production" 或 "staging" |
| canaryAreaList | array | 否 | Canary 发布区域,必须是有效的区域名称(参见 canary_area_list) |
| canaryCodeVersion | string | 否 | Canary 版本,必须是有效的 semver |
canary_area_list
列出所有可用于 Routine 部署的 Canary 区域
无需参数。
deployment_delete
删除一个部署
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| name | string | 是 | 部署名称 |
路由管理工具
route_create
为 Routine 创建路由
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| siteId | number | 是 | 站点 ID |
| mode | string | 是 | 路由模式: 'simple' 或 'custom' |
| route | string | 根据模式决定 | 路由路径(如果 mode 是 'simple' 则必需) |
| rule | string | 是 | 路由规则(如果 mode 是 'custom' 则必需) |
| routineName | string | 是 | Routine 名称 |
| routeName | string | 是 | 路由名称 |
| bypass | string | 是 | 旁路: 'on' 或 'off'(默认 'off') |
| routeEnable | string | 是 | 启用: 'on' 或 'off'(默认 'on') |
| sequence | number | 否 | 路由序列(默认:当前计数) |
route_update
更新 Routine 路由
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| siteId | number | 是 | 站点ID |
| configId | number | 是 | 配置ID |
| routeName | string | 是 | 路由名称 |
| routeEnable | string | 是 | 启用: 'on' 或 'off' |
| rule | string | 是 | 路由规则 |
| routineName | string | 是 | 例行程序名称 |
| bypass | string | 是 | 旁路: 'on' 或 'off' |
| sequence | number | 否 | 路由顺序 |
route_delete
删除一个例行程序路由
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| siteId | number | 是 | 站点ID |
| configId | number | 是 | 配置ID |
route_get
获取与例行程序相关的路由
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| siteId | number | 是 | 站点ID |
| configId | number | 是 | 配置ID |
routine_route_list
列出例行程序的所有路由
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| routineName | string | 是 | 例行程序名称 |
| routeName | string | 否 | 路由名称,用于过滤列表结果 |
| pageNumber | number | 否 | 路由页码 |
| pageSize | number | 否 | 每页路由数 |
site_route_list
列出站点的所有路由
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| siteId | number | 是 | 站点ID |
| routeName | string | 否 | 路由名称,用于过滤列表结果 |
| pageNumber | number | 否 | 路由页码 |
| pageSize | number | 否 | 每页路由数 |
记录管理工具
er_record_create
创建记录
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| name | string | 是 | 例行程序的名称 |
| siteId | number | 是 | 站点ID |
| recordName | string | 是 | 记录的名称 |
er_record_delete
删除记录
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| name | string | 是 | 例行程序的名称 |
| siteId | number | 是 | 站点ID |
| recordName | string | 是 | 记录的名称 |
| recordId | number | 否 | 记录ID |
er_record_list
列出所有记录
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| Name | string | 是 | 例行程序的名称 |
| PageNumber | number | 否 | 记录的页码 |
| PageSize | number | 否 | 每页记录的数量 |
| SearchKeyWord | string | 否 | 搜索关键词 |
站点工具
site_active_list
列出所有活动站点
无需参数。
site_match
检查账户下的哪个站点与用户输入匹配
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| recordName | string | 是 | 要匹配的站点名称 |
site_dns_type_a_record_create
为站点创建A记录
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| recordName | string | 是 | DNS记录的名称(例如,子域名或完整域名) |
| siteId | number | 是 | 站点ID,从ListSites操作中获取 |
| data | object | 是 | DNS记录的数据,带有value属性 |
| data.value | string | 是 | A记录的IP地址(例如,“2.2.2.2”) |
site_dns_cname_domain_record_create
为站点创建CNAME域名记录
| 参数 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| recordName | string | 是 | DNS 记录的名称(例如,子域名或完整域名) |
| siteId | number | 是 | 从 ListSites 操作中获取的站点 ID |
| data | object | 是 | DNS 记录的数据,包含 value 属性 |
| data.value | string | 是 | CNAME 记录的域名值 |
site_record_list
列出站点中的所有记录
| 参数 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| SiteId | number | 是 | 从 ListSites 操作中获取的站点 ID |
可用脚本
npm run build- 使用 rslib 构建项目npm run dev- 以监听模式运行构建,用于开发npm run format- 使用 Prettier 格式化代码npm run lint- 使用 ESLint 检查代码
项目结构
src/index.ts- 主入口点src/tools/- ESA 工具实现src/utils/- 工具函数和辅助函数
许可证
ISC
贡献
对于阿里巴巴内部贡献者,请遵循项目的标准贡献工作流程。