Skip to main content
Glama

CloudOps MCP Server

Unified cloud operations MCP (Model Context Protocol) server that gives AI agents full-stack cloud operations capabilities.

One MCP Server manages Alibaba Cloud + Tencent Cloud at the same time, covering 6 major scenarios: server management, project deployment, database querying, file operations, cloud instance query, DNS/CDN management — with 26 tools.

Version

Related MCP server: Coolify MCP Tools

Documentation Navigation

  • README.md (this file): The connector's master document — tool list, one-click installation (copy & paste to AI), manual installation, configuration wizard, architecture, tool details, extension guide.

  • OPERATIONS.md: Real-world operations playbook (P1–P8) that collects "goal + flow" runbooks such as "get credentials / upload SSH public key / set up NOPASSWD sudo / change CDN origin". Check this first when you need to manually operate a cloud console.

  • CHANGELOG.md: Version release history.


Tool Overview (26 Tools)

Module

Tools

Description

Server management

server_exec, server_info, server_list, server_add

SSH remote command execution, system info, server list, runtime server registration

Project deployment

deploy_project, deploy_status

Git pull/build/restart, Docker deploy, custom script deployment

Database

db_query, db_list_tables, db_list_databases

SQL query, table management (SSH tunnel supported)

File management

file_list, file_read, file_write, file_search

Remote file list/read/write/search

Cloud platform

cloud_list_instances, cloud_instance_info

Alibaba Cloud ECS + SWAS (lightweight) + Tencent Cloud CVM + Lighthouse (lightweight)

DNS/CDN

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

Tencent Cloud DNSPod records + CDN domains/cache purge/purge task progress query

The repository is public, so any AI tool that supports third-party MCP can clone and use it directly. Copy the text below as-is to your AI assistant, the assistant will do everything itself: clone → read docs → install dependencies → configure → register the connector → verify 26 tools. Works with mainstream agents such as WorkBuddy, ClickUp Agent, Claude Code, Codex CLI. Faster than manual installation — use this first.

请帮我安装并学会使用 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 已排除)。

Ways to register on each client

Replace the <path> below with your actual clone path (for example E:/WorkSpace/cloud-ops-mcp, /home/user/cloud-ops-mcp). .env is loaded automatically according to the source path (not dependent on the working directory of the process), so the following registration methods do not require a separate working directory.

Client

How to register

Config location

WorkBuddy

Edit JSON (below)

~/.workbuddy/mcp.jsonmcpServers

Hermes Agent

Edit YAML (below)

~/.hermes/config.yamlmcp_servers

Claude Code

One command

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

Codex CLI

Edit TOML (below)

~/.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 (one command — you need to either cd into the project folder or run it inside the project):

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"]

After registration, restart the AI client (or run its MCP reload command, such as Hermes /reload-mcp) and you will see the 26 tools including server_exec, deploy_project, db_query, cdn_refresh, and others.

Manual Installation (Quick start)

The following are the manual installation steps (clone → configure → register → verify). Want the faster route? Use the "One-Click Installation (copy and paste to AI)" above and let the AI do it automatically.

1. Clone & Install

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

