Skip to main content
Glama

CloudOps MCP Server

统一云运维 MCP (Model Context Protocol) 服务器,让 AI Agent 具备全栈云运维能力。

一个 MCP Server 同时管理阿里云 + 腾讯云,覆盖服务器管理、项目部署、数据库查询、文件操作、云实例查询、DNS/CDN 管理 6 大场景,26 个工具。

版本

Related MCP server: Coolify MCP Tools

文档导航

  • README.md(本文件):连接器总文档 —— 工具清单、一键安装(复制粘贴给 AI)、手动安装、配置向导、架构、工具详解、扩展指南。

  • OPERATIONS.md:真实运维 Playbook(P1–P8),沉淀「获取密钥 / 上传 SSH 公钥 / 建立 NOPASSWD sudo / CDN 改源站」等「目标 + 流程」式实操手册。需要手动操作云控制台时优先查它。

  • CHANGELOG.md:版本更新记录。


工具总览(26 个)

模块

工具

说明

服务器管理

server_exec, server_info, server_list, server_add

SSH 远程执行命令、系统信息、服务器列表、运行时注册服务器

项目部署

deploy_project, deploy_status

Git 拉取/构建/重启、Docker 部署、自定义脚本(script)部署

数据库

db_query, db_list_tables, db_list_databases

SQL 查询、表管理(支持 SSH 隧道)

文件管理

file_list, file_read, file_write, file_search

远程文件列表/读写/搜索

云平台

cloud_list_instances, cloud_instance_info

阿里云 ECS + SWAS(轻量) + 腾讯云 CVM + Lighthouse(轻量)

DNS/CDN

dns_list_domains, dns_list_records, dns_create_record, dns_delete_record, cdn_list_domains, cdn_refresh, cdn_task_status

腾讯云 DNSPod 解析 + CDN 加速域名/缓存刷新/刷新任务进度查询

一键安装(复制粘贴给 AI)⭐ 推荐

仓库已公开,任何支持第三方 MCP 的 AI 工具都能直接克隆使用。把下面这段话原样复制给你的 AI 助手,它会自己完成:克隆 → 读文档 → 安装依赖 → 配置 → 注册连接器 → 验证 26 个工具。适配 WorkBuddy、Hermes Agent、Claude Code、Codex CLI 等主流 Agent。比手动安装更快,优先使用。

