关于 edgeport
edgeport 是面向 Cloudflare 账户部分核心操作的 MCP 服务和命令行工具。它让 Agent 查看账户与区域、管理 DNS 记录和缓存,并盘点 Workers、KV 命名空间及 R2 存储桶。
主要功能
- 01列出账户和区域
- 02读取和修改 DNS 记录
- 03清除区域缓存
- 04盘点 Worker 脚本、KV 和 R2
- 05查看 Worker 脚本元数据
适用场景
- 01查找 API 令牌可访问的区域
- 02更新某区域的 DNS 记录
- 03清除缓存文件、标签或主机
- 04检查 Worker 脚本、KV 命名空间或 R2 存储桶
MCP 相关
通过 stdio MCP 服务,将部分 Cloudflare 账户、区域、DNS、缓存、Workers、KV 和 R2 操作作为工具提供。同一组操作也可通过命令行使用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
12收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| per_page | integer | 否 | 每页结果中返回的账户最大数量。 |
详细介绍
edgeport
edgeport 是一个通往 Cloudflare 账户的小入口。Agent 可以通过一个二进制文件查看令牌可访问的账户和区域、读取和修改 DNS 记录、清除缓存内容,以及盘点账户中的 Worker 脚本、KV 命名空间和 R2 存储桶。它既可以从命令行运行,也可以作为供 Agent 使用的 MCP 服务运行。
需要 Cloudflare API 令牌。请将其放入 CLOUDFLARE_API_TOKEN 环境变量;该变量会作为 Bearer 令牌发送给 API,且绝不会出现在输出中。账户级工具(Worker 脚本、KV、R2)接受 account_id 参数;省略该参数时,则回退使用 CLOUDFLARE_ACCOUNT_ID。缺少必需变量时,调用会失败,并在错误中指出变量名称。
这只是 Cloudflare API 的核心子集,并非其全部功能:Worker 绑定的深度配置、可观测性和 Logpush、规则集和防火墙规则、Pages 和部署、Stream 和 Images、AI 和 Vectorize,以及托管式文档搜索工具均不在支持范围内。
安装
npx @reneturcios/edgeport list-zones
或者运行容器镜像:
docker run -i -e CLOUDFLARE_API_TOKEN ghcr.io/cloudcorprecords/edgeport
容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。
CLI
export CLOUDFLARE_API_TOKEN="your api token"
export CLOUDFLARE_ACCOUNT_ID="your account id" # optional fallback
edgeport list-accounts
edgeport list-zones --name example.com
edgeport get-zone --zone-id <zone id>
edgeport list-dns --zone-id <zone id> --type A
edgeport purge-cache --zone-id <zone id> --everything
edgeport list-workers
edgeport list-kv
edgeport list-r2
edgeport --version
退出代码:成功时为 0;API 调用失败时为 1(包括缺少 CLOUDFLARE_API_TOKEN 或收到 success: false 响应封装);用法错误时为 2。
MCP 服务
一个二进制文件即可支持这两种用法。mcp 子命令会启动 stdio MCP 服务:
npx -y @reneturcios/edgeport mcp
MCP 客户端配置:
{
"mcpServers": {
"edgeport": {
"command": "npx",
"args": ["-y", "@reneturcios/edgeport", "mcp"],
"env": { "CLOUDFLARE_API_TOKEN": "your api token" }
}
}
}
工具
| 工具 | 输入 | 返回内容 |
|---|---|---|
list_accounts | per_page(整数,可选) | 令牌可访问的账户,取自响应封装的 result。 |
list_zones | account_id、name、per_page(均可选) | 区域,可按账户或名称筛选。 |
get_zone | zone_id(必填) | 单个区域的详细信息。 |
list_dns_records | zone_id(必填)、type、name、per_page(可选) | 区域中的 DNS 记录。 |
create_dns_record | zone_id、type、name、content(必填)、ttl、proxied、comment(可选) | 创建的记录。 |
update_dns_record | zone_id、record_id(必填)、任意记录字段(可选) | 更新后的记录;仅发送给定字段。 |
delete_dns_record | zone_id、record_id(必填) | 删除结果。 |
purge_cache | zone_id(必填)、purge_everything、files、tags、hosts(可选) | 区域的缓存清除结果。 |
list_workers_scripts | account_id(可选) | 账户中的 Worker 脚本。 |
get_worker_script | script_name(必填)、account_id(可选) | 仅返回结构摘要:内容类型、字节大小、是否存在正文。绝不返回脚本正文。 |
list_kv_namespaces | account_id(可选) | 账户中的 Workers KV 命名空间。 |
list_r2_buckets | account_id(可选) | 账户中的 R2 存储桶。 |
每个 JSON 响应都会从 Cloudflare 的 {success, errors, result} 响应封装中解包。收到 success: false 响应封装时,会报告工具错误,并附上 API 自身的错误条目。
开发
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev # run the CLI from source via tsx
许可证
MIT — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。