The project uses [tsx]( https is automatically installed as the TypeScript runtime etc.; no compile step required.

2. Configure

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

Minimal configuration (SSH only):

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

For full options, see .env.example. Multiple servers, databases, and Alibaba Cloud/Tencent Cloud AK are supported.

💡 Runtime server registration: in addition to editing SSH_SERVERS manually in .env, you can also use the server_add tool to register a server at runtime (it writes to .env and hot updates the in-memory cache, no connector restart needed). See "Tool Details → server_add" below.

3. Register to the MCP client (any AI tool that supports third-party MCP)

This connector is not WorkBuddy-only. Any AI tool will work as long as it supports two things:

  1. the ability to install the kimi-webbridge skill (for fallback console automation for consoles without clean public API);

  2. the ability to install third-party MCP connector (stdio protocol). Common options include WorkBuddy, Claude Desktop, Cursor, VS Code (Cline/Continue extensions), etc.

Universal registration snippet (replace /absolute/path/to/cloud-ops-mcp with your real path):

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

Config file locations for each client:

Client

Config file path

WorkBuddy

~/.workbuddy/mcp.json (key 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 <path>/src/index.ts (written to ~/.claude.json)

Codex CLI

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

Hermes Agent

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

Cursor

~/.cursor/mcp.json (or project .cursor/mcp.json)

VS Code (Cline/Continue)

MCP settings in the extension settings

G> The cwd must point to the project root, because the MCP Server needs to load .env and node_modules from that directory. By default the Configuration Wizard does not rewrite any client's MCP config; if you want the wizard to write it automatically, set the environment variable CLOUD_OPS_MCP_CONFIG_PATH to the target config file path (optional).

4. Verify

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

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

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

The Configuration Wizard is a Web UI that lets you visually edit the whole .env in the browser. It can both automatically fetch (via Kimi WebBridge scanning the cloud console) cloud instances and credentials, and manually fill all fields such as SSH private-key path, remote login password, database credentials, deployment defaults, etc. Users with zero background can still get started comfortably.

You can always edit .env directly at any time (see manual playbook in OPERATIONS.md); the wizard is only a friendlier entry point, not the only way.

Which config do you need to have (required / optional)

Config item

Required / Optional

Purpose

How to fill

SSH server (SSH_SERVERS or SSH_HOST)

Required

Remote commands / deployment / DB tunneling / SSH connections

wizard auto-fetch or manual

Databases (DATABASES)

Optional

MySQL queries (SSH tunnel supported)

manual only

Alibaba Cloud (ALIBABA_CLOUD_*)

Optional

Query ECS/SWAS instances

wizard auto-fetch or manual

Tencent Cloud (TENCENT_CLOUD_*)

Optional

Query CVM/Lighthouse, CDN purge, DNSPod

wizard auto-fetch or manual

Deployment defaults (DEPLOY_DEFAULT_*)

Optional

default build/restart commands for deploy_project

manual only

Only SSH servers is required; cloud API keys, databases, deployment defaults are config-on-use. For a purely manual SSH-only workflow (e.g. using only server_exec + deploy_project) you can configure only the SSH server.

Prerequisites

What is Kimi WebBridge? it is used for the console operations that have no clean public API (for example, logging in by scanning a QR code into the cloud vendor console, reading AK/SK, some advanced CDN config). For things that already have a public API (credential config, CDN cache refresh, instance queries, etc.), automatic tools are preferred; Kimi WebBridge is just an optional fallback when no API exists.

Usage steps

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

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

Kimi WebBridge auto handling: npm run config automatically detects the daemon — if already running, it uses it; if installed but not running, it starts it; if not installed, it installs it automatically by the official command (Windows: irm https://cdn.kimi.com/webbridge/install.ps1 | iex; macOS/Linux: curl -fsSL https://cdn.kimi.com/webbridge/install.sh | bash) and then starts it. If automated installation fails or you prefer to install it manually, just use the commands above.

⚠️ The browser extension must be manually installed: the daemon can be installed automatically, but the browser extension (the part that takes over your real browser session) cannot. You need to install and log in manually from https://www.kimi.com/zh-cn/features/webbridge. WebBridge is only used as fallback etc. to auto-fetch cloud AK/SK; if it is not installed, the wizard still works for manual .env editing; it does not block you.

the abilities the cloud providers prompt you when creating credentials: both Alibaba Cloud and Tencent Cloud show a confirmation box advising you to use a RAM/sub-user Account rather than the main account key. The Configuration Wizard now recognises this prompt and auto-switches to the sub-user flow:

  1. Create a dedicated sub-user cloud-ops-mcp inside the RAM/GDPR console (with programmatic access).

  2. Generate an AccessKey for this sub-user, read KeyId/Secret.

  3. Try to attach the minimal privileges the plugin requires (ECS/SWAS/Lighthouse read-only, CDN purge, DNS manage records).

  4. Write the sub-user credential into .env, never the main account credential.

If the automatic policy attach fails, the wizard generates MANUAL_STEPS.md, containing the least-privileged policy JSON that you need to attach manually — complete it as instructed. All console UI detection signals are configurable lists false detection. In case of a detection failure, it defaults back to manual steps rather than treating the “clicked/created” as success.

Least privilege (not require full admin AdministratorAccess / QcloudAdministrator): for Alibaba Cloud use AliyunECSReadOnlyAccess / AliyunSWASReadOnlyAccess / AliyunCDNFullAccess / AliyunDNSFullAccess; for Tencent Cloud use QcloudCVMReadOnlyAccess / QcloudLighthouseReadOnlyAccess / QcloudCDNFullAccess / QcloudDNSPodFullAccess.

Idempotence when re-running the wizard (important)

The Configuration Wizard is safe to run repeatedly — it contains idempotence logic against “wrongAK / unused sub-user” and so on.

  1. Existing AKs will not be regenerated: if you already have ALIBABA_CLOUD_ACCESS_KEY_ID in .env, clicking “Alibaba Cloud auto config” will by default keep the existing configuration, skip the browser fetch, and log "already exists retained". If you really need to re-fetch, click the “Re-fetch” button (forced refresh).

  2. RAM/CAM sub-user auto reuse: the wizard always uses a sub-user named exactly cloud-ops-mcp. On a re-run it first checks whether that sub-user already exists — if so, it reuses it without creating another (Alibaba Cloud's CreateUser will directly return a duplicate name error, which is exactly the pain point of repeated runs).

  3. AccessKey rotation rather than accumulation: when re-using an existing sub-user, the wizard first cleans up any existing AccessKeys under that sub-user (best-effort), then creates a new one and writes it into .env, avoiding exceeding the quota of 2, or accumulating stale keys.

  4. Trace via a marker: If a RAM/CAM user was created/reused by the wizard, it will write ALIYUN_RAM_USER=cloud-ops-mcp into .env. To later completely remove it, delete the sub-user in the Alibaba RAM console (ensure not being used by this plugin anymore first).

In a nutshell: hitting “Auto-Config” repeatedly is safe — it either keeps, reuses, or rotates; it never creates extra sub-users or keys.

After configuration: stop the daemon

# 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

The Configuration Wizard is optional. You can always edit the .env file manually (see the manual playbook in OPERATIONS.md).

Configuration Wizard API

The wizard backend (Express) exposes the following endpoints for the frontend:

Endpoint

Method

Description

GET /api/daemon-status

GET

Check Kimi WebBridge daemon status

GET /api/get-config

GET

Read full config from current .env (SSH/DB/Cloud/deploy), for form fill-back

POST /api/save-config

POST

Accept full form, write entire value back to .env (including / variables / credentials / deployment), no more omitted

POST /api/auto-config-aliyun

POST

Auto config Alibaba Cloud (ECS + AK/SK)

POST /api/auto-config-tencent

POST

Auto config Tencent Cloud (CVM + AK/SK)

POST /api/check-login

POST

Check if the user is logged into the cloud console

POST /api/generate-config

POST

Legacy compatibility: The child changes need merge database.

POST /api/generate-config (today)

, and now merges into / retains the legacy behavior (added)

The full auto-flow (brief):

  • Alibaba Cloud: opens the ECS console → detects the login/s scan QR → extracts instance IP and name from the console list → goes to RAM API Keys → detects the “RAM user” popup and switches to the sub-user flow → obtains AK/SK → fills the form. Tencent Cloud: opens the CVM console → detects login / scans QR → extracts instances → goes to Tencent Cloud CAM API Keys → detects the popup and switches to the sub-user flow → obtains SecretId/Key → fills the form.

You can click the two clouds separately, the config will be merged into the same .env.

Notes

  1. Browser automation may need fine-tuning: cloud console page structures change. If auto-extraction fails, a page preview is shown for investigation.

  2. SecretKey may not be auto-extractable: some cloud security policies hide the Secret; in that case paste it manually.

  3. SSH key path: defaults to ~/.ssh/id_rsa in auto config; if you use a different path, change it in the preview (Windows users are advised to use an absolute path like /C:/Users/<LOCAL_USER>/.ssh/...).

  4. Multi-cloud merging: you can click Alibaba Cloud / Tencent Cloud buttons separately; both configurations are merged into the same .env.

Architecture

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 的控制台操作

Project Structure

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                    # 项目总文档(本文件)

Tool Details

server_exec — Remote command execution

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

server_add — Register SSH server at runtime

参数: 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 — Project deployment

参数: 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

参数: database(配置名), query(SQL), maxRows(默认100)
安全: 自动阻止 DROP/TRUNCATE/ALTER 等危险操作

file_read / file_write / file_search — File operations

file_read:   读取远程文件内容(支持 tail 模式用于日志)
file_write:  写入内容到远程文件(建议配合 sudo tee 使用)
file_search: 用 grep 搜索文件内容

cloud_list_instances — Cloud instance list

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

cdn_refresh — CDN cache refresh (automated, no console needed)

参数: 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 refresh task status query (new in v1.0.0)

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

More detailed "goal + actions" manual operation guides (obtaining keys, uploading SSH public key, establishing NOPASSWD sudo, CDN origin changes, etc.) are in OPERATIONS.md.

Common Usage Scenarios

The following examples show how a natural-language AI agent can drive the adapter:

  • Check server status — “Check the CPU and memory of Tencent-LH” → server_info → display the stage/agent.

  • Deploy a project — “Deploy myapp to Tencent-LH” → deploy_project (SSH pulls the latest code → build → restart).

  • Query a database — “Query the top 10 rows of the user table in prod-db” → db_query (via SSH tunnel connected to the database, dangerous SQL are intercepted automatically).

  • Manage cloud resources — “List all Lighthouse instances in Tencent Cloud Guangzhou” → cloud_list_instances tencent.

  • Refresh CDN — “Refresh cache for <YOUR_DOMAIN>” → cdn_refresh.

Supported Clouds

Wait, there is a trailing "## 支持的云平台" but no content in the source. We should not add any invented content. Only output the heading, but it feels incomplete. The user said input may be section of a longer doc, translate as given. So end with "## Supported Cloud Platforms" (if that heading appears at end). The input's final line was "## 支持的云平台". Yes. We need keep heading translated. Let's include that heading.

Платформа

Продукт

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 Tencent Cloud использует полный пакет tencentcloud-sdk-nodejs и обращается по пространствам имён (cvm / lighthouse), что позволяет избежать ошибки "Cannot find module" при подключении неустановленных подпакетов продуктов. Полный пакет и все подпакеты продуктов размещаются в optionalDependencies; их отсутствие не влияет на остальные функции.

Философия работы: автоматизация в приоритете, для ручных операций есть playbook

Границы проектирования коннектора (определены владельцем):

  1. Работа с публичными API 阿里云/腾讯云 — где есть чистый API (настройка ключей, обновление CDN, запросы экземпляров, разрешение DNS), приоритет отдаётся автоматизации с помощью инструментов.

  2. Подключение к облачным серверам по SSH для выполнения команд — регистрация через server_add + удалённое выполнение через server_exec.

  3. (Опционально) вызов браузерной автоматизации Kimi WebBridge — для операций в консоли, для которых нет публичного API (вход по QR-коду, чтение AK/SK, некоторые расширенные настройки CDN).

  4. При ручных операциях пользователя необходимо предоставить описание «цель + процесс» — если API-возможности нет, коннектор выдаёт стандартные шаги, которые человек выполняет в консоли.

Конкретные playbook (включая команды, пути в консоли, известные подводные камни) централизованно поддерживаются в OPERATIONS.md.

Функции безопасности

  • Аутентификация по SSH-ключу приоритетнее пароля

  • Запросы к базе данных автоматически блокируют опасные операции (DROP/TRUNCATE/ALTER)

  • Все чувствительные конфигурации (облачные AK, пути к SSH-приватным ключам) управляются через .env, .env исключён из .gitignore; сами файлы SSH-ключей храните в безопасном месте (например, ~/.ssh/), ссылайтесь на них по пути через поле privateKey, не включайте их в каталог проекта

  • Защита от SQL-инъекций (параметризованные запросы, ограничение размера набора результатов)

  • Механизм тайм-аута выполнения команд (по умолчанию 60 с, максимум 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. Создайте или расширьте обёртку SDK в src/clients/ (предпочтительно переиспользовать пространства имён полного пакета 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. Dates show when Glama detected each change.

  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
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

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rowanlin-dev/cloud-ops-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server