请帮我安装并学会使用 CloudOps MCP Server(统一云运维 MCP 连接器,GitHub: https://github.com/rowanlin-dev/cloud-ops-mcp)。

步骤:
1. 克隆仓库:git clone https://github.com/rowanlin-dev/cloud-ops-mcp.git && cd cloud-ops-mcp
2. 通读仓库内 README.md 与 OPERATIONS.md,掌握 26 个工具(server_exec / deploy_project / db_query / file_list / cloud_list_instances / dns_list_domains / cdn_refresh / cdn_task_status 等)的能力与用法
3. 安装依赖:npm install
4. 初始化配置:cp .env.example .env,然后引导我填写最小配置(至少一台 SSH 服务器:host / username / privateKey 或 password;云 AK、数据库等用到再填)
5. 按下方「各客户端注册方式」把我注册为 MCP 连接器
6. 验证:重启后应能列出 26 个工具,用 server_info 或 server_exec 测试连通

注意:.env 含云密钥、SSH 私钥路径等敏感信息,绝不可提交到 git(.gitignore 已排除)。

各客户端注册方式

把下面的 <路径> 换成你的实际克隆路径(如 E:/WorkSpace/cloud-ops-mcp、/home/user/cloud-ops-mcp)。 .env 按源码路径自动加载(不依赖进程启动目录),因此以下注册方式均无需额外设置工作目录。

客户端

注册方式

配置位置

WorkBuddy

编辑 JSON(见下)

~/.workbuddy/mcp.json → mcpServers

Hermes Agent

编辑 YAML(见下)

~/.hermes/config.yaml → mcp_servers

Claude Code

一条命令

claude mcp add --transport stdio cloud-ops -- npx tsx <路径>/cloud-ops-mcp/src/index.ts

Codex CLI

编辑 TOML(见下)

~/.codex/config.toml → [mcp_servers.cloud-ops]

WorkBuddy(~/.workbuddy/mcp.json):

{
  "mcpServers": {
    "cloud-ops": {
      "command": "npx",
      "args": ["tsx", "<路径>/cloud-ops-mcp/src/index.ts"],
      "cwd": "<路径>/cloud-ops-mcp"
    }
  }
}

Hermes Agent(~/.hermes/config.yaml):

mcp_servers:
  cloud-ops:
    command: "npx"
    args: ["tsx", "<路径>/cloud-ops-mcp/src/index.ts"]

Claude Code(一条命令,需先 cd 到项目目录或在项目内执行):

claude mcp add --transport stdio cloud-ops -- npx tsx <路径>/cloud-ops-mcp/src/index.ts

Codex CLI(~/.codex/config.toml):

[mcp_servers.cloud-ops]
command = "npx"
args = ["tsx", "<路径>/cloud-ops-mcp/src/index.ts"]

注册后重启对应 AI 客户端(或执行其 MCP 重载命令,如 Hermes 的 /reload-mcp),即可看到 server_exec、deploy_project、db_query、cdn_refresh 等 26 个工具。

手动安装(快速开始)

以下为手动安装步骤(克隆 → 配置 → 注册 → 验证)。想更快?用上面的「一键安装(复制粘贴给 AI)」让 AI 自动完成。

1. 克隆 & 安装

git clone <your-repo-url> cloud-ops-mcp
cd cloud-ops-mcp
npm install

项目使用 tsx 作为 TypeScript 运行时,无需编译步骤。

2. 配置

cp .env.example .env
# 编辑 .env 填入你的配置

最小配置(只需 SSH):

SSH_HOST=your-server-ip
SSH_PORT=22
SSH_USER=root
SSH_PRIVATE_KEY=~/.ssh/id_rsa

完整配置项参见 .env.example,支持多服务器、数据库、阿里云/腾讯云 AK。

💡 运行时注册服务器:除了手改 .env 的 SSH_SERVERS,也可以用 server_add 工具在运行时注册(写入 .env 并热更新内存缓存,无需重启连接器)。详见下文「工具详解 → server_add」。

3. 注册到 MCP 客户端(任意支持第三方 MCP 的 AI 工具)

本连接器不是 WorkBuddy 专属。只要你的 AI 工具满足两点即可使用:

  1. 能安装 kimi-webbridge 这个 skill(用于无公开 API 的控制台自动化兜底);

  2. 支持安装第三方 MCP 连接器(stdio 协议)。 常见如 WorkBuddy、Claude Desktop、Cursor、VS Code(Cline/Continue 等扩展)均可。

通用注册片段(把 /absolute/path/to/cloud-ops-mcp 换成你的实际路径):

{
  "mcpServers": {
    "cloud-ops": {
      "command": "npx",
      "args": ["tsx", "/absolute/path/to/cloud-ops-mcp/src/index.ts"],
      "cwd": "/absolute/path/to/cloud-ops-mcp"
    }
  }
}

各客户端配置文件位置:

客户端

配置文件路径

WorkBuddy

~/.workbuddy/mcp.json(mcpServers 键)

Claude Desktop

macOS ~/Library/Application Support/Claude/claude_desktop_config.json;Windows %APPDATA%\Claude\claude_desktop_config.json

Claude Code

claude mcp add --transport stdio cloud-ops -- npx tsx <路径>/src/index.ts(存入 ~/.claude.json)

Codex CLI

~/.codex/config.toml([mcp_servers.cloud-ops])

Hermes Agent

~/.hermes/config.yaml(mcp_servers 键)

Cursor

~/.cursor/mcp.json(或项目 .cursor/mcp.json)

VS Code(Cline/Continue)

扩展设置中的 MCP 配置项

cwd 必须指向项目根目录,MCP Server 需要从该目录加载 .env 和 node_modules。 配置向导默认不会自动改写任何客户端的 MCP 配置;如需向导自动写入,可设置环境变量 CLOUD_OPS_MCP_CONFIG_PATH 指向目标配置文件路径(可选)。

4. 验证

# 测试阿里云工具
npx tsx src/test-aliyun.ts

# 测试 SSH 工具
npx tsx src/test-ssh.ts

# 直接启动 MCP Server(查看日志)
npx tsx src/index.ts

配置向导(推荐)

配置向导是一个 Web UI,让你用浏览器可视化编辑 .env 的全部内容——既能自动获取(依赖 Kimi WebBridge 扫云控制台)云实例与密钥并回填,也能手动填写 SSH 私钥路径、远程登录密码、数据库账号密码、部署默认等所有字段。0 基础用户也能直接上手。

你仍可以随时直接手改 .env 文件(参见 OPERATIONS.md 手动 playbook);向导只是更友好的入口,不是唯一方式。

需要先准备哪些配置(必要 / 可选)

配置项

必要 / 可选

作用

填写方式

SSH 服务器(SSH_SERVERS 或 SSH_HOST)

必要

远程命令执行 / 部署 / 数据库隧道

向导自动获取或手动填

数据库(DATABASES)

可选

MySQL 查询(可走 SSH 隧道)

仅手动填

阿里云(ALIBABA_CLOUD_*)

可选

查询 ECS / SWAS 实例

向导自动获取或手动填

腾讯云(TENCENT_CLOUD_*)

可选

查询 CVM / Lighthouse、CDN 刷新、DNSPod

向导自动获取或手动填

部署默认(DEPLOY_DEFAULT_*)

可选

deploy_project 默认构建/重启命令

仅手动填

只有 SSH 服务器是必须的;云 AK、数据库、部署默认都是「用到才配」。纯手动部署(如只 server_exec + deploy_project)可只配 SSH。

前置条件

Kimi WebBridge 的定位:它用于那些没有干净公开 API 的控制台操作(例如扫码登录云厂商控制台、读取 AK/SK、部分 CDN 高级配置)。对于已有公开 API 的能力(密钥配置、CDN 缓存刷新、实例查询等),优先使用工具自动化,Kimi WebBridge 是「无 API 时的可选兜底」。

使用步骤

# 1. 启动配置向导(会自动检测 / 启动 / 安装 Kimi WebBridge,无需手动先 start)
npm run config

# 2. 打开浏览器访问 http://localhost:3456
# 3. 点击「阿里云全自动配置」或「腾讯云全自动配置」
# 4. 扫码登录云控制台(唯一手动步骤)
# 5. 向导自动读取服务器实例(阿里云同时扫描 ECS + SWAS 轻量服务器,腾讯云扫描 CVM + Lighthouse)和 AK/SK
# 6. 点击「保存配置」完成

Kimi WebBridge 自动处理:npm run config 会自动检测守护进程——已在运行则直接用;已安装未运行则自动启动;未安装则按官方命令自动安装(Windows: irm https://cdn.kimi.com/webbridge/install.ps1 | iex;macOS/Linux: curl -fsSL https://cdn.kimi.com/webbridge/install.sh | bash)再启动。自动安装失败或你想手动时,按上面命令自行安装即可。

⚠️ 浏览器扩展需手动安装:守护进程可自动化安装,但浏览器扩展(让守护进程接管你真实浏览器会话)无法自动安装,请到 https://www.kimi.com/zh-cn/features/webbridge 手动安装并登录。WebBridge 仅用于「云 AK 自动获取」兜底;未安装时向导仍可手动填写 .env,不阻断。

RAM 用户(推荐,自动)

阿里云与腾讯云在「创建密钥」时都会弹出建议使用 RAM/子账号而非主账号密钥的确认框。配置向导现在会识别该弹窗并自动转入子用户流程:

  1. 在 RAM/CAM 控制台创建专用子用户 cloud-ops-mcp(勾选编程访问);

  2. 为该子用户生成 AccessKey,读取 KeyId/Secret;

  3. 尽力附加连接器所需的最小权限策略(ECS/SWAS/Lighthouse 只读、CDN 刷新、DNS 解析);

  4. 把子用户密钥写入 .env,绝不落主账号密钥。

若自动附加策略失败,向导会生成 MANUAL_STEPS.md,内含需手动附加的最小权限策略 JSON,按步骤补齐即可。所有控制台 UI 检测信号均为可配置列表,识别失败时一律降级为手动步骤,不会把「点过弹窗」误判为成功。

最小权限(禁用全管理员 AdministratorAccess / QcloudAdministrator):阿里云 AliyunECSReadOnlyAccess / AliyunSWASReadOnlyAccess / AliyunCDNFullAccess / AliyunDNSFullAccess;腾讯云 QcloudCVMReadOnlyAccess / QcloudLighthouseReadOnlyAccess / QcloudCDNFullAccess / QcloudDNSPodFullAccess。

重跑向导的幂等行为(重要)

配置向导可安全反复运行,已针对「重复造 AK / 重复建子用户」做了幂等处理:

  1. 已有 AK 不会重复获取:.env 里已存在阿里云 ALIBABA_CLOUD_ACCESS_KEY_ID 时,点「阿里云全自动配置」会默认保留现有配置、跳过浏览器自动获取,并在日志提示「已保留现有」。若确实要重新抓取,点击「重新获取」按钮即可(走强制刷新路径)。

  2. RAM/CAM 子用户自动复用:向导固定使用名为 cloud-ops-mcp 的子用户。重跑时先查该子用户是否已存在——存在则复用,不会重复创建(阿里云 CreateUser 同名会直接报错,这正是早期重复运行的坑)。

  3. AccessKey 轮换而非堆积:复用既有子用户时,向导会先清理该子用户下已有的 AccessKey(best-effort),再新建一对写入 .env,避免密钥超过 2 把上限或长期堆积。

  4. 留痕方便清理:凡经向导创建/复用 RAM 子用户,都会在 .env 写入 ALIYUN_RAM_USER=cloud-ops-mcp 标记。日后想彻底移除时,到阿里云 RAM 控制台删除该子用户即可(删除前请确认连接器不再使用其密钥)。

一句话:反复点「全自动配置」是安全的——它要么保留、要么复用、要么轮换,不会凭空多出子用户或密钥。

配置完成后关闭守护进程

# 1. 关闭配置向导(在运行 npm run config 的终端按 Ctrl+C)

# 2. 关闭 Kimi WebBridge 守护进程
# Windows PowerShell:
& "$env:USERPROFILE\.kimi-webbridge\bin\kimi-webbridge.exe" stop

# 验证已关闭(无输出或进程不存在即已停止)
& "$env:USERPROFILE\.kimi-webbridge\bin\kimi-webbridge.exe" status

配置向导是可选的。手动编辑 .env 文件永远可用(参见 OPERATIONS.md 中的手动 playbook)。

配置向导 API 接口

向导后端(Express)暴露以下接口,供前端调用:

接口

方法

功能

GET /api/daemon-status

GET

检查 Kimi WebBridge 守护进程状态

GET /api/get-config

GET

读取当前 .env 全量配置(SSH/数据库/云平台/部署),用于表单回填

POST /api/save-config

POST

接收完整表单,全量写回 .env(含 DATABASES / SSH_PASSWORD / DEPLOY_*,不再丢失)

POST /api/auto-config-aliyun

POST

阿里云全自动配置(ECS + AK/SK)

POST /api/auto-config-tencent

POST

腾讯云全自动配置(CVM + AK/SK)

POST /api/check-login

POST

检查用户是否已登录云控制台

POST /api/generate-config

POST

兼容接口:合并写入 SSH_SERVERS 与云 AK(保留旧行为)

全自动流程(简述)

  • 阿里云:打开 ECS 控制台 → 检测/扫码登录 → 从实例列表提取 IP 与名称 → 跳 RAM「API 密钥」→ 识别「建议用 RAM 用户」弹窗并转子用户流程 → 取 AK/SK → 回填表单。

  • 腾讯云:打开 CVM 控制台 → 检测/扫码登录 → 提取实例 → 跳 CAM「API 密钥」→ 识别弹窗转子用户流程 → 取 SecretId/Key → 回填表单。

两朵云可分别点击,配置会合并进同一个 .env。

注意事项

  1. 浏览器自动化可能需要微调:云控制台页面结构会变,自动提取失败时会展示页面预览便于排查。

  2. SecretKey 可能无法自动提取:部分云平台安全策略会隐藏 Secret,此时需手动复制粘贴。

  3. SSH 密钥路径:自动配置默认 ~/.ssh/id_rsa,若路径不同请在配置预览中手动修改(Windows 下建议用 /C:/Users/<LOCAL_USER>/.ssh/... 绝对路径)。

  4. 多云平台合并:可分别点击阿里云 / 腾讯云按钮,两边配置会合并进同一个 .env。

架构

AI Agent(任意支持 MCP 的客户端,如 Claude / Cursor / WorkBuddy)
        │
    MCP Protocol (stdio)
        │
CloudOps MCP Server (TypeScript + tsx)
   │       │       │       │       │       │
 server   deploy    db     file    cloud    dnscdn   ← 工具模块 (26 tools)
   │       │       │       │       │       │
   SSH    MySQL   Git   AliSDK  TcSDK   DNSPod/CDN SDK
   │       │       │       │       │       │
   Alibaba Cloud / Tencent Cloud                  ← 目标云平台
   (ECS, SWAS, CVM, Lighthouse, CDN, DNSPod)

Kimi WebBridge(可选)── 浏览器自动化,兜底无公开 API 的控制台操作

项目结构

cloud-ops-mcp/
├── src/
│   ├── index.ts                 # MCP Server 主入口
│   ├── config.ts                # 配置加载(.env + 环境变量)+ 运行时 server_add
│   ├── types.ts                 # TypeScript 类型定义
│   ├── clients/
│   │   ├── ssh.ts               # SSH 客户端 (ssh2)
│   │   ├── aliyun.ts            # 阿里云客户端 (ECS + SWAS)
│   │   ├── tencent.ts           # 腾讯云客户端 (CVM + Lighthouse,整包命名空间)
│   │   ├── cdn.ts               # 腾讯云 CDN 客户端
│   │   └── dnspod.ts            # 腾讯云 DNSPod 客户端
│   ├── tools/
│   │   ├── server.ts            # 服务器管理 (exec/info/list/add)
│   │   ├── deploy.ts            # 项目部署
│   │   ├── database.ts          # 数据库
│   │   ├── file.ts              # 文件管理
│   │   ├── cloud.ts             # 云实例查询 (ECS/SWAS/CVM/Lighthouse)
│   │   └── dnscdn.ts            # DNSPod + CDN 管理
│   ├── utils/
│   │   └── logger.ts            # 日志
│   ├── config-wizard/           # 配置向导(可选,依赖 Kimi WebBridge)
│   │   ├── server.cjs           # 向导后端
│   │   └── web/                 # 向导前端
│   ├── test-aliyun.ts           # 阿里云工具测试
│   └── test-ssh.ts              # SSH 工具测试
├── .env.example                 # 配置模板
├── .gitignore
├── package.json
├── tsconfig.json
├── OPERATIONS.md                # 运维 Playbook(P1–P7 实操手册)
└── README.md                    # 项目总文档(本文件)

工具详解

server_exec — 远程命令执行

参数: server(服务器名), command(命令), cwd(可选), timeout(可选, 默认60s, 最大600s)
超时: 默认 60 秒;构建/部署等长命令请显式加大 timeout;超时错误会附带提示
示例: 在 Tencent-LH 服务器上执行 docker ps

server_add — 运行时注册 SSH 服务器

参数: name, host, port(默认22), username, privateKey(可选), password(可选)
行为: 写入 .env 的 SSH_SERVERS 并热更新内存缓存,无需重启连接器即可被 server_exec 使用
示例: server_add(name="Tencent-LH", host="<LIGHTHOUSE_PUBLIC_IP>", port=22, username="<SSH_USER>", privateKey="C:/Users/xxx/.ssh/id_ed25519")
注意: 特权写文件请用 `echo x | sudo tee file`,勿用 `sudo cmd > file`(重定向由非 sudo shell 执行会 Permission denied)

deploy_project — 项目部署

参数: server, projectPath, method(git-pull|upload|docker|script), branch, scriptCommand, buildCommand, restartCommand
示例: 将 /data/www/myapp 拉取最新代码并重启
script 方式: method="script", scriptCommand="bash /tmp/deploy_backend.sh" —— 在 projectPath 下执行自定义部署脚本
           (适合「备份→停服→换包→启服」这类现成脚本化流程,执行超时 5 分钟)

db_query — 数据库查询

参数: database(配置名), query(SQL), maxRows(默认100)
安全: 自动阻止 DROP/TRUNCATE/ALTER 等危险操作
file_read:   读取远程文件内容(支持 tail 模式用于日志)
file_write:  写入内容到远程文件(建议配合 sudo tee 使用)
file_search: 用 grep 搜索文件内容

cloud_list_instances — 云实例列表

参数: provider(aliyun|tencent|all, 默认all)
支持:
  - 阿里云 ECS + SWAS(轻量应用服务器)   ← SWAS 自动扫描多个区域
  - 腾讯云 CVM(云服务器) + Lighthouse(轻量应用服务器)

cdn_refresh — CDN 缓存刷新(自动化,无需进控制台)

参数: urls(URL/目录列表), type(url|path)
示例: cdn_refresh(urls=["https://<YOUR_DOMAIN>/","https://<YOUR_DOMAIN>/index.html"], type="url")
注意: type=path 时每个目录路径必须以 / 结尾(如 https://<YOUR_DOMAIN>/assets/),否则校验失败

cdn_task_status — CDN 刷新任务进度查询(v1.0.0 新增)

参数: taskId(可选,cdn_refresh 返回的任务ID), limit(默认10)
示例: cdn_task_status(taskId="<TASK_ID>") —— 查询任务是否 done/process/fail
用途: 刷新后轮询任务状态,替代「等 60 秒盲查 CDN」;留空可查最近记录

更多「目标 + 流程」式手动操作说明(获取密钥、上传 SSH 公钥、建立 NOPASSWD sudo、CDN 改主源站等),参见 OPERATIONS.md。

常见使用场景

以下是 AI Agent 通过自然语言驱动连接器的典型流程:

  • 查看服务器状态:「看看 Tencent-LH 的 CPU 和内存」 → server_info → 表格展示。

  • 部署项目:「把 myapp 部署到 Tencent-LH」 → deploy_project(SSH 拉取最新代码 → 构建 → 重启)。

  • 查询数据库:「查 prod-db 用户表前 10 条」 → db_query(经 SSH 隧道连库,自动拦截危险 SQL)。

  • 管理云资源:「列出腾讯云广州区所有 Lighthouse 实例」 → cloud_list_instances tencent。

  • 刷新 CDN:「刷新 <YOUR_DOMAIN> 缓存」 → cdn_refresh。

支持的云平台

平台

产品

SDK

阿里云

ECS (弹性计算服务)

@alicloud/ecs20140526

阿里云

SWAS (轻量应用服务器)

@alicloud/swas-open20200601

腾讯云

CVM (云服务器)

tencentcloud-sdk-nodejs (整包 cvm 命名空间)

腾讯云

Lighthouse (轻量应用服务器)

tencentcloud-sdk-nodejs (整包 lighthouse 命名空间)

腾讯云

CDN (内容分发网络)

tencentcloud-sdk-nodejs-cdn

腾讯云

DNSPod (域名解析)

tencentcloud-sdk-nodejs-dnspod

腾讯云 SDK 采用整包 tencentcloud-sdk-nodejs 并按命名空间访问(cvm / lighthouse),避免引入未安装的产品分包导致 "Cannot find module" 错误。整包与各产品分包均放在 optionalDependencies 中,未安装不影响其他功能。

操作理念:自动化优先,手动有 playbook

连接器的设计边界(来自 owner 定义):

  1. 操作阿里云/腾讯云公开 API —— 凡有干净 API 的(密钥配置、CDN 刷新、实例查询、DNS 解析),优先用工具自动化。

  2. 通过 SSH 连接云服务器执行命令 —— server_add 注册 + server_exec 远程执行。

  3. (可选)调用 Kimi WebBridge 浏览器自动化 —— 用于没有公开 API 的控制台操作(扫码登录、读取 AK/SK、部分 CDN 高级配置)。

  4. 用户手动操作时必须给「目标 + 流程」说明 —— 缺 API 能力的,由连接器产出标准步骤,由人去控制台执行。

具体 playbook(含命令、控制台路径、已知坑)统一维护在 OPERATIONS.md。

安全特性

  • SSH 密钥认证优先于密码

  • 数据库查询自动阻止危险操作 (DROP/TRUNCATE/ALTER)

  • 所有敏感配置(云 AK、SSH 私钥路径)通过 .env 管理,.env 已在 .gitignore 中排除;SSH 私钥实体请放在你自己的安全位置(如 ~/.ssh/),经 privateKey 字段按路径引用,勿纳入项目目录

  • SQL 注入防护(参数化查询,限制结果集大小)

  • 命令执行超时机制(默认 60s,最大 10 分钟,可调)

  • CDN 刷新目标输入校验(URL 须 http(s):// 开头;目录刷新路径须以 / 结尾)

  • server_add 写入 .env 时做同名校验,避免覆盖已有服务器

  • .env 文件建议权限设为仅用户可读写(chmod 600 .env)

  • 定期轮换云服务 AK/密钥;为连接器创建专用云子账号并遵循最小权限(详见上文「配置向导 → RAM 用户」)

扩展指南

添加新工具

  1. 在 src/tools/ 下创建新模块

  2. 导出 registerXxxTools(server: McpServer) 函数

  3. 在 src/index.ts 中注册

添加新的云平台 / 产品

  1. 在 src/clients/ 下创建或扩展 SDK 封装(优先复用整包 tencentcloud-sdk-nodejs 的命名空间)

  2. 在 src/config.ts 添加配置类型

  3. 在 src/tools/cloud.ts 添加工具

许可证

MIT

Available Tools

26 tools
cdn_list_domainsA

列出腾讯云 CDN 加速域名,包含状态、CNAME 与业务类型

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals that the tool returns status, CNAME, and business type, which gives useful behavioral context about the output. However, since no annotations are provided, the description carries the full burden of disclosing behavioral traits like pagination, permissions, or whether it is a read-only operation. It does not address these, so it only partially fulfills the requirement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It states the action and resource first, then lists the key expected output fields. Every word contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list operation with no output schema, the description covers the core purpose and key return fields. It is not exhaustive about potential pagination or output format details, but given the simplicity of the tool, the provided description is largely adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema imposes no burden. The description correctly implies that no inputs are needed. Baseline for zero-parameter tools is 4, which is appropriate here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb ('列出' / list) and a specific resource ('腾讯云 CDN 加速域名'), and it explicitly names the key output fields (status, CNAME, business type). This distinguishes it from sibling tools like dns_list_domains or cloud_list_instances without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by specifying that this tool targets CDN acceleration domains, which naturally sets it apart from DNS domain listing and cloud instance listing. However, it does not explicitly state when to use this tool over alternatives, but the resource naming makes the intended scenario evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cdn_refreshA

刷新或预热腾讯云 CDN 缓存。type=url 刷新指定 URL;type=path 刷新指定目录(每个路径必须以 / 结尾,否则校验失败)

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes刷新类型: url(刷新指定 URL) 或 path(刷新指定目录,路径须以 / 结尾)
urlsYes要刷新的 URL 或目录路径列表,例如 ["https://example.com/a.css"] 或 ["https://example.com/path/"]

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral disclosure burden. It does state the mutating behavior and a validation constraint, but it does not disclose that the operation is likely asynchronous, that it invalidates/purges cached content, or that it may have quotas/costs. The '预热' (preheat) wording is also inconsistent with the schema's type enum, which only describes refresh behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single well-structured sentence with the core action front-loaded and conditionals following. Every clause contributes useful information, and there is no filler or redundant explanation. It is appropriately sized for a two-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For correct input construction, the description is mostly complete: required parameters, type semantics, and path validation are covered. However, since there is no output schema, the description should at least hint at the return behavior (e.g., task ID) and note that progress can be checked via cdn_task_status. These gaps leave the agent without full end-to-end context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter semantics baseline is 3. The description largely repeats what the schema already says about type and urls, adding no new meaning beyond restating the trailing-slash rule already present in the schema. It neither harms nor significantly improves parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource (Tencent Cloud CDN cache) and the action (refresh or preheat), and it breaks down behavior by type=url vs type=path. It does not explicitly contrast itself with sibling tools like cdn_task_status, but the action is distinct enough to be understood. The mention of '预热' (preheat) is not reflected in the enum, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit conditional guidance on when to use type=url vs type=path, including the trailing-slash validation rule for paths. This is clear context for invoking the tool. However, it does not mention the natural alternative/follow-up cdn_task_status for checking the refresh task result, so exclusion guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cdn_task_statusA

查询腾讯云 CDN 刷新任务的状态(fail 失败 / done 成功 / process 进行中)。可按任务ID查询,也可查询最近记录

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo最多返回条数,默认 10
taskIdNo刷新任务 ID(cdn_refresh 返回)。留空则返回最近的刷新记录

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral burden. It discloses the possible return statuses (fail/done/process) and the two query modes, which is useful. However, it does not describe the output shape, behavior for unknown task IDs, or ordering/limiting behavior beyond the schema default.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence that front-loads the action, status vocabulary, and both invocation modes. Every phrase adds useful information, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple status-query tool with two optional parameters and no output schema, the description adequately covers the core invocation choices and return status semantics. Combined with the fully documented input schema and the related cdn_refresh sibling, the agent has enough context to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes both parameters completely, including the default for limit and the taskId behavior when left blank (100% schema coverage). The description does not add additional parameter meaning beyond what the schema states, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: querying the status of Tencent Cloud CDN refresh tasks, and enumerates the possible status values (fail/done/process). This clearly identifies the action and distinguishes it from related tools like cdn_refresh, which creates tasks. It does not explicitly name an alternative, but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: query by task ID or query recent records. The schema further clarifies that taskId comes from cdn_refresh and that leaving it blank returns recent records. It does not explicitly state when not to use this tool, but no sibling offers equivalent status-checking functionality, so the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_instance_infoA

获取指定云实例的详细信息。阿里云自动识别 ECS/轻量应用服务器(SWAS);腾讯云自动识别 CVM/轻量应用服务器(Lighthouse)

ParametersJSON Schema
NameRequiredDescriptionDefault
providerYes云服务商
instanceIdYes实例 ID

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It reveals the key auto-detection behavior for Aliyun (ECS/SWAS) and Tencent (CVM/Lighthouse), which is valuable. However, it does not state that the operation is read-only, what happens on invalid IDs, or any response characteristics, leaving gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the primary purpose and then provides the provider-specific nuance. Every word earns its place, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool, the description is reasonably complete, but the lack of an output schema means the agent cannot know what 'detailed information' will contain. Additionally, no error or permission context is provided, and with no annotations, the description could do more to round out the picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage with descriptions and an enum for provider, so the baseline is 3. The tool description adds minimal direct parameter detail, though the auto-detection hint implies the instanceId can be any supported type. This is sufficient but not compensatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('获取') and resource ('指定云实例的详细信息'), and adds the cross-provider auto-detection nuance, which distinguishes it from sibling listing tools like cloud_list_instances. It is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context: given a specific instance ID and provider, it retrieves details and auto-detects the instance type. However, it does not explicitly state when to use this tool over alternatives like server_info or cloud_list_instances, nor any exclusions or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_list_instancesA

列出阿里云实例(ECS + 轻量应用服务器 SWAS)和/或腾讯云实例(CVM 云服务器 + Lighthouse 轻量应用服务器)。SWAS 会自动扫描多个区域查找实例

ParametersJSON Schema
NameRequiredDescriptionDefault
providerNo云服务商: aliyun(阿里云), tencent(腾讯云), all(全部)all

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal one useful behavioral trait: SWAS automatically scans multiple regions, implying a broader and potentially slower search. However, it fails to state whether the operation is read-only, whether authentication is required, or how results are handled if no instances are found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long with zero redundancy. It front-loads the core action (listing instances) and immediately enumerates the supported cloud providers and instance types. The final clause about SWAS region scanning adds important detail without bloating the text. This is an efficiently structured description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and no annotations, and the description does not indicate what data is returned for each instance, whether pagination is applied, or what error handling looks like. Given the tool's simplicity (one optional parameter), this is a moderate gap. The description does confirm the scope of the listing, so it is not entirely incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides full coverage for the single parameter ('provider'), including an enum and description. The tool description repeats the provider names but adds no new semantic information about parameter behavior, such as the effect of choosing 'all' or the format of the provider value. This meets the baseline expected when schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it lists Alibaba Cloud instances (ECS + SWAS) and/or Tencent Cloud instances (CVM + Lighthouse), using a specific verb and enumerating exact resource types. It also notes that SWAS automatically scans multiple regions, which further specifies the tool's scope. This provides a clear, unambiguous purpose that distinguishes it from generic server listing tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus alternatives like server_list or cloud_instance_info. It does not mention any exclusions, conditions, or alternatives, leaving the agent to infer usage solely from the tool's name. This is a notable gap given the many sibling tools present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cos_check_public_readA

综合检查腾讯云 COS 存储桶是否对匿名(未授权)开放读:同时校验桶 ACL 与桶策略是否包含匿名读授权。用于上线前安全自检,确认私有证件照等敏感对象不会泄露。

ParametersJSON Schema
NameRequiredDescriptionDefault
bucketYes存储桶名称
regionNo存储桶地域,不填则用全局配置 region

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It clearly signals a non-mutating inspection via '检查/校验/自检' and discloses exactly what is evaluated (ACL and policy for anonymous read). It does not mention required credentials or explicit 'no modification' wording, but the read-only intent is strongly evident.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense, front-loaded sentence with no filler: it states the action, the exact check scope, and the intended use case. Every clause contributes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a simple two-parameter check: purpose, scope, and use case are covered. There is no output schema, so return-value shape is left implicit, but '是否...开放读' strongly implies a boolean/verdict result, which is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters ('bucket', 'region') have adequate descriptions. The tool description adds no parameter-specific detail beyond the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a precise action—'综合检查' a COS bucket for anonymous read access—and explicitly scopes it to both bucket ACL and bucket policy. This clearly distinguishes it from sibling tools like cos_get_bucket_acl and cos_get_bucket_policy, which inspect only one source.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States a concrete usage context: pre-launch security self-check to confirm private sensitive objects will not leak. It does not explicitly name when to prefer the individual ACL/policy sibling tools, but the '同时校验' phrasing implies those are for single-source checks, so the guidance is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cos_get_bucket_aclA

获取腾讯云 COS 存储桶的访问权限(ACL),包含 ACL 级别与各项授权(读/写/ACP/完全控制)。用于确认桶是否对匿名开放读。

ParametersJSON Schema
NameRequiredDescriptionDefault
bucketYes存储桶名称,例如 campusbuzz-images-1312192644
regionNo存储桶地域,例如 ap-guangzhou(不填则用全局配置 region)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It clearly indicates a read operation ('获取') and describes what information is returned, but it does not disclose potential error conditions, permission requirements, or whether the ACL data is always present. Basic behavioral context is present, but depth is limited.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler. The core function is stated first, the output contents are listed, and the intended use case is appended. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter read-only tool with no output schema, the description gives enough context: what is returned and why it would be used. It does not describe response formatting, but that is not essential here. A dedicated alternative for public-read checks exists but is not mentioned, slightly reducing completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters (bucket and region) with examples and defaults. The description adds no additional parameter semantics beyond what the schema provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: fetching a Tencent Cloud COS bucket's ACL, including ACL level and grants (read/write/ACP/full control). This is clear and distinct enough from tool names like cos_get_bucket_policy, though it does not explicitly name or contrast sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a concrete use case: confirming whether the bucket allows anonymous read access. However, it does not say when not to use this tool or mention dedicated siblings like cos_check_public_read or cos_get_bucket_policy, leaving the agent to infer routing correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cos_get_bucket_policyA

获取腾讯云 COS 存储桶的桶策略(Bucket Policy)。用于检查是否存在向匿名主体授予读权限的策略。

ParametersJSON Schema
NameRequiredDescriptionDefault
bucketYes存储桶名称
regionNo存储桶地域,不填则用全局配置 region

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of conveying behavior. '获取' and '用于检查' clearly indicate a read-only operation, but the description does not disclose permission requirements, error conditions, or behavior when no bucket policy exists. This is acceptable for a simple getter but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. The operation is stated first, and the use case follows immediately, making it easy to scan and process.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read-only tool with full schema coverage, the description covers the main purpose and a common use case. It is complete enough for selection and invocation, though it leaves return-value details and edge cases unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents the bucket name and optional region with a default behavior. The description adds no additional parameter-level detail, so it meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('获取') and identifies the exact resource ('存储桶的桶策略'), and adds the practical purpose of checking for anonymous read grants. It is clear, but it does not explicitly differentiate from the sibling cos_check_public_read, which may overlap in intent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives a concrete use case: verifying whether any policy grants anonymous principals read access. This provides context for when to call the tool, though it does not state when to prefer alternatives such as cos_check_public_read or cos_get_bucket_acl.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cos_set_bucket_privateA

将腾讯云 COS 存储桶 ACL 设为「私有读写」(覆盖式 PUT,ACL='private')。用于修复因「公有读」导致敏感对象可被匿名访问的安全风险。

ParametersJSON Schema
NameRequiredDescriptionDefault
bucketYes存储桶名称
regionNo存储桶地域,不填则用全局配置 region

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It discloses that this is an overwriting PUT operation that replaces the bucket ACL, and explains the security rationale. It could further warn about the impact on intentionally public content, but the core mutating behavior and result are clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The first sentence states the exact operation and mechanism; the second gives the practical use case. It is front-loaded and every clause contributes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, parameters are fully schema-documented, and the description explains both the action and the security context. It does not describe the response or post-verification steps, but for a straightforward ACL-setting operation the description is sufficiently complete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema. The description adds no additional parameter-level detail, which is acceptable given the schema fully handles parameter semantics. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: it explicitly sets the COS bucket ACL to private read/write via an overwrite PUT with ACL='private'. It clearly distinguishes itself from the read-only siblings like cos_get_bucket_acl and cos_check_public_read by stating the mutating action and target state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: it is meant to remediate the security risk where public-read access allows anonymous access to sensitive objects. It does not explicitly state when not to use it or mention alternative/complementary tools, but the intended scenario is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

db_list_databasesA

列出 MySQL 服务器上所有数据库

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseYes通过哪个数据库配置的连接来查询(用于获取连接信息)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The word 'list' implies a read-only operation, which is useful context given that no annotations are provided. However, the description does not explicitly state that no data is modified, what the return value looks like, or whether special connection permissions are required. It is adequate but not richly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence with no filler or redundant content. It conveys the essential operation efficiently, which is ideal for a simple listing tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one well-documented parameter and no output schema, the description is mostly sufficient. It clarifies the scope ('all databases') and the server type ('MySQL'). It could have added explicit return-format details, but the operation is straightforward.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description does not need to compensate. The tool description itself does not elaborate on the 'database' parameter, but the input schema already explains that it refers to the connection configuration. This meets the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (list) and the resource (all databases on the MySQL server), so an agent can quickly understand the tool's core function. However, it does not explicitly differentiate from sibling tools like db_list_tables or db_query, though the resource scope is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for enumerating databases on a MySQL server, but it provides no explicit guidance on when to use it instead of db_query, db_list_tables, or other listing tools. No exclusions or alternative selection criteria are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

db_list_tablesA

列出指定数据库中的所有表及其行数估算

ParametersJSON Schema
NameRequiredDescriptionDefault
dbNameNo要查询的数据库名(可选,默认使用 DATABASES 配置中的 database)
databaseYes数据库配置名称

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It usefully discloses that row counts are estimates rather than exact values, which is meaningful for an agent. However, it does not explicitly state read-only behavior, permission requirements, or response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the action and target, with no filler or repetition. It is appropriately concise for a simple listing tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity listing tool with fully documented parameters and no output schema, the description conveys the essential return content: tables and row-count estimates. It could be slightly more explicit about the database config name versus actual database name distinction, but the schema already covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both database and dbName already documented clearly. The description adds no parameter-level detail beyond the generic phrase 'specified database', so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('列出' / list) and a precise resource: all tables in a specified database, including their row-count estimates. This clearly distinguishes it from siblings like db_list_databases (databases vs. tables) and db_query (querying vs. listing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives such as db_query or db_list_databases, and no exclusions or prerequisites are mentioned. The intended usage is only implied by the tool name and general wording.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

db_queryB

在指定数据库上执行 SQL 查询(SELECT/INSERT/UPDATE/DELETE)。只读查询建议添加 LIMIT

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes要执行的 SQL 语句。只读查询建议添加 LIMIT 子句
maxRowsNo最大返回行数,默认 100
databaseYes数据库名称,对应 .env 中 DATABASES 配置的 name 字段

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose that the tool can perform writes and deletes (INSERT/UPDATE/DELETE) and hints at large result sets via the LIMIT recommendation. However, it omits important behavioral context such as whether mutations are immediately committed, whether confirmation is required, or what the response looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief, front-loaded with the core purpose, and contains no filler. The LIMIT recommendation is useful but slightly redundant with the schema description, so it does not earn a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter tool with fully documented schema properties, this description is mostly adequate. Missing context includes the return format for writes, error behavior, and how this tool relates to the specialized database listing siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters. The description adds no new parameter-level semantics; the LIMIT advice is also present in the query parameter description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it executes SQL queries on a specified database, listing the supported statement types (SELECT/INSERT/UPDATE/DELETE). It implicitly differentiates from sibling list-only tools like db_list_databases and db_list_tables, though it does not explicitly name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance is recommending LIMIT for read-only queries. There is no explicit direction on when to choose this generic SQL tool over specialized siblings, nor any when-not-to-use guidance for potentially destructive operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deploy_projectA

将项目部署到远程服务器。支持 git pull、npm install、构建、PM2/Docker 重启,以及自定义脚本(script)部署

ParametersJSON Schema
NameRequiredDescriptionDefault
branchNoGit 分支名称(仅 git-pull 方式生效)main
methodNo部署方式: git-pull(拉取代码), upload(上传文件), docker(镜像更新), script(执行自定义脚本)git-pull
serverYes目标服务器名称
skipBuildNo跳过构建步骤
projectPathYes项目在服务器上的绝对路径,如 /data/www/myapp
skipRestartNo跳过重启步骤
buildCommandNo构建命令,默认使用 .env 中 DEPLOY_BUILD_COMMAND 或 'npm install && npm run build'
scriptCommandNomethod=script 时的远程命令/脚本(在 projectPath 目录下执行),如 bash /tmp/deploy_backend.sh
restartCommandNo重启命令,默认使用 .env 中 DEPLOY_RESTART_COMMAND 或 'pm2 restart app'

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals meaningful behavior beyond the name: git pull, npm install, build, PM2/Docker restart, and custom script execution. With no annotations, it still does not disclose side effects, prerequisites such as credentials, or the risk of restarting/overwriting remote services, so it only partially carries the transparency burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence conveys purpose and key capabilities with no filler or repetition. It is compact but informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 9 parameters and 4 distinct methods, the description does not explain orchestration (e.g., how build/restart interact with each method, whether upload requires a source path, or what the tool returns). No output schema is provided, so an agent would struggle to predict response format or side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The prose adds no parameter-level meaning beyond summarizing methods already documented in the enum description (git-pull, upload, docker, script).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action and object: '将项目部署到远程服务器' (deploy a project to a remote server), then enumerates supported deployment methods. This clearly differentiates it from siblings like deploy_status (status checking) and server_exec (generic command execution).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: this is the deployment tool for projects. However, it does not explicitly state when to prefer it over server_exec or how to choose among the four methods in terms of use cases, leaving the agent to infer routing from the method names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deploy_statusA

查看远程服务器上的项目部署状态:Git 状态、PM2/Docker 进程、端口监听等

ParametersJSON Schema
NameRequiredDescriptionDefault
serverYes目标服务器名称
projectPathYes项目在服务器上的路径

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It signals a read-only action via the word '查看' (view) and names the status areas observed. However, it does not disclose requirements like SSH access, potential side effects, or the response format, leaving gaps beyond what is stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise sentence that front-loads the core purpose and immediately provides specific examples of what is checked. There is no redundant wording or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with only two simple parameters and no nested objects, the description is largely complete: it states the operation, the target (remote server/project), and the kinds of status supplied. The only missing piece is an explicit return format, but the informational content is sufficient for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes both parameters (server name and project path) with 100% coverage, so the baseline is 3. The description adds no additional parameter-level meaning, but it also does not need to given the schema's completeness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function—viewing deployment status on a remote server—and enumerates concrete items inspected (Git status, PM2/Docker processes, port listening). This specific verb-plus-resource phrasing distinguishes it from related siblings like deploy_project or server_exec.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a clear usage context: inspect deployment state for a project on a given server. It does not explicitly list alternatives or when-not-to-use, but the scope is unambiguous enough that an agent can select it appropriately without confusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_create_recordA

为指定域名创建一条解析记录(如 A/CNAME/TXT/MX 等)

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNoTTL(秒),不填则跟随域名默认设置
typeYes记录类型,例如 A / CNAME / TXT / MX / AAAA
valueYes记录值,例如 1.2.3.4 或 target.example.com
domainYes域名,例如 example.com
subDomainYes子域名前缀,例如 www(或用 @ 表示根域名)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden of behavioral disclosure. It only states that a record is created, but does not mention idempotency, duplicate handling, propagation time, whether existing records are affected, or authorization requirements. For a mutating tool this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that front-loads the core action and resource. Every word earns its place and there is no redundant scaffolding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema fully documents all five parameters, and the purpose is clear. However, the tool is a mutation with no annotations and no output schema, so an agent is left without guidance on expected return values, failure modes, or side effects. It is minimally sufficient but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is already documented. The description adds only the record-type examples, which largely overlap with the schema's own examples. It does not add meaningful semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('创建') and resource ('为指定域名创建一条解析记录'), and gives concrete record types (A/CNAME/TXT/MX). This makes it clearly distinct from sibling tools like dns_delete_record, dns_list_records, and dns_list_domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word '创建' implies the tool is for adding a DNS record, and siblings like dns_delete_record and dns_list_records provide contrast. However, the description does not explicitly state when to use this tool versus alternatives, nor mention any prerequisites or restrictions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_delete_recordA

删除指定域名下的一条解析记录(按记录ID,可用 dns_list_records 查询 ID)

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes域名,例如 example.com
recordIdYes要删除的解析记录 ID(通过 dns_list_records 获取)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description itself must convey the behavioral profile; the word 删除 makes the destructive nature clear and the schema provides exact parameters. It does not mention irreversibility or error behavior when the record ID is invalid, so it is adequate but not richly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence leads with the action, then specifies the scope and provides the ID lookup pointer. Every element contributes value with no redundant text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter delete tool with fully documented schema and a clear record-ID acquisition path, the description is nearly complete. The main missing context is failure behavior and explicit irreversibility, which would matter more with additional complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents both parameters fully (100% coverage), so the baseline is 3. The description reinforces that recordId comes from dns_list_records but adds no new parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb (删除) and resource (解析记录), scoping the action to a single record under a specified domain by record ID. This clearly differentiates it from dns_create_record and dns_list_records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete usage context: delete by recordId under a domain, and explicitly points to dns_list_records as the way to obtain the record ID. It does not enumerate when-not-to-use cases, but the operation is unambiguous enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_list_domainsA

列出腾讯云 DNSPod 中托管的所有域名,以及每个域名的解析记录数

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full burden of behavioral disclosure. It clearly implies a read-only operation via the verb 'list' and specifies the output includes record counts, but it does not explicitly state whether any authentication is required, whether results are paginated, or any potential side effects. For a simple read tool, the implicit read-only nature is a reasonable baseline, but richer disclosure about output size or rate limits would be better.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the action and resource. Every word earns its place, and there is no redundancy or filler. It conveys both the scope (all domains) and an additional detail (record count) efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list tool with no annotations and no output schema, the description is entirely sufficient. It tells the agent exactly what the tool does and what to expect in the return (domains plus their record counts). There is no missing information required to invoke it correctly, and the simplicity of the tool lowers the burden on the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description does not need to elaborate on parameter meanings, and it does not attempt to. The mention of record counts is output-related rather than parameter-related, which is outside this dimension. No gaps exist since there are no inputs to document.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('列出' = list) and a precise resource ('腾讯云 DNSPod 中托管的所有域名' = all domains hosted in Tencent Cloud DNSPod). It adds a distinguishing detail—each domain's record count—which separates it from siblings like dns_list_records and cdn_list_domains without needing to open schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention dns_list_records for records or cdn_list_domains for CDN domains, nor does it state any conditions or exclusions. Usage must be inferred purely from the resource name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_list_recordsA

列出指定域名下的所有解析记录,包含记录ID、子域名、类型、值、TTL 与状态

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes要查询的域名,例如 example.com

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses that this is a read/list operation and what fields the result includes, which is helpful. However, it does not mention authentication needs, error behavior for invalid domains, pagination, or whether the list is complete/untruncated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, information-dense sentence that leads with the core action and domain scope, then lists the returned fields. Every part earns its place with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter list operation, the description is nearly complete: it states the input, the result scope, and the returned fields. It is slightly lacking in usage caveats and behavioral details, but nothing critical is missing for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides full coverage for the single parameter with an example ('example.com'). The description adds no additional semantic detail about the domain parameter beyond what the schema states, so it sits at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('列出') and resource ('所有解析记录') scoped to a domain, and enumerates the returned fields (record ID, subdomain, type, value, TTL, status). This clearly distinguishes it from sibling tools like dns_list_domains, dns_create_record, and dns_delete_record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: when you need all DNS records for a given domain. However, it does not explicitly state when to prefer this tool over dns_list_domains, nor does it mention that creation/deletion are handled by separate tools. No exclusion or alternative-condition guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

file_listA

列出远程服务器上指定目录的文件和子目录

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes远程目录路径,如 /data/www 或 /var/log
serverYes目标服务器名称

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It correctly signals a read-only listing operation, but does not disclose additional behaviors such as whether the listing is recursive, includes hidden files, or what exact format the output takes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that clearly communicates the tool's function without any unnecessary words or filler. It is well-structured and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool, the description conveys the core functionality. However, with no output schema and no annotations, it would benefit from clarifying what the returned list contains (e.g., names, full paths, file types) and whether any special permissions are needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the two parameters (path and server) are already fully documented in the schema. The description itself adds no parameter-specific semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('list') with a clear resource ('files and subdirectories in a specified directory on the remote server'). It clearly distinguishes file_list from sibling tools like file_read, file_write, and server_exec.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied by the description — an agent can infer to use this tool when directory contents are needed. However, there is no explicit guidance about when to choose it over alternatives like file_search or server_exec, nor any exclusion scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

file_readC

读取远程服务器上的文件内容。支持文本文件(代码、日志、配置等)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes远程文件的绝对路径
tailNo仅读取最后 N 行(类似 tail -n),适用于日志文件
serverYes目标服务器名称

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

没有 annotations,描述承担全部行为披露责任。除'支持文本文件'外,未说明二进制文件处理、文件编码、大小限制、输出格式或权限要求;'读取'虽暗示只读,但未显式声明副作用或边界行为。

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

描述仅两句话,首句直接点明核心功能,第二句补充支持的文件类型,没有冗余内容。信息密度高且结构清晰。

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

工具没有 output schema 且没有 annotations,仅有简短描述,缺少返回内容、失败条件、权限要求等上下文。sibling tools 中的 file_write、file_search 等需要说明边界,当前描述不足以让 agent 完整判断调用场景。

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

input schema 覆盖了全部 3 个参数(server、path、tail)且每个都有描述,覆盖率 100%。描述没有在 schema 之外增加参数含义,'支持文本文件'与 tail 的日志场景略有关联,但未提供额外参数语义。

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

描述明确说明'读取远程服务器上的文件内容',动词和资源清晰,并补充了支持文本文件类型。虽然未显式区分 file_list、file_search、file_write 等 sibling tools,但'读取'这一核心语义已足够明确。

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

描述没有说明何时使用 file_read 而非 file_search、file_list 或 server_exec,也未提及 tail 参数的使用场景(虽然 schema 中有)。仅通过'读取文件'暗示用途,缺少工具选择相关的指导。

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

file_writeA

将内容写入远程服务器上的文件(会覆盖已有文件)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes远程文件的绝对路径
serverYes目标服务器名称
contentYes要写入的文件内容

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It explicitly discloses the destructive overwrite behavior ('会覆盖已有文件'), which is the most important safety concern. It does not mention permissions, file creation, or error cases, but the overwrite warning adds significant value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the action and includes the key side-effect warning in parentheses. There is no wasted wording, and the overwrite caution is prominently placed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential purpose and the critical overwrite side-effect, which an agent needs to know before invoking the tool. It lacks details about return values or error conditions, but for a straightforward file-write operation, it is reasonably complete given the moderate complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all three parameters (server, path, content) with descriptions at 100% coverage, so the schema already explains what each parameter means. The description repeats the concept of content and remote server but adds no additional semantic detail beyond the schema's baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('write') and resource ('remote server file'), and explicitly notes the overwriting behavior. This clearly distinguishes it from sibling read concerns like file_read, file_list, and file_search, so an agent can identify it as the write operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when you need to write content to a remote file, but provides no explicit exclusions or alternatives. It does not compare with server_exec, which could also modify files, leaving the when-not-to-use guidance implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

server_addA

运行时注册一个新的 SSH 服务器:写入 .env 并更新内存缓存,无需重启连接器即可被 server_exec 使用

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYes服务器公网 IP 或域名
nameYes服务器名称(唯一标识),如 Tencent-LH
portNoSSH 端口,默认 22
passwordNo密码(与 privateKey 二选一)
usernameYes登录用户名,如 root 或 ubuntu
privateKeyNo私钥本地绝对路径,如 C:/Users/xxx/.ssh/id_ed25519

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It explicitly discloses key side effects: persisting to .env and updating the in-memory cache, plus the operational benefit of no restart required. While it does not detail error cases or security implications, the main behavioral traits are transparently stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, dense sentence that front-loads the main action ('register a new SSH server') and immediately states the important side effects. Every word earns its place, with no redundancy or tangential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 6 parameters, no output schema, and no annotations. The description covers the core purpose and side effects, but omits guidance on conflict resolution (e.g., duplicate name) or success feedback. While the schema handles parameter details, the lack of outcome/error behavior means the description is adequate but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The tool description does not add parameter-specific meaning beyond what the schema already conveys (e.g., host, username, port, password vs privateKey). The description's focus is on the operation, not the parameters, so it neither compensates nor degrades beyond baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('register a new SSH server at runtime') and the resource (SSH server), plus mentions the side effects (write .env, update cache). It distinguishes itself from siblings like server_list and server_exec by focusing on the addition operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a use case: add a server without restarting the connector, making it available to server_exec. However, it does not explicitly contrast with alternatives (e.g., manually editing .env) or provide when-not-to-use conditions. The context is clear but not fully elaborated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

server_execA

在指定的远程服务器上执行 Shell 命令。返回 stdout、stderr 和退出码

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo命令执行的工作目录(可选)
serverYes目标服务器名称,对应 .env 中 SSH_SERVERS 配置的 name 字段
commandYes要在远程服务器上执行的 Shell 命令
timeoutNo命令超时时间(毫秒),默认 60 秒,最大 10 分钟

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the return format (stdout, stderr, exit code), which is helpful. However, with no annotations to rely on, it fails to mention important behavioral traits such as the potentially destructive or irreversible effects of executing commands on a remote server. There is no caution about side effects, permissions, or error-condition behavior, which is a significant gap for a remote execution tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that clearly states the action and the return values. There is no wasteful text, and the most important information (what the tool does) appears first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the basics: what it does and what it returns. However, it omits critical safety context about the risks of executing arbitrary remote commands, such as potential server modifications or irreversibility. For a tool that can run arbitrary shell commands, this is a notable gap. The schema provides parameter details, but the description does not give enough behavioral context for safe and correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters are fully described in the schema, so the baseline is 3. The description itself does not add any parameter-specific meaning beyond a vague reference to 'specified remote server' and 'Shell command', which the schema already captures.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('execute') and a clear resource ('Shell commands on a specified remote server'), and explicitly lists the return values (stdout, stderr, exit code). This clearly distinguishes it from sibling file, deploy, and database tools, so an agent can identify its purpose without confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for running arbitrary shell commands, but it does not provide explicit guidance on when to use this tool versus alternatives like deploy_project or file_read. There are no exclusion criteria or mentions of alternative tools, leaving the agent to infer the appropriate context from the tool's name and short description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

server_infoA

获取远程服务器的系统信息:操作系统、CPU、内存、磁盘使用情况

ParametersJSON Schema
NameRequiredDescriptionDefault
serverYes目标服务器名称

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden of behavioral disclosure. It indicates a retrieval-style operation and names the output categories, which is useful, but it does not explicitly confirm non-mutating behavior, authorization requirements, failure modes, or how the information is returned. Some transparency is present, but not full.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence that front-loads the action and resource, then lists the information categories with no filler. Every word contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only info tool with no output schema, the description covers the essential call contract: which server to pass and what output categories to expect. It does not describe formatting, units, or error behavior, but given the low complexity, the description is substantially complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% because the only parameter, 'server', is already described as '目标服务器名称' (target server name). The description adds no additional parameter semantics, such as accepted formats, constraints, or how to discover valid server names, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('获取', get) and a specific resource ('远程服务器的系统信息', remote server system information), then enumerates the exact categories returned: OS, CPU, memory, and disk usage. This is clearly a read-only server details tool and is readily distinguishable from siblings like server_list and server_exec.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when system-level information about a target server is needed, but it does not explicitly state when to prefer this over related tools such as server_list or cloud_instance_info. It also does not mention prerequisites, such as obtaining a valid server name from server_list, or provide any when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

server_listA

列出当前 MCP 配置中所有可连接的服务器

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

没有任何注解,因此描述承担行为说明责任。动词“列出”隐含只读操作,且“可连接的”增加了筛选条件,但描述未说明返回格式、是否会真的检测连接可用性、是否需要权限,以及是否可能因网络检查而变慢。对于简单列表工具已提供基本行为,但还不够充分。

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

描述是一句完整且无冗余的中文单句,核心信息动作和对象都在句首,没有任何浪费篇幅的内容,清晰易读。

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

工具本身较简单且无参数,描述给出了列取范围和连接性条件,但缺少使用场景指引、输出形态说明以及与其他服务器相关工具的区分。对于代理选择工具而言,基本可用但仍有明确缺口。

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

工具没有参数,输入模式为空,因此不存在参数语义负担。按基线规则,0 参数工具应给予 4 分,描述无需补充参数说明。

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

描述明确使用动词“列出”并明确指出对象是“当前 MCP 配置中所有可连接的服务器”,资源范围和动作都很清晰。与同组的 server_info(单服务器信息)相比,通过“所有”明确了枚举型操作,能够有效区分用途。

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

描述只说明工具能做什么,没有说明何时应该使用它、何时不应该使用它,也没有提及替代工具如 server_info 或 server_exec 的选择条件。调用场景完全依赖名称和用户推断,缺乏显式指引。

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 26 tool updatesv1.0.0
    • First observedcdn_list_domains
    • First observedcdn_refresh
    • First observedcdn_task_status
    • First observedcloud_instance_info
    • First observedcloud_list_instances
    • First observedcos_check_public_read
    • First observedcos_get_bucket_acl
    • First observedcos_get_bucket_policy
    • First observedcos_set_bucket_private
    • First observeddb_list_databases
    • First observeddb_list_tables
    • First observeddb_query
    • First observeddeploy_project
    • First observeddeploy_status
    • First observeddns_create_record
    • First observeddns_delete_record
    • First observeddns_list_domains
    • First observeddns_list_records
    • First observedfile_list
    • First observedfile_read
    • First observedfile_search
    • First observedfile_write
    • First observedserver_add
    • First observedserver_exec
    • First observedserver_info
    • First observedserver_list

TDQS

A3.5/5.0

Scored across 26 tools

Disambiguation4/5

Most tools are grouped by clear prefixes (server_, file_, dns_, cos_) and target distinct resources/actions. The only mild risk is the COS bucket-read cluster (get_acl, get_policy, check_public_read), where purposes overlap though descriptions differentiate them.

Naming Consistency4/5

The set follows a consistent [domain]_[operation] pattern in snake_case, such as dns_create_record and cdn_list_domains. Minor deviations like deploy_project (verb+object) and deploy_status (noun) keep it from being perfect.

Tool Count3/5

At 26 tools, this is on the heavy side, but the multi-domain scope (servers, deploy, DB, DNS, CDN, COS) means the count is borderline rather than excessive. Each tool has a clear function, though some consolidation could reduce the total.

Completeness4/5

The server covers core operations across its advertised domains: files, deployment, DB queries, DNS records, CDN refresh, and COS security audit/remediation. Gaps such as DNS record update, server removal, and file delete/upload are missing but can be worked around via existing tools or direct exec.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage Coolify infrastructure including servers, applications, databases, deployments, and 80+ one-click services through 98 comprehensive tools for both cloud and self-hosted instances.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides AI agents with natural language control over AWS, Azure, GCP, and Alibaba Cloud infrastructure through dynamic API discovery and execution. Supports 51,900+ cloud operations and includes OpenTofu integration for complete infrastructure lifecycle management.
    3
    MIT