Skip to main content
Glama

monacloud-mcp

monacloud-mcp là MCP hợp nhất của MONA Cloud: cài một lần, đăng nhập một MONA Pass và dùng chung ví VND để quản lý tài khoản, chạy app/VPS, tạo Base beta thay Supabase, tích hợp MONA Pay, gửi email giao dịch bằng MONA Mail và đọc catalog MONA Agent ngay trong Claude Code, Codex hoặc Cursor.

Human đăng ký MONA Pass một lần, duyệt chi phí, thêm DNS khi cần, quét QR nạp ví do AI tạo và cung cấp OTP/KYC khi bắt buộc. Các bước tạo yêu cầu nạp, tạo tài nguyên, đọc trạng thái, cấu hình webhook, test và deploy được thiết kế để AI agent làm qua MCP.

0.8.1 — luật nạp ví đứng đầu instructions

Codex chỉ chắc chắn đọc 512 ký tự đầu của instructions MCP, nên luật "ví thiếu → AI tự gọi cloud_topup, in QR" được đưa lên đầu; mô tả hệ và APP_FLOW đặt sau. Kiểm thử 17/09: Claude Code (sonnet) và Gemini (Antigravity CLI) tự gọi cloud_topup và in QR khi người dùng nói "ví hết tiền, nạp 50k"; Codex chạy headless (codex exec) mặc định chặn mọi lời gọi MCP theo approval policy; thêm --approve-for-me thì Codex cũng tự gọi cloud_topup và in QR (kiểm 17/09). Codex tương tác thì duyệt lời gọi tool như bình thường.

Related MCP server: AgentPay

0.8.0 — Nạp ví ngay trong terminal

Ví thiếu tiền thì AI gọi cloud_topup(amount); MCP trả qr_ascii (QR VietQR chuẩn EMVCo/NAPAS in bằng khối đầy ██, Claude Code/Codex/Gemini CLI hiện được ngay; terminal nền sáng dùng qr_ascii_light, bản gọn qr_ascii_small; đã giải mã được bằng ZBar và OpenCV ở cả hai nền), qr_file (PNG tại ~/.config/monacloud/), qr_url (ảnh VietQR) cùng ngân hàng, số tài khoản, số tiền, nội dung chuyển khoản. Người dùng mở app ngân hàng quét màn hình, tiền vào tự cộng ví; AI gọi cloud_topup_status(topup_id) tới khi paid rồi làm tiếp. base64 không còn nằm trong text (tiết kiệm 15–25k token mỗi lần). Khi ví chung (billing) chưa nhận token hoặc merchant MONA Pay chưa cấu hình, cloud_topup tự chuyển sang đường compute /api/payments/vietqr (ví local, prefix VIBECLOUD, báo có tự cộng).

0.5.0 — MONA Base beta

Thêm cloud_base_create/list/get/delete/credentials cùng alias vibecloud_base_*. Base thay Supabase, chung MONA Pass/ví MONA Cloud và khớp app deploy. Sandbox chỉ ước tính, không provision; chờ Base provision-live trước khi publish package.

0.4.0 — Đưa thư mục hiện tại lên web

Prompt Claude Code: “Đưa dự án này lên MONA Cloud, dùng thư mục hiện tại”.

AI làm 99%: cloud_app_detect(local_dir) offline → đọc host và giá → sandbox nếu cần host mới → hỏi duyệt chi phí một lần → cloud_app_create(local_dir) → kiểm và trả URL. Có domain riêng thì cloud_app_domain_add và hướng dẫn CNAME. Human đăng ký MONA Pass qua device flow; hết credit 20k thì AI gọi cloud_topup và in QR, human chỉ quét.

Tool

Đầu vào / hành vi 0.4.0

cloud_app_detect

local_dir: stack, port, start, Dockerfile, build_type, tên env từ .env.example; không mạng

cloud_app_create

local_dir, name?, build_type?, env?, port?, domain?: ZIP → tạo source=upload → multipart → poll → {url, app_id, build, seconds}

cloud_app_deploy

app_id, local_dir?: có thư mục thì ZIP mới, upload, chờ rồi deploy; bỏ thư mục để dùng bản cũ

cloud_app_domain_add

app_id, host: gắn domain và nhận hướng dẫn CNAME

cloud_app_detect({ local_dir: "/absolute/path/to/project" })
cloud_app_create({ local_dir: "/absolute/path/to/project", name: "shop", sandbox: true })
// Sau khi đã duyệt chi phí
cloud_app_create({ local_dir: "/absolute/path/to/project", name: "shop" })
cloud_app_deploy({ app_id: "<app_id>", local_dir: "/absolute/path/to/project" })

ZIP tối đa 80 MiB, loại .env*, *.pem, .git, node_modules và symlink; áp dụng .gitignore/.dockerignore. dist được giữ mặc định. Git vẫn dùng repo_url như trước. Hợp đồng upload, giới hạn và cách tiếp tục job.

Yêu cầu

  • Node.js 20 trở lên.

  • Một MONA Pass có quyền dùng client monacloud-mcp.

  • MONA Pass, Billing, compute MONA Cloud và MONA Pay đã được cấu hình theo môi trường triển khai.

Cài và đăng nhập

Đăng nhập lần đầu bằng OAuth Device Authorization Grant:

npx -y monacloud-mcp login

Lệnh in URL tại pass.monacloud.vn và mã thiết bị. Sau khi xác nhận, offline refresh token được lưu tại ~/.config/monacloud/token.json; thư mục có mode 0700, file có mode 0600. Server tự refresh access token và không in token ra log.

Kiểm tra hoặc đăng xuất:

npx -y monacloud-mcp whoami
npx -y monacloud-mcp logout

Claude Code

claude mcp add monacloud -- npx -y monacloud-mcp

Codex (~/.codex/config.toml)

[mcp_servers.monacloud]
command = "npx"
args = ["-y", "monacloud-mcp"]

Cursor (.cursor/mcp.json)

{
  "mcpServers": {
    "monacloud": {
      "command": "npx",
      "args": ["-y", "monacloud-mcp"]
    }
  }
}

MCP client không cần giữ username/password sản phẩm. Có thể truyền PAT trực tiếp bằng MONACLOUD_TOKEN trong CI hoặc môi trường không dùng token store; không commit giá trị này.

Tool

Tên tool dùng snake_case để giữ tương thích với prompt MONA Pay cũ.

MONA Cloud

Tool

Công dụng

cloud_whoami

Hồ sơ MONA Pass hiện tại

cloud_balance

Số dư ví VND chung

cloud_ledger

Ledger nạp/trừ/hoàn tiền có cursor

cloud_topup(amount)

Tạo yêu cầu nạp, trả qr_ascii (in trong terminal), qr_file, qr_url, ngân hàng/số TK/số tiền/nội dung; tự fallback compute khi ví chung chưa sẵn sàng

cloud_topup_status(topup_id)

Trạng thái yêu cầu nạp (pending/paid) kèm số dư, để chờ tiền vào rồi làm tiếp

cloud_usage(period)

Usage theo tháng, có thể lọc sản phẩm

cloud_services

Gom VPS/database, VA và webhook MONA Pay

cloud_budget_set / cloud_budget_get

Đặt và đọc budget theo product/project/token

cloud_token_limit

Đặt spend limit cho PAT/token

cloud_open_console

Trả URL console chung

cloud_affiliate_link

Lấy mã, link giới thiệu, hạng và mức chia sẻ doanh thu; chỉ đăng sau khi người dùng duyệt và có disclosure

cloud_affiliate_stats

Đọc thống kê, số dư có thể nhận và tối đa 100 hoa hồng gần nhất

cloud_affiliate_claim(code)

Gắn mã giới thiệu vào tài khoản còn trong thời hạn nhận mã

MONA Pay

monacloud-mcp import monapay-mcp và re-export toàn bộ tool của package, không copy implementation. Dependency range là ^0.5.5; bộ dependency offline tại lần verify này là 0.5.5 với 47 tool MONA Pay, gồm các nhóm:

  • hồ sơ và nối ACB/VA bằng hai lần OTP;

  • payment profile, checkout, VietQR, sandbox transaction và đối soát;

  • webhook, log, thống kê và retry;

  • email notification, verification, suppression và log;

  • xoay key, kiểm chữ ký HMAC và sinh code mẫu webhook.

Các tên cũ như monapay_create_qr, monapay_link_bank_start, monapay_create_webhook được giữ nguyên. monapay_link là adapter chuyển tiếp: đổi MONA Pass thành client_id/client_secret rồi cache kín ở ~/.config/monacloud/links.json. Adapter này sẽ được bỏ khi MONA Pay nhận JWT MONA Pass trực tiếp.

Compute MONA Cloud

Tool

Công dụng

cloud_link

Xác nhận direct MONA Pass; chỉ đổi sang vc_live_* nếu upstream còn ở chế độ cũ

cloud_vps_create

Hourly theo cấu hình; monthly theo plan_code, period: month/year, kiểm ví đủ giá kỳ

cloud_db_create

Tạo MongoDB, PostgreSQL hoặc MySQL

cloud_job_status

Poll job tới trạng thái cuối, có timeout

cloud_services_list

Liệt kê VPS/database

cloud_service_start / cloud_service_stop / cloud_service_rebuild

Quản lý vòng đời service

cloud_prices / cloud_packages

Đơn giá và gói cấu hình

cloud_agent_deploy

Stub có cấu trúc cho runtime MONA Agent wave sau

MONA Base (beta)

Base thay Supabase, dùng chung MONA Pass và ví MONA Cloud, đồng thời khớp với app deploy. Sandbox chỉ trả URL thử và ước tính, không tạo hạ tầng thật.

Tool

Công dụng

cloud_base_create

Tạo Base, tự poll job và trả base_id, studio_url, api_url, status

cloud_base_list / cloud_base_get

Liệt kê hoặc đọc trạng thái Base

cloud_base_credentials

Đọc anon_key, service_key, db_url; bí mật, không log

cloud_base_delete

Xoá Base đã được duyệt

Mỗi tool có alias vibecloud_base_* cùng schema và handler. Cần DB/Supabase cho app thì gọi cloud_base_create; Base dùng cùng account và khớp app deploy.

cloud_service_stop không bị chặn bởi số dư để người dùng luôn có thể hạn chế chi phí. Những lệnh tạo/start/rebuild thật đọc GET /v1/balance trước khi gọi compute MONA Cloud.

MONA Domain — tên miền cho app (monadomain.vn)

AI tra tên, báo giá VND đã VAT, hỏi chủ thể, mua .vn/.com bằng ví MONA Cloud rồi trỏ DNS + SSL vào app. Tra giá không cần đăng nhập; người dùng chưa có tài khoản vẫn mua được trong phiên bằng đường giữ chỗ → quét QR → bấm claim (đăng nhập MONA Pass 1 bước = tạo ví = mua).

Tool

Công dụng

cloud_domain_search

Còn trống + giá theo TLD; guest gọi được

cloud_domain_reserve

Giữ chỗ 30' không trừ tiền; hỏi email + sđt (+ opt-in ưu đãi); trả QR đúng giá + claim_url + claim_token/guest_token

cloud_domain_reserve_status

reserved / paid / claimed / expired + next_step

cloud_domain_claim

Đăng nhập Pass → nhận reservation, kéo tiền về ví, mua ngay (idempotent)

cloud_domain_reserve_release

Nhả chỗ khi chưa có tiền vào

cloud_domain_registrant_get / cloud_domain_registrant_set

Chủ thể đăng ký (.vn cá nhân cần CCCD, tổ chức cần MST)

cloud_domain_buy

Mua thẳng bằng ví khi đã đăng nhập; 402 → cloud_topup in QR

cloud_domain_verify_start / cloud_domain_verify_status / cloud_domain_wait

Hồ sơ .vn + chờ active

cloud_domain_renew

Gia hạn: dry_run báo giá → duyệt → trừ ví VND

cloud_domain_dns_* / cloud_domain_ns_set / cloud_domain_attach / cloud_domain_health

DNS, NS, gắn app, sức khoẻ

Giữ chỗ chỉ khoá tên trong hệ MONA Cloud (hold_scope=monacloud), không giữ ở registry — tên đẹp thì trả sớm. Không gọi registrar tới khi tiền vào và có tài khoản nhận. Prompt mua-ten-mien-monacloud(keyword?, app_id?) dẫn trọn luồng.

MONA Mail

MONA Mail là dịch vụ gửi email giao dịch cho phần mềm và AI agent của người Việt: một API, trả VND qua ví MONA Cloud (nạp bằng VietQR), thuộc nhóm MONA Cloud của The MONA Group.

20 tool mail_* dùng MONA Pass sẵn có; tài khoản Mail được tạo tự động ở request đầu. Site: https://monamail.vn, API: https://api.monamail.vn.

Tên

Việc

mail_account

Đọc tài khoản, email chủ, quota và bước kế tiếp

mail_plans

Đọc giá và quota hiện hành của các gói

mail_plan_set

Đổi gói, trừ ví VND khi chọn gói trả phí

mail_send

Gửi OTP/thông báo hoặc thử bằng sandbox: true

mail_status

Đọc trạng thái, events và nội dung sandbox

mail_list

Lọc lịch sử theo trạng thái, người nhận và thời gian

mail_domain_add

Thêm domain, trả records DNS và hướng dẫn

mail_domain_verify

Kiểm DKIM và xác minh domain

mail_domain_cloudflare

Thêm DNS bằng token Cloudflare của người dùng, dùng một lần, không lưu/log

mail_domains_list

Liệt kê domain cùng trạng thái

mail_api_key_create

Tạo key live/test, secret chỉ trả một lần

mail_api_keys_list

Xem prefix và trạng thái key

mail_api_key_revoke

Thu hồi key của app

mail_webhook_create

Đăng ký HTTPS endpoint và các sự kiện email

mail_webhooks_list

Liệt kê webhook

mail_webhook_test

Gửi payload email.delivered mẫu

mail_suppressions_list

Xem địa chỉ ngừng gửi và lý do

mail_suppression_remove

Gỡ suppression của tài khoản; không gỡ lớp toàn hệ

mail_template_create

Tạo mẫu với biến {{ten_bien}}

mail_stats

Đọc thống kê giao thư và bounce theo thời gian

mail_send nhận 1 đến 50 người nhận, tối đa 10 tags, subject tối đa 998 ký tự và ít nhất một trong html/text. Khi dùng template_id, template thay cho subject/html/text. Sender onboarding@monamail.vn chỉ gửi tới email chủ từ mail_account; domain riêng cần verified trước khi gửi.

Key chỉ trả một lần; ghi vào .env của app dưới tên MONAMAIL_API_KEY, không cần in ra chat. MCP tiếp tục dùng MONA Pass; app dùng SDK monamail với key mm_live_ hoặc mm_test_. Sandbox bằng mail_send({ ..., sandbox: true }) gửi header X-Mona-Sandbox: 1 và trả sandbox: true; sandbox không gửi ra Internet, không tính quota hoặc trừ ví. Dùng mail_status để xem sandbox_preview.

Mọi POST gửi Idempotency-Key từ idempotency_key hoặc tự tạo mcp-mail-<uuid>. Truyền key ổn định khi cần retry: trong 24 giờ, cùng key và body trả response cũ; khác body trả idempotency_conflict. MCP đưa key vào header, không đưa sandbox vào body API. Giá gói lấy bằng mail_plans; lỗi thiếu ví từ mail_plan_set hướng dẫn gọi cloud_topup.

Thử 0đ bằng sandbox

Truyền sandbox: true cho cloud_vps_create, cloud_db_create, cloud_service_start, cloud_service_rebuild hoặc cloud_agent_deploy để thử luồng mà không cần số dư ví. Có thể bật mặc định cho cả MCP process bằng MONACLOUD_SANDBOX=1; các alias vibecloud_* có cùng hành vi.

Ở chế độ này MCP bỏ qua GET /v1/balance, tự gửi X-Vibecloud-Sandbox: 1 đến compute API và bảo đảm response có sandbox: true. Ví dụ:

cloud_vps_create({ app_name: "shop-demo", package_slug: "standard-2", sandbox: true })
cloud_job_status({ job_id: "...", sandbox: true })
cloud_services_list({ sandbox: true })

cloud_job_status tự tìm job sandbox theo ID mà không cần header. cloud_services_list({ sandbox: true }) dùng khả năng include_sandbox của API để gộp service thật và sandbox. Sandbox không tạo hạ tầng thật, không trừ tiền và có thể bị dọn theo TTL của compute API. cloud_agent_deploy vẫn là stub cho đến khi runtime MONA Agent được phát hành, nhưng response sandbox được đánh dấu nhất quán.

MONA Agent

  • agent_templates_list: ưu tiên catalog local tại ~/monacloud/templates, sau đó URL cấu hình, cuối cùng catalog wave 1 tích hợp.

  • agent_templates_get(template): trả các file README.md, AGENTS.md, tools.json, deploy.md, CHECKLIST.md và skill text.

  • agent_deploy(template): dùng cùng slot runtime với cloud_agent_deploy; hiện trả agent_runtime_pending theo yêu cầu stub của wave này.

Resource và prompt

  • monacloud://llms: mô tả máy đọc của toàn stack MONA Cloud.

  • monacloud://status: health tổng hợp MONA Pass, Billing, compute MONA Cloud, MONA Pay và MONA Mail (/v1/healthz).

  • Prompt dung-app-ban-hang-monacloud: chuỗi VPS → database → VA/QR → webhook → deploy, đọc giá, duyệt chi phí rồi tạo; dự án local dùng cloud_app_detect rồi cloud_app_create(local_dir); git dùng repo_url.

  • Prompt gui-mail-otp-monamail(app_name?, framework?, domain?): account → thử onboarding → domain/DNS → verify → API key → .env → SDK OTP → webhook bounced; chỉ dừng ở bước thêm DNS hoặc nạp tiền.

Spend guard và lỗi cho AI

Trước lệnh compute MONA Cloud thật có thể phát sinh tiền, MCP đọc ví chung. Sandbox bỏ qua bước này vì chi phí 0đ. HTTP 402 insufficient_funds và 402 budget_exceeded được chuẩn hoá thành text JSON:

{
  "code": "budget_exceeded",
  "message": "Ví thiếu 20.000 đ hoặc đã chạm giới hạn chi tiêu.",
  "next_step": "Gọi cloud_topup để lấy QR nạp ví hoặc cloud_budget_set để tăng ngân sách rồi gọi lại tool.",
  "request_id": "req_..."
}

Token và linked secret không nằm trong payload lỗi hoặc log. request_id được giữ khi API upstream trả về để agent tự đối chiếu.

Ví dụ một lượt: dựng app bán hàng

Người dùng nói:

Dựng app bán hàng Node.js, có PostgreSQL và thu tiền VietQR, deploy lên MONA Cloud.

Agent thực hiện:

  1. cloud_whoami → cloud_balance → cloud_packages.

  2. Nếu ví thiếu: cloud_topup(200000), in nguyên khối qr_ascii cho người dùng quét bằng app ngân hàng, rồi cloud_topup_status tới khi paid.

  3. cloud_vps_create + cloud_db_create, sau đó cloud_job_status cho từng job.

  4. monapay_link nếu adapter chuyển tiếp chưa có credential; monapay_whoami để kiểm tra VA.

  5. Nếu chưa có VA: bắt đầu nối ACB, hỏi người dùng OTP đúng hai điểm bắt buộc, không tự đoán.

  6. Agent viết endpoint webhook HMAC/idempotent, gọi monapay_create_webhook, monapay_test_webhook, monapay_webhook_logs.

  7. Agent cắm monapay_create_checkout hoặc monapay_create_qr, deploy code lên VPS và báo URL cuối.

Chi tiết dành riêng cho agent: docs/ai-agent.md.

Ví dụ một lượt: gửi mail OTP

Người dùng nói: “Tích hợp gửi mail OTP cho app shop bằng MONA Mail, domain shop.vn.”

  1. mail_account: lấy email chủ, quota và domain đã xác minh.

  2. Nếu chưa có domain, mail_send từ onboarding@monamail.vn tới email chủ, dùng idempotency key riêng; mail_status kiểm kết quả.

  3. mail_domain_add({ domain: "shop.vn" }): đưa records để user thêm DNS, hoặc gọi mail_domain_cloudflare bằng token của họ; sau đó mail_domain_verify.

  4. mail_api_key_create({ name: "shop-otp", mode: "live" }): ghi key trực tiếp vào .env dưới tên MONAMAIL_API_KEY.

  5. Viết server dùng new MonaMail(process.env.MONAMAIL_API_KEY) và monamail.emails.send(...) với tags: ["otp"]; kiểm thư bằng mail_status.

  6. Viết endpoint HMAC, mail_webhook_create với events: ["email.bounced"], lưu secret rồi mail_webhook_test; khi thiếu ví gọi cloud_topup và chờ user nạp.

Biến môi trường

Biến

Mặc định

Ý nghĩa

MONACLOUD_ISSUER

https://pass.monacloud.vn/realms/mona

OIDC issuer

MONACLOUD_BILLING_URL

https://billing.monacloud.vn

Billing/ví API

MONAPAY_API

https://api.monapay.vn

MONA Pay API

MONAMAIL_API

https://api.monamail.vn

MONA Mail API, dùng Bearer MONA Pass của MCP

MONACLOUD_API

https://api.monacloud.vn

Compute API của MONA Cloud

MONACLOUD_CONSOLE_URL

https://monacloud.vn/console

URL trả cho bước human

MONACLOUD_TOKEN

—

PAT/access token ưu tiên token store

MONACLOUD_SANDBOX

—

Đặt 1 để mọi lệnh compute hỗ trợ sandbox chạy thử 0đ, không cần ví

MONACLOUD_CONFIG_DIR

~/.config/monacloud

Token và link cache

MONACLOUD_TEMPLATES_DIR

~/monacloud/templates

Catalog agent local

MONACLOUD_TEMPLATES_URL

—

Catalog JSON từ xa, chỉ dùng khi local không có

MONAPAY_LINK_PATH

/api/v1/client/oauth/mona-id/link

Endpoint adapter chuyển tiếp

VIBECLOUD_LINK_PATH

/api/auth/monaid/link

Endpoint adapter cũ, chỉ gọi khi direct MONA Pass bị từ chối

VIBECLOUD_API/VIBECLOUD_API_URL, MONAPAY_CLIENT_ID + MONAPAY_CLIENT_SECRET và VIBECLOUD_API_TOKEN chỉ là đường tương thích trong giai đoạn migrate. logout xoá cả token store lẫn linked credential cache; luồng đích là một MONA Pass.

Phát triển offline

Không chạy npm install trong workspace handoff; node_modules đã được chuẩn bị sẵn.

node_modules/.bin/tsc -p tsconfig.json
node --test

Test dùng Node built-in, MCP transport thật qua stdio, process con và mock HTTP local. Trong sandbox cấm bind socket, test tự dùng fetch fixture tương đương. Bộ test không gọi Internet.

Mới ở 0.3.0: gói tháng, hoá đơn và app từ git

Tool mới

Công dụng

cloud_plan_list

Bảng gói và giá tháng/năm, gợi ý theo CPU/RAM/đĩa

cloud_subscription_list / cloud_subscription_update

Đọc gói, đổi chu kỳ, auto-renew; huỷ với cancel_action: hourly/stop

cloud_invoice_list / cloud_invoice_pdf

Xem hoá đơn và tải PDF về file tạm riêng tư

cloud_credit_redeem

Dùng mã credit được người dùng cung cấp

cloud_app_create / cloud_app_list / cloud_app_get

Deploy public repo HTTPS, poll job và đọc URL; đang mở

cloud_app_deploy / cloud_app_env_set

Deploy lại, thay env; đang mở

cloud_app_domain_add / cloud_app_logs / cloud_app_delete

CNAME domain, log build, xoá app; đang mở

cloud_app_host_list

Xem host và tài nguyên/chi phí; đang mở

15 tool mới có 15 alias vibecloud_ tương ứng. Tổng với MONA Pay 0.5.5 đang có: 135 tool ở 0.4.0, gồm 20 Mail và 27 alias compute (thêm cloud_app_detect/vibecloud_app_detect). Package/MCP binary version: 0.4.0.

cloud_plan_list({ ram_gb: 4 })
# Đọc ví, báo giá, chờ duyệt rồi tạo:
cloud_vps_create({ app_name: "shop", billing_mode: "monthly", plan_code: "kinh-doanh", period: "month" })
cloud_invoice_pdf({ invoice_id: "<id>" })
cloud_app_host_list()
cloud_app_create({ repo_url: "https://github.com/example/shop.git", branch: "main", build_type: "nixpacks", sandbox: true })

Monthly bỏ qua CPU/RAM/đĩa và package_slug, đọc cấu hình/giá từ plan và guard toàn bộ giá tháng/năm. Backend chưa nhận monthly sandbox: MCP thử cấu hình plan qua hourly sandbox 0đ, trả giá thật trong estimate, không tạo subscription. Khi tạo thật phải tắt MONACLOUD_SANDBOX nếu đã bật env.

Khi user nói “deploy repo”, đọc host; chưa có host thì sandbox cloud_app_create để ước tính, hỏi duyệt rồi tạo thật và kiểm URL. Tool chờ job tối đa 600 giây; dùng wait:false và cloud_job_status nếu host MCP có timeout ngắn. Endpoint Wave B đang mở, lỗi API được báo thật.

Hợp đồng HTTP, đầy đủ tham số, ví dụ billing/deploy, PDF và giới hạn rollout: docs/wave-ab.md.

Available Tools

186 tools
agent_deployDùng ngay MONA Agent templateC

Gọi cùng runtime với cloud_agent_deploy. Deploy thư mục: cloud_app_detect → cloud_app_create(local_dir); git dùng repo_url (đã live), sandbox trước nếu chưa có host.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateYes

TDQS

C2.1/5.0
Behavior2/5

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

Annotations already declare this is a non-readonly, non-idempotent, non-destructive, open-world write, so the safety profile is covered. The description adds only a vague 'sandbox first if no host' note and 'repo_url (already live)' remark that belong to a different tool, giving no real behavioral context for a template deployment.

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

Conciseness3/5

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

The text is short and free of padding, so nothing is wasted, but it is not front-loaded on the actual purpose and the cryptic sequencing (arrows, abbreviations) hinders comprehension rather than aiding it.

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?

For a non-idempotent deployment tool with a required undocumented parameter, no output schema and 0% schema coverage, the description should explain what a template is, what gets created, and what happens on failure. It does none of this and instead describes an unrelated app-deploy flow.

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

Parameters2/5

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

Schema coverage is 0% and the single required 'template' parameter is never described; instead the description references non-existent parameters (local_dir, repo_url). The title 'MONA Agent template' weakly implies template is a template identifier, but behavior around it is unaddressed.

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

Purpose2/5

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

The description states it 'calls the same runtime as cloud_agent_deploy' and then describes deploying an app directory or git repo (cloud_app_detect → cloud_app_create(local_dir), repo_url). That flow does not match this tool's actual single 'template' parameter, so the stated purpose looks pasted from a different deploy tool and never clearly says what agent_deploy does with a template.

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?

It hints at a relationship with the sibling cloud_agent_deploy ('same runtime') and says to use sandbox first if there is no host, but it never says when to pick agent_deploy over agent_templates_get/list or cloud_agent_deploy, nor what prerequisites (auth, existing host) are required.

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

agent_templates_getChi tiết MONA Agent templateB
Read-onlyIdempotent

Đọc README, AGENTS.md, tools, deploy, checklist và skills của một template.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description usefully adds that the response spans multiple named artifacts (README, deploy, checklist, skills), but says nothing about the openWorld implication or the shape/size of the returned payload.

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?

A single front-loaded sentence with no filler, and the enumerated artifacts are the most useful content it could carry. Efficient, if minimal.

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?

With no output schema and only one parameter, the description covers the minimum: what is read and from where. It leaves the return structure (how the multiple artifacts are keyed) and the slug semantics unaddressed.

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

Parameters2/5

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

One required parameter with 0% schema description coverage and no enum. The description never explains that 'template' is a slug matching ^[a-z0-9][a-z0-9-]{0,79}$ (lowercase, hyphenated, max 80 chars), so an agent has no guidance on accepted values beyond the bare pattern.

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?

States a concrete verb ('Đọc') and a specific resource set: README, AGENTS.md, tools, deploy, checklist, skills of one template. This is clearly a detail-fetch counterpart to agent_templates_list, though the description never names that sibling to make the distinction explicit.

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?

No indication of when to use this versus agent_templates_list, no prerequisites, no mention of what happens with an invalid slug. The agent must infer the usage context entirely.

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

agent_templates_listCatalog MONA AgentB
Read-onlyIdempotent

Đọc template từ thư mục local, URL catalog hoặc catalog wave 1 tích hợp. Deploy dự án: cloud_app_detect rồi cloud_app_create(local_dir), sandbox trước nếu chưa có host.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false. The description is consistent with those, adding that templates can be read from local storage, a catalog URL, or an integrated wave 1 catalog. It does not add much beyond the annotations and does not describe return format or source-selection behavior.

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

Conciseness3/5

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

The core purpose is front-loaded in the first sentence, but the second sentence is an unrelated deployment workflow that does not help an agent call agent_templates_list correctly. It is short, but not every sentence earns its place.

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 no-parameter, read-only tool with annotations covering safety and no output schema, the description is minimally adequate. However, mixing in deployment steps makes the tool's role relative to agent_templates_get, agent_deploy, and cloud_app_create less clear, leaving ambiguity about when this catalog list is the right choice.

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 for parameter semantics is 4. The description mentions three template sources but does not document any input fields, which is acceptable because the schema contains no parameters to explain.

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

Purpose3/5

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

The first sentence states a specific verb and resource: 'Đọc template' from local directory, catalog URL, or integrated wave 1 catalog. However, it does not distinguish this tool from the sibling agent_templates_get, and the second sentence about deploying a project via cloud_app_detect and cloud_app_create muddles what agent_templates_list itself does.

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 names source locations but does not say when to choose this tool over agent_templates_get or other siblings. The only workflow guidance is for deployment ('Deploy dự án: cloud_app_detect rồi cloud_app_create'), which is a different task rather than instruction on using this listing tool.

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

cloud_affiliate_claimCông cụ MONA affiliate claimC

Gắn mã giới thiệu vào tài khoản hiện tại trong thời hạn cho phép. / Claim a referral code for the current account.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false, covering the safety/mutation profile. The description adds the time-window constraint ('thời hạn cho phép') and scoping to the 'current account', which is useful beyond the annotations, but says nothing about what happens on a duplicate or failed claim.

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

Conciseness3/5

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

The description is short and the core action is front-loaded, but the Vietnamese and English lines are verbatim duplicates, so the bilingual repetition consumes space without adding distinct information.

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?

For a mutation tool with no output schema and a 0%-documented parameter, the description is thin. It does not explain the effect of claiming, what happens on an invalid/expired code, or any post-claim state, leaving an agent without enough to predict outcomes.

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

Parameters2/5

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

Schema description coverage is 0% and the description does not compensate. It implies the single parameter is a referral code ('mã giới thiệu'), but omits the length bounds (4–16 chars), format, or validation behavior that the schema leaves undocumented.

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?

States a specific verb and resource ('Claim a referral code for the current account'), so the action is clear. It does not, however, explicitly distinguish itself from siblings like cloud_affiliate_link or vibecloud_affiliate_claim, so the differentiation is only implicit.

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 when-to-use guidance, no prerequisites, and no mention of alternatives. The phrase 'trong thời hạn cho phép' (within the allowed period) hints at a timing constraint but is not an explicit usage rule.

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

cloud_affiliate_statsCông cụ MONA affiliate statsA
Read-onlyIdempotent

Đọc thống kê, số dư có thể nhận và các hoa hồng gần nhất. / Read affiliate stats, payout availability and recent commissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
statusNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful return-content context, but does not disclose pagination behavior, filtering behavior, or permission requirements beyond what annotations provide.

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 with no wasted clauses, front-loading the core action and returned data. The bilingual duplication is acceptable and does not meaningfully reduce clarity.

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 read-only stats tool with rich annotations, the description is adequate about the general purpose. However, it is incomplete for invocation because neither optional parameter is documented or explained, and there is no output schema to compensate.

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

Parameters2/5

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

Schema description coverage is 0%, and there are two parameters (limit and status). The description mentions recent commissions and payout availability, but never explains what limit controls or how the status enum filters results, leaving the agent to infer parameter behavior from names alone.

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: read affiliate stats. It also lists the key returned content categories (payout availability, recent commissions), which distinguishes this tool from sibling affiliate actions such as link creation and claim/payout 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?

Usage is implied by the read-oriented purpose, but the description gives no explicit when-to-use guidance, prerequisites, or comparison against alternatives like cloud_affiliate_claim. An agent can reasonably infer this is the stats-reading tool, but routing guidance is minimal.

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

cloud_agent_deployDeploy MONA Agent trên MONA CloudC

Slot runtime agent wave kế tiếp; hiện trả trạng thái stub rõ ràng. sandbox=true: thử 0đ, không cần ví.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNosandbox=true: thử 0đ, không cần ví
templateYes

TDQS

C2.9/5.0
Behavior4/5

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

Annotations already declare the safety profile (readOnlyHint=false, idempotentHint=false, openWorldHint=true), but the description adds genuinely useful context beyond them: it discloses that the tool currently returns a clear stub status, and that sandbox mode costs nothing and needs no wallet. It does not say what a real (non-sandbox) deployment does or whether it is reversible, but the stub caveat is meaningful behavioral information.

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

Conciseness3/5

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

The description is very short and every clause carries information, but the fragmentary phrasing ('Slot runtime agent wave kế tiếp') is cryptic and the important stub caveat is not front-loaded or clearly separated from the slotting statement.

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 tool with no output schema, the description at least explains that it returns stub status and hints that non-sandbox use requires a wallet. However, it leaves the template parameter, the real deployment outcome, and the relationship to sibling deploy tools unexplained, so it is only minimally complete.

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

Parameters2/5

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

Schema description coverage is only 50%, and the description's sandbox clause ('sandbox=true: thử 0đ, không cần ví') is a verbatim copy of the sandbox property's schema description, so it adds zero meaning. The required 'template' parameter, which only has a regex pattern, is never explained in the description.

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

Purpose3/5

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

The title says 'Deploy MONA Agent trên MONA Cloud', but the description never states a clear verb+resource like 'deploys an agent'; instead it says 'Slot runtime agent wave kế tiếp', which is ambiguous about whether it deploys, schedules, or queues an agent. It does not distinguish itself from close siblings such as agent_deploy, vibecloud_agent_deploy, or agent_templates_get.

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 hint is 'sandbox=true: thử 0đ, không cần ví', which applies to one parameter value rather than telling the agent when to pick this tool over agent_deploy or vibecloud_agent_deploy. No preconditions, no exclusions, and no alternative routing is given.

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

cloud_app_createCông cụ MONA app createB

App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. AI làm 99%: cloud_app_detect(local_dir) offline → cloud_app_host_list, cloud_prices/cloud_packages/cloud_plan_list và cloud_balance → cloud_app_create(local_dir, sandbox=true) nếu chưa có app host để ước tính chi phí giờ/gói → hỏi human một lần duyệt chi phí nếu chưa được duyệt → cloud_app_create(local_dir, sandbox=false) → poll tới done/succeeded → kiểm và trả URL. Cần DB/Supabase? cloud_base_create (beta) — chung account/ví MONA Cloud, khớp app deploy. Sau khi app có URL, CHỦ ĐỘNG hỏi tên miền riêng: human đã có domain → cloud_app_domain_add (CNAME); chưa có → cloud_domain_search gợi 3–5 đuôi (.vn trước nếu khách Việt) kèm giá VND, hỏi xác nhận chính tả + duyệt tiền → cloud_domain_buy (đã login) hoặc cloud_domain_reserve (chưa login: QR + claim_url) → cloud_domain_attach trỏ DNS + SSL. Human đăng ký MONA Pass bằng device flow một lần; hết credit 20k thì AI gọi cloud_topup và in QR (qr_ascii) ngay trong terminal, human chỉ quét bằng app ngân hàng; AI làm các bước còn lại. App git cloud_app_create(repo_url) đã live; không gọi agent_deploy cho deploy dự án. / Detect locally, estimate, obtain cost approval once, upload and deploy, create an optional Base, return URL, then attach an optional domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
envNo
nameNo
portNo
waitNo
branchNo
domainNo
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge
repo_urlNo
local_dirNo
build_typeNo
dockerfileNo
app_host_idNo
timeout_secNo
interval_secNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare a non-read-only, open-world, non-idempotent operation, and the description adds real behavioral context beyond them: first host takes ~2-3 min vs 10-20 sec for later deploys, sandbox costs 0, polling is required until done/succeeded, and a MONA Pass login plus credit top-up may be needed. Failure modes and rollback behavior are still absent.

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

Conciseness2/5

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

A single dense bilingual block that front-loads timing trivia and then strings together the entire multi-tool workflow, including steps for domain purchase and top-up that are not this tool's job. The trailing English summary is the only well-structured part; the rest is poorly segmented and hard to scan.

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?

With 14 parameters, 0 required, no output schema, and low schema coverage, the description should carry much more weight, yet it only covers the sandbox workflow and says the URL is returned. It is adequate to understand the overall flow but insufficient to invoke the tool's many configuration options correctly.

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

Parameters2/5

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

Schema description coverage is only 7% across 14 parameters; only sandbox is documented in the schema. The description explains the sandbox=true/false pattern and mentions local_dir and repo_url, but leaves name, port, env, wait, branch, domain, build_type, dockerfile, app_host_id, timeout_sec and interval_sec entirely unexplained in both places.

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 final English line states the verb chain plainly: detect locally, estimate, obtain cost approval, upload and deploy, return URL, attach an optional domain. That lets an agent distinguish it from siblings like cloud_app_deploy or cloud_base_create, even though the core purpose is buried under a wall of workflow narrative.

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 explicit conditions: use sandbox=true first to estimate cost, then sandbox=false after one human cost approval, accept repo_url or local_dir, and it explicitly excludes agent_deploy for project deploys. The guidance is present but entangled with instructions for other tools (cloud_domain_buy, cloud_topup), which blurs which action belongs to this call.

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

cloud_app_deleteCông cụ MONA app deleteB
DestructiveIdempotent

App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. Sau khi user duyệt xoá: xoá app/domain/A record; app host vẫn có thể tính phí. / Delete an approved app.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge

TDQS

B3.2/5.0
Behavior4/5

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

The annotations already cover destructiveHint, idempotentHint, and openWorldHint, so the safety profile is known. The description adds meaningful context beyond that: it specifies that app, domain, and A record are deleted, and warns that the app host may still incur charges. The unrelated first sentence about git app liveness adds noise but does not contradict the tool's behavior.

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

Conciseness2/5

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

The definition is not front-loaded: it opens with an unrelated sentence about git app deploy timing before stating the actual delete operation. That sentence is waste and pushes the core purpose into the middle of a bilingual, slash-separated block, reducing clarity and conciseness.

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 destructive delete tool with no output schema, the description does convey the cascade of deletions and a billing caveat, which are important. However, it omits parameter detail for app_id and its leading sentence is irrelevant, so the definition is only partially complete given the tool's complexity.

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

Parameters2/5

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

Schema description coverage is 50%: sandbox is documented in the schema, but app_id has no description there. The tool description does not compensate by explaining what app_id represents or its format, only referring to 'an approved app'. This leaves the required parameter under-specified.

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: 'Delete an approved app.' That is clear enough for an agent to identify the operation. However, it gives no explicit differentiation from the duplicate sibling vibecloud_app_delete, and the leading sentence about git app deploy timing is irrelevant and dilutes focus.

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 phrase 'Sau khi user duyệt xoá' implies a prerequisite of user approval before deletion, which gives some usage context. It does not name alternatives or state when not to use this tool, so guidance is only implied.

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

cloud_app_deployCông cụ MONA app deployB

App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. App upload: local_dir đóng ZIP mới → upload → chờ job → deploy; bỏ local_dir để redeploy bản đã upload. / Redeploy uploaded source or a git app and poll.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNo
app_idYes
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge
local_dirNo
timeout_secNo
interval_secNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already state readOnlyHint=false, openWorldHint=true, idempotentHint=false, and destructiveHint=false. The description usefully adds first-deploy timing (~2–3 minutes), subsequent deploy timing (10–20 seconds), the upload/wait/deploy flow, and polling behavior.

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

Conciseness3/5

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

The text is short, but it is split into slash-delimited bilingual fragments and duplicates content across Vietnamese and English. The clearest purpose statement appears at the end rather than being front-loaded, which weakens scanability.

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 deploy tool with six parameters, no output schema, and annotations covering safety, the description covers source modes, timing, and polling adequately. It still omits key polling parameter semantics such as wait, timeout_sec, and interval_sec, and gives no guidance versus sibling deploy tools.

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

Parameters2/5

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

Schema description coverage is only 17%, so the description must explain parameters, but it only meaningfully clarifies local_dir. It does not explain wait, timeout_sec, interval_sec, app_id, or the full polling controls, leaving most parameters undocumented.

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 names a specific action (deploy/redeploy) and source types (git app or uploaded source), and mentions polling. It is clear enough to distinguish from list/get/create siblings, but it does not explicitly differentiate cloud_app_deploy from the identical-looking vibecloud_app_deploy sibling.

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?

It gives an operational branch: provide local_dir to package/upload/deploy a new ZIP, or omit local_dir to redeploy the previously uploaded version. However, it gives no guidance on when to use this tool versus cloud_app_create, cloud_app_get, or vibecloud_app_deploy alternatives.

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

cloud_app_detectCông cụ MONA app detectB
Read-onlyIdempotent

Nhận diện Node/Next/Vite/Python/PHP/static, port, start, Dockerfile, build_type và tên biến .env.example; hoàn toàn offline, không thực thi code dự án. / Detect a local app without network.

ParametersJSON Schema
NameRequiredDescriptionDefault
local_dirYes

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description still adds real value beyond them by stating it runs 'hoàn toàn offline' and 'không thực thi code dự án' (does not execute project code), which is a meaningful execution guarantee an agent could not infer from the hints alone.

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

Conciseness3/5

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

The content is compact and front-loads the detection targets, but it is delivered twice, once in Vietnamese and once in English, which doubles length for the same information. Bilingual redundancy is defensible for localization but costs conciseness.

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?

With no output schema, the description usefully enumerates the detected fields (port, start, Dockerfile, build_type, env var names), so an agent knows what comes back. The only real gap is the unexplained local_dir input, making it nearly complete for a one-parameter detection tool.

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

Parameters2/5

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

There is one required parameter (local_dir) with 0% schema description coverage, and the description never explains it – no indication of absolute vs relative path, expected directory shape, or error behavior. The enumerated detection outputs do not compensate for the undocumented input.

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?

States a specific verb (detect/nhận diện) and resource (a local app) and enumerates exactly what is detected: Node/Next/Vite/Python/PHP/static, port, start command, Dockerfile, build_type and .env.example variable names. This is very concrete. However, it offers no differentiation from the near-duplicate sibling vibecloud_app_detect, so it falls short of a 5.

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 says what is detected but never states when to reach for this tool versus alternatives such as cloud_app_create or vibecloud_app_detect, nor any preconditions (e.g., run before app creation). No when-to-use or when-not guidance is present.

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

cloud_app_domain_addCông cụ MONA app domain addA

App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. Thêm domain human ĐÃ có, trả hướng dẫn CNAME từ API; chờ DNS trước kiểm HTTPS. Human chưa có domain → dùng cloud_domain_search/cloud_domain_reserve/cloud_domain_buy rồi cloud_domain_attach (mua .vn/.com bằng VND ngay trong phiên). / Attach an existing custom domain; to buy one use cloud_domain_*.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYes
app_idYes
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false, so the mutation/open-world profile is covered structurally. The description adds real context beyond that: the API returns CNAME instructions and the agent should wait for DNS propagation before verifying HTTPS. It does not state permissions or reversibility, hence a 4 rather than 5.

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

Conciseness2/5

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

The opening sentence about git app live timing and deploy durations is off-topic for a domain-attach tool and pushes the actual purpose into second position, harming front-loading. The Vietnamese and English lines restate the same points, adding redundancy rather than value.

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?

There is no output schema, and the description compensates by noting the CNAME instructions returned by the API and the DNS-then-HTTPS sequence. However, with two required parameters undocumented and a low schema coverage, the definition is only minimally complete for correct invocation.

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

Parameters2/5

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

Schema description coverage is only 33% (only sandbox carries a description). The description hints that host is a domain the human already owns and that the target is an app, but it does not explain the host format, app_id semantics, or how sandbox interacts with real infrastructure, leaving two required parameters under-documented in both schema and prose.

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 clear verb+resource: attach ('Thêm') an existing custom domain to a git-hosted app, and the English line 'Attach an existing custom domain' removes ambiguity. It partially distinguishes itself from the many cloud_domain_* siblings by scoping to an existing domain owned by the human. Sibling differentiation is present but relies on the reader parsing the mixed-language text.

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

Usage Guidelines5/5

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

It gives explicit when-not and alternatives: if the human does not yet have a domain, use cloud_domain_search/cloud_domain_reserve/cloud_domain_buy then cloud_domain_attach. It also notes .vn/.com can be bought with VND in-session, which is exactly the routing an agent needs to pick the correct tool.

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

cloud_app_env_setCông cụ MONA app env setB
Idempotent

App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. Thay toàn bộ env sau khi được duyệt, gửi đầy đủ map cần giữ; không log secret. Gọi cloud_app_deploy sau đó để áp dụng. / Set app environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
envYes
app_idYes
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge

TDQS

B3.3/5.0
Behavior4/5

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

With annotations already declaring readOnly=false, openWorld=true, idempotent=true and destructive=false, the description adds meaningful context beyond them: the operation replaces the ENTIRE env (omitted keys are dropped, hence 'send the full map to keep'), it does not log secrets, and a separate deploy call is needed to apply. These are useful behavioral facts annotations don't convey.

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

Conciseness2/5

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

The description leads with git-app deployment timing that is irrelevant to an env-set tool, and the whole message is duplicated in Vietnamese and English, roughly doubling length for the agent. The genuinely useful guidance (full map, no secret logging, deploy next) is buried rather than front-loaded.

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 set operation whose safety profile is covered by annotations and which has no output schema, the description conveys the key workflow (call deploy after) and the secret/full-map caveats. It falls short on parameter documentation, notably leaving 'app_id' undescribed at low schema coverage.

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 only 33% (only 'sandbox' is documented). The description adds some meaning for 'env' — send the complete map to keep and don't log secrets — but says nothing about 'app_id'. It partially compensates for the coverage gap without fully covering the undocumented parameters.

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

Purpose3/5

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

The core action is stated — 'Thay toàn bộ env' / 'Set app environment' for a given app — which is a specific verb+resource. However, the description opens with deployment-timing content that belongs to a different operation, diluting clarity about what THIS tool actually does.

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 sequencing: replace the env after approval, and 'Gọi cloud_app_deploy sau đó để áp dụng' — call cloud_app_deploy afterwards to apply. It also states the condition to 'send the complete map to keep.' No explicit when-not or alternative comparison, but the workflow context is clear.

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

cloud_app_getCông cụ MONA app getB
Read-onlyIdempotent

App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. Đọc status, URL, lần deploy và app host. / Inspect app.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and openWorld. The description adds the specific fields returned (status, URL, deploy times, app host) and deployment latency expectations, which is useful behavioral context beyond annotations. It does not cover auth or error behavior, but annotations lower the bar.

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

Conciseness3/5

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

Very short, but the bilingual slash-separated fragments and leading deployment-timing sentence make it poorly front-loaded; the core 'Inspect app' purpose appears last. It could be tighter and more direct.

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 read-only tool with annotations and no output schema, the description adequately covers what will be returned (status, URL, deploy times, app host). It omits sandbox parameter effects and error handling, but those are minor given the tool's low complexity.

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

Parameters2/5

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

Schema description coverage is 50%, with only the optional sandbox parameter described. The description says nothing about app_id or sandbox semantics, so it fails to compensate for the undocumented required parameter. app_id is obvious from the name, but the description adds no meaningful parameter detail.

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?

States 'Inspect app' and lists what it reads: status, URL, deploy times, app host. It is a specific verb+resource, though it does not differentiate from siblings like cloud_app_list or cloud_app_logs.

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?

No explicit when-to-use or alternatives are given. The deployment timing note ('first app host ~2-3 min, subsequent deploy 10-20s') is contextual but does not tell an agent when to choose this tool over cloud_app_list, cloud_app_logs, or cloud_app_deploy.

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

cloud_app_host_listCông cụ MONA app host listA
Read-onlyIdempotent

App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. Đọc app host; chưa có host thì sandbox cloud_app_create trước để ước tính. / List app hosts.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge

TDQS

A3.6/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safe-read profile is already established. The description adds real behavioral value beyond that: per-app readiness timing (first host 2-3 minutes, subsequent deploys 10-20 seconds) and the conditional fallback to sandbox app creation when no host exists, which an agent would not otherwise know.

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

Conciseness3/5

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

The content is dense but the structure is muddled: three fragmented clauses, a bilingual split that doubles the text, and the timing facts are sandwiched before the actual action ('List app hosts') appears at the end. Most sentences carry useful information, but the front-loading is weak and the duplication costs clarity.

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?

With one optional parameter, a full schema description, and no output schema, the description is largely complete for this complexity. It covers readiness timing and the no-host fallback path; only the return shape and the sandbox-vs-live distinction would add further value, which is acceptable given the annotations already cover the safety profile.

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% for the lone 'sandbox' parameter, which the schema already defines as 'Sandbox, no charge'. The description does not expand on the sandbox flag's behavior or distinguish it from real provisioning beyond what the schema conveys, so the baseline 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?

States a specific verb+resource: 'List app hosts' / 'Đọc app host', giving the agent a concrete operation to invoke. However, it does not distinguish itself from the several sibling list/read tools in the same family (cloud_app_list, cloud_app_get, vibecloud_app_host_list), so it edges forward but falls short of a 5.

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 through the timing note ('first host ~2-3 min, later deploys 10-20s') and the fallback hint ('if no host exists, sandbox cloud_app_create first to estimate'), which is actionable context. But it never explicitly says when to use this tool versus cloud_app_list or cloud_app_get, leaving selection partly to inference.

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

cloud_app_listCông cụ MONA app listC
Read-onlyIdempotent

App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. Liệt kê app trước khi tạo để tránh trùng. / List apps.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds some unrelated deployment timing context but does not clarify what the list returns, whether it's scoped to the caller, or any auth/permission requirements. It adds little value beyond annotations and may confuse by mentioning deployment timing not relevant to listing.

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

Conciseness2/5

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

The description is fragmented, mixes languages mid-sentence, and front-loads irrelevant deployment timing information before the actual purpose. The content does not earn its place for a simple list operation.

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?

For a read-only list tool with no output schema, the description should at least indicate what the list contains (e.g., app names, IDs) and any filtering constraints. Instead it includes tangential information about git deployment and duplicate avoidance, leaving the agent without key context about the return structure or scope.

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% and the single parameter 'sandbox' is fully documented in the schema, so baseline 3 is appropriate. The description adds no additional meaning about the sandbox parameter or any filtering behavior.

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

Purpose2/5

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

The description contains 'Liệt kê app' / 'List apps', which restates the tool name cloud_app_list without adding a specific scope. The first sentence about git app deployment timing is unrelated to listing apps and obscures the purpose. It does not distinguish from siblings like cloud_app_host_list or cloud_app_get.

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?

It says to list apps before creating to avoid duplicates, which gives a clear pre-creation use case. However, it does not mention alternatives like cloud_app_get for a single app or cloud_app_host_list, and provides no explicit exclusions.

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

cloud_app_logsCông cụ MONA app logsC
Read-onlyIdempotent

App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. Đọc tối đa 500 dòng log; có thể chứa secret, không đưa nguyên log ra công khai. / Read deployment logs.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge
deploymentNo

TDQS

C2.8/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/non-destructive, but the description adds real operational context the annotations do not: a 500-line output cap and a warning that logs may contain secrets and must not be published verbatim. That is useful disclosure beyond structured fields.

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

Conciseness2/5

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

The text is bilingual mirrored prose plus an off-topic deployment-timing paragraph that does not belong in a log-reading tool. The actual purpose is neither front-loaded nor given in the opening sentence.

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?

With no output schema, the description should say more about what is returned, but it at least discloses the 500-line cap and the secret-handling caveat. Parameter and usage gaps remain, leaving it only minimally adequate for a three-parameter tool.

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

Parameters2/5

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

Schema description coverage is only 33% (only 'sandbox' is documented in the schema), so app_id and deployment are unexplained everywhere. The description adds no meaning to any parameter, not even the optional deployment selector that determines which log set is read.

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

Purpose3/5

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

The core purpose ('Read deployment logs' / 'Đọc ... log') is a clear verb+resource, but it is buried at the very end behind two sentences about deployment timing that appear copied from a deploy tool. An agent can eventually tell what this does, but the front-loaded text describes a different operation.

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 explicit when-to-use, when-not-to-use, or alternative to cloud_app_get / cloud_app_deploy. The '~2-3 minutes until first host is live' note only implicitly hints that logs become meaningful after a deploy, and no prerequisites are stated.

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

cloud_balanceSố dư ví MONA CloudA
Read-onlyIdempotent

Đọc số dư ví VND chung trước khi tạo tài nguyên có phí.

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?

Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so the safety profile is fully covered. The description adds only that the balance is VND-denominated, contributing little behavioral context beyond the structured fields.

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 short sentence with no waste; the resource is front-loaded ahead of the usage condition.

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-param read tool with annotations covering safety and no output schema, the description is nearly complete: it says what is read and when. Return format (currency fields, etc.) is unspecified, which is a minor gap.

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?

Zero parameters, so the baseline is 4; there is no parameter semantics to explain and nothing for the description to compensate for.

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?

States a specific verb (Đọc/read) and a specific resource (số dư ví VND chung – the general VND wallet balance), with 'chung' hinting at scope. It does not explicitly contrast with close siblings like cloud_ledger or cloud_usage, but the resource is unambiguous enough for selection.

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?

Gives a concrete when-to-use trigger: read the balance before creating paid resources. That is real routing context, though it names no alternatives or exclusions (e.g., versus cloud_ledger for history).

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

cloud_base_createCông cụ MONA base createB

Ước tính, kiểm ví, tạo Base và poll job tới hoàn tất; sandbox chỉ trả ước tính. / Estimate, create and wait for the Base job. Base beta = thay Supabase, chung account/ví MONA Cloud. / Beta Supabase replacement on the shared MONA Cloud account and wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
cpuNo
ram_gbNo
disk_gbNo
sandboxNoThử 0đ, chỉ ước tính và không tạo hạ tầng thật / Sandbox estimate only
plan_codeNo
billing_modeNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare this is a mutating, non-idempotent, open-world call. The description adds real behavioral context beyond them: the tool polls the job to completion (long-running/blocking), it checks the wallet (billing implication), and sandbox mode returns an estimate without creating infrastructure. It omits any warning that non-idempotent retries could bill or create twice, which is the one gap keeping it from a 5.

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

Conciseness3/5

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

Front-loaded with the workflow, which is good, but the bilingual text is not a clean mirror: the Vietnamese line and the two English lines repeat the same 'Base beta / Supabase replacement' idea twice, and the third sentence adds nothing new. Compact overall, but one sentence does not earn its place.

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 create tool with no output schema, zero required params, and 17% coverage, the description covers the process and the sandbox branch but leaves key agent needs unanswered: what job identifier or resource is returned, whether the call blocks, and what happens on timeout or failure. Adequate but with clear gaps.

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

Parameters2/5

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

Schema description coverage is only 17% – just the sandbox flag is documented. Six parameters (cpu, ram_gb, disk_gb, plan_code, billing_mode) carry no description in either the schema or the description text, and the description adds no meaning about units, defaults, allowed ranges, or how plan_code interacts with billing_mode. With low coverage the description was obliged to compensate and does not.

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?

States a specific verb+resource ('tạo Base' / 'create the Base') and even describes the full workflow (estimate, wallet check, create, poll). It is clearly distinguishable from cloud_base_list/get/delete/credentials by the create verb. It never names a sibling explicitly, so it falls short of a 5.

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?

Implies when to use it (when you need a Base provisioned) and adds one useful conditional: 'sandbox chỉ trả ước tính' / 'Sandbox estimate only'. But there is no explicit when-not, no prerequisites, and no routing to alternatives such as cloud_base_get for checking an existing Base or cloud_balance before spending.

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

cloud_base_credentialsCông cụ MONA base credentialsB
Read-onlyIdempotent

Đọc anon_key, service_key và db_url. Bí mật, không log; lưu thẳng vào secret store hoặc .env không commit. / Reveal credentials once and keep them secret. Base beta = thay Supabase, chung account/ví MONA Cloud. / Beta Supabase replacement on the shared MONA Cloud account and wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYes

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower. The description adds genuinely valuable behavior beyond them: the output is secret, must not be logged, and should go straight into a secret store or uncommitted .env. That is exactly the kind of operator-critical context annotations can't express.

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

Conciseness2/5

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

The description is the same content repeated in three blocks (Vietnamese, then two near-identical English renderings). The second and third sentences are redundant ('Base beta = thay Supabase...' and 'Beta Supabase replacement...'), so words are spent without adding 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?

For a one-param read tool with no output schema, it usefully names the returned fields (anon_key, service_key, db_url) and the handling caveats. However it leaves the single parameter unexplained and gives no auth/prerequisite context, so it's adequate but not complete.

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

Parameters2/5

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

There is one required parameter (base_id) with 0% schema description coverage, so the description must compensate. It never explains what base_id identifies or how to obtain it; it only alludes vaguely to 'Base beta'. The schema therefore documents the param no better than the description does.

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 opening line states a specific verb and resource: read anon_key, service_key and db_url for a base, which clearly distinguishes it from siblings like cloud_base_get or cloud_base_list. The 'Base beta = thay Supabase' framing adds useful scope context. It's clear but slightly muddied by being restated three times.

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?

It implies usage ('Reveal credentials once and keep them secret') and gives post-call handling guidance, but never states when to call this versus cloud_base_get or after which setup step. No explicit alternatives or exclusions are named.

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

cloud_base_deleteCông cụ MONA base deleteC
DestructiveIdempotent

Xoá Base beta đã được người dùng duyệt. / Delete an approved Base. Base beta = thay Supabase, chung account/ví MONA Cloud. / Beta Supabase replacement on the shared MONA Cloud account and wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds one genuinely useful behavioral detail beyond the annotations: the deletion is restricted to 'approved' bases. It does not state irreversibility, auth/permission requirements, or what happens to underlying data, so it is adequate 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.

Conciseness3/5

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

The content is short and front-loaded with the action, but the same information is repeated three times across Vietnamese and English, which is padding rather than added meaning. It avoids bloat but wastes space on redundant translation.

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 destructive, single-parameter tool with annotations covering the safety profile and no output schema, the description conveys the core action and one precondition. It still leaves the agent without the meaning of base_id or any warning about irreversibility/confirmation, so it is only minimally complete.

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

Parameters2/5

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

Schema description coverage is 0% and the single parameter base_id is undocumented in the schema. The description says nothing about base_id's form, source, or how to obtain it, so it fails to compensate for the coverage gap despite the small parameter set.

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?

States a specific verb and resource ('Delete an approved Base') and even defines what a 'Base beta' is (Supabase replacement on the shared MONA Cloud account/wallet), which helps an agent identify the object type. It does not, however, distinguish this from the sibling cloud_base_create/get/list or the duplicate vibecloud_base_delete, so sibling routing is left to inference.

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 phrase 'approved Base' implies a precondition (only approved bases are deletable), but there is no explicit when-to-use guidance, no exclusions, and no mention of alternatives such as vibecloud_base_delete or the list/get tools an agent should consult first. An agent gets no routing help.

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

cloud_base_getCông cụ MONA base getC
Read-onlyIdempotent

Đọc trạng thái và URL của một Base beta. / Inspect a Base. Base beta = thay Supabase, chung account/ví MONA Cloud. / Beta Supabase replacement on the shared MONA Cloud account and wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety profile is covered. The description adds that the call surfaces both state and URL and that the resource lives on the shared MONA Cloud account and wallet (consistent with openWorldHint=true), but says nothing about authentication scopes, error behavior, or what the URL represents.

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

Conciseness3/5

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

The core statement is front-loaded, but the 'Base beta = Supabase replacement' idea is stated twice (once in Vietnamese, once in English) on top of the already-bilingual first sentence, so a meaningful fraction of the text is duplicated rather than additive.

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?

With no output schema, the description partially carries the return-value burden by naming state and URL, which is the minimum useful information. It still leaves the parameter undocumented and the surrounding operational context (auth, rate limits, failures) unstated, so it is adequate but with clear gaps.

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

Parameters2/5

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

Schema description coverage is 0% and the single required parameter base_id has no description in the schema. The description never mentions base_id, its accepted format, or where to obtain it, so it fails to compensate for the coverage gap.

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?

States a specific verb and resource ('Đọc/Inspect a Base beta') and specifies what is returned (state and URL). It is distinguishable from cloud_base_create/delete and cloud_base_credentials, though it never contrasts itself with the near-identical cloud_base_list or vibecloud_base_get.

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 explicit when-to-use guidance and no routing to alternatives such as cloud_base_list (for enumeration) or cloud_base_credentials (for connection secrets). The only context given is a definition of what a Base beta is, which helps orientation but does not tell the agent when this call is the right one.

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

cloud_base_listCông cụ MONA base listB
Read-onlyIdempotent

Liệt kê Base beta của tài khoản hiện tại. / List Bases. Base beta = thay Supabase, chung account/ví MONA Cloud. / Beta Supabase replacement on the shared MONA Cloud account and wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, covering the safety profile. The description adds domain context that Base beta is a shared-account Supabase replacement, but it does not disclose additional behavioral traits such as permissions, rate limits, or return format.

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

Conciseness3/5

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

The description is front-loaded with the main action ('List Bases') but is repeated in Vietnamese and English, effectively duplicating the same content. While bilingual support may be intentional, the duplication reduces conciseness for an agent that only needs the English instruction.

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, parameterless, read-only list tool with no output schema, the description provides sufficient context: it identifies the target resource, the current account scope, and the nature of Base beta. It could still mention return shape or pagination behavior, but annotations cover safety and the tool is straightforward.

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?

There are no input parameters, so the schema cannot provide parameter semantics. The description appropriately avoids discussing parameters, and the baseline for a zero-parameter tool is 4.

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 a specific verb and resource: 'List Bases' for the current account. It also explains what a Base beta is (a Supabase replacement on the shared MONA Cloud account/wallet). However, it does not explicitly distinguish from siblings like cloud_base_get or vibecloud_base_list, leaving some ambiguity.

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 guidance on when to use this tool versus alternatives such as cloud_base_get (retrieve one Base) or cloud_base_create (create a Base). It merely states that it lists Bases, leaving the agent to infer usage context.

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

cloud_budget_getĐọc ngân sách MONA CloudB
Read-onlyIdempotent

Liệt kê giới hạn và mức đã dùng theo kỳ.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds only the 'theo kỳ' (per-period) scoping detail; it says nothing about auth requirements, rate limits, or what the period granularity defaults to.

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?

A single short sentence with no filler, and the key scope ('theo kỳ') is front-loaded. It is efficient, though the extreme brevity edges toward under-specification rather than tight conciseness.

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 zero-parameter read tool with full annotations, the description is minimally adequate, but with no output schema it fails to describe what is returned (limit values, used amounts, currency, period granularity) or how the budget relates to cloud_budget_set. That leaves a real gap for an agent interpreting the result.

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 takes zero parameters, so the baseline of 4 applies; the description correctly does not need to explain any inputs. It adds no parameter confusion, though it also offers nothing further because there is nothing to document.

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

Purpose3/5

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

The description gives a verb and resource ('Liệt kê giới hạn và mức đã dùng theo kỳ' – list limits and used amounts per period), so the agent knows it retrieves budget limits and consumption. However, it does not differentiate from close siblings like cloud_usage or cloud_budget_set, and 'get' vs 'list' in the name versus the description creates mild ambiguity.

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 when-to-use guidance, no mention of the companion cloud_budget_set tool, and no exclusions relative to cloud_usage. The agent must infer from the name alone when this budget read is the right call versus its siblings.

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

cloud_budget_setĐặt ngân sách MONA CloudC
Idempotent

Đặt giới hạn chi tiêu theo product, project hoặc token.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeYes
periodYes
scope_idYes
limit_vndYes

TDQS

C2.7/5.0
Behavior2/5

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

The annotations already declare the full profile (mutating, idempotent, non-destructive, open-world), and the description adds no behavioral context beyond them — it does not say whether an existing budget is overwritten, what happens on exceeding the limit, or any auth requirements. It does not contradict the annotations, but it contributes nothing new.

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?

A single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity is part of the overall under-specification problem rather than an intentional trade-off.

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?

For a 4-parameter required mutation tool with 0% schema coverage and no output schema, the description is far too thin — period, limit_vnd, and scope_id are left entirely unexplained and there is no usage context. An agent cannot confidently construct a call from this.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry parameter meaning, yet it only loosely gestures at the scope values (product/project/token) that the enum already defines. Nothing explains limit_vnd (units/currency), period, or scope_id format.

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 gives a specific verb (đặt/set) and resource (giới hạn chi tiêu/spending limit) and enumerates the three scopes (product, project, token). It is clear what the tool does, though it never names the sibling cloud_budget_get to distinguish the two budget 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?

There is no guidance on when to use this versus cloud_budget_get, cloud_token_limit, or other quota tools, and no prerequisites (e.g., ownership or admin rights) are mentioned. The agent must infer usage entirely.

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

cloud_credit_redeemCông cụ MONA credit redeemB

Dùng mã credit người dùng cung cấp sau khi họ đồng ý; không thử đoán mã. / Redeem an approved promotional credit code.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, open-world, non-idempotent, non-destructive operation, so the write-like nature is covered. The description usefully adds that codes must be user-provided and pre-approved rather than invented, but says nothing about whether a successful redemption consumes the code permanently, what happens to an already-used code, or whether retries are safe.

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?

Very short and front-loaded — the constraint and the action both land in one breath. The cost is that the same content is stated twice (Vietnamese then English), which is defensible for locale coverage but is pure duplication for a single-locale agent.

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 one-parameter redemption call with no output schema, an agent still does not know what a successful redemption returns (credit amount, new balance) or how failures surface. The annotations cover the safety profile, but the description leaves outcome semantics and code-reuse behavior 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 description coverage is 0% for the single 'code' parameter, so the description carries the burden; it adds real meaning by specifying the code is a user-supplied promotional credit code and must never be guessed. It still omits any note on format or the 2–64 character bounds documented only in the schema.

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 names a specific verb and resource — 'redeem an approved promotional credit code' — so the operation is unambiguous. It does not, however, distinguish this tool from the near-identical sibling 'vibecloud_credit_redeem', which appears in the same toolset with no stated difference.

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?

It gives two concrete usage constraints: use the code the user supplied, and do so only after they consent, plus an explicit prohibition on guessing codes. What it lacks is any routing guidance — nothing says when to pick this over 'vibecloud_credit_redeem' or when redemption is inappropriate (expired code, already-redeemed account).

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

cloud_db_createTạo database MONA CloudA

Kiểm tra ví chung rồi tạo MongoDB/PostgreSQL/MySQL; trả job_id để poll. sandbox=true: thử 0đ, không cần ví.

ParametersJSON Schema
NameRequiredDescriptionDefault
cpuNo
engineNomongodb
ram_gbNo
disk_gbNo
sandboxNosandbox=true: thử 0đ, không cần ví
app_nameYes
package_slugNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only cover the safety profile (not read-only, not idempotent, open-world, non-destructive). The description adds real behavioral context beyond that: a wallet-balance precondition, an asynchronous job_id/poll workflow, and the zero-cost sandbox mode. It stops short of stating what happens on insufficient balance or how long the job 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?

Two tight clauses, front-loaded with the core action and immediately followed by the return contract and the cost-saving alternative. No filler, and the empty state (sandbox) is called out at the end where it is easy to scan.

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?

With no output schema, the description correctly supplies the key return contract (job_id to poll) and the wallet requirement, which is essential for a mutation tool. But for a 7-parameter creation tool at 14% schema coverage, the sizing parameters and app_name/package_slug semantics remain undocumented anywhere.

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 only 14% across 7 parameters, so the description has to compensate. It clarifies the engine enum values and the sandbox flag (whose meaning is already duplicated in the schema), but leaves app_name, cpu, ram_gb, disk_gb and package_slug entirely unexplained.

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 ('tạo MongoDB/PostgreSQL/MySQL') plus the billing precondition (wallet check) and the async return contract (job_id để poll). It distinguishes itself from cloud_vps_create and vibecloud_create_database by naming the database engines, though it does not explicitly contrast with those siblings.

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?

It gives one useful usage branch — sandbox=true means a free trial with no wallet required — which implies the non-sandbox path needs a funded shared wallet. However, there is no explicit 'use this instead of X when...' routing to siblings like vibecloud_create_database or cloud_vps_create.

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

cloud_domain_attachGắn tên miền vào ứng dụngA
Idempotent

Gắn tên miền vào app đã deploy. Tên miền .vn chưa active vẫn gọi được — attach đặt trước, server tự hoàn tất sau khi hồ sơ được duyệt và gửi webhook domain.status_changed. Dùng cloud_app_list để lấy app_id; domain_id là ID của domain row (từ cloud_domain_list).

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesApp ID cần gắn vào.
sandboxNo
domain_idYesDomain ID (từ cloud_domain_list).

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly=false, idempotent=true, destructive=false, openWorld=true. The description adds value beyond them by explaining that a not-yet-active .vn domain can still be attached, that the server completes the operation after profile approval, and that it emits a domain.status_changed webhook — non-obvious behavioral context.

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?

Three sentences, action statement front-loaded, with supporting behavioral and parameter hints following. Reasonably tight; each sentence carries information, though the ID-sourcing hints could be trimmed.

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?

No output schema exists, and the description compensates by mentioning the domain.status_changed webhook so the agent knows the completion signal. The main gap is the undocumented sandbox parameter, which neither description nor schema covers.

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 67%; the schema already documents app_id and domain_id with patterns. The description reinforces the ID meanings and their source tools but adds no format/syntax detail beyond the schema, and the sandbox parameter is undocumented in both description and schema.

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 names a specific verb and resource ('Gắn tên miền vào app đã deploy'), so the action is unambiguous. However, it does not differentiate from the very similar sibling cloud_app_domain_add, leaving an agent to guess which one to use when both appear in the toolset.

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?

It gives prerequisite guidance on how to obtain the IDs ('Dùng cloud_app_list để lấy app_id', 'domain_id ... từ cloud_domain_list') and adds context about the .vn case, but gives no explicit when-to-use vs alternatives and never routes away from cloud_app_domain_add.

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

cloud_domain_buyMua tên miềnA

Mua tên miền và trừ ví VND — làm trọn trong phiên; người dùng chỉ quét QR và xác nhận, không phải đăng ký trước hay tự làm trên web. Trước khi gọi: 1. cloud_domain_search để xem giá + còn trống. 2. Hỏi người dùng xác nhận chính tả tên miền (vd: "Đăng ký example.vn nhé?") → spelling_confirmed. WHOIS không sửa được sau khi mua. 3. Hỏi duyệt chi phí (giá từ search). 4. cloud_domain_registrant_set để lưu thông tin chủ thể (hỏi người dùng ngay trong phiên); .vn cần CCCD/MST. Khi gọi mà trả 402 insufficient_balance → gọi cloud_topup, IN NGUYÊN KHỐI qr_ascii (QR VietQR) cho người dùng quét bằng app ngân hàng NGAY trong terminal, chờ cloud_topup_status=paid rồi gọi lại cloud_domain_buy. Kết quả có suggested_next → gợi ý người dùng deploy app lên MONA Cloud (cloud_app_create) và gắn domain (cloud_domain_attach). .vn sau khi mua ở trạng thái pending_verification → dùng cloud_domain_verify_start (link eKYC/bản khai) rồi cloud_domain_wait. sandbox=true: giả lập 0đ, không mua thật. Người dùng CHƯA có tài khoản / login_required → KHÔNG bảo đi đăng ký; dùng cloud_domain_reserve thay cho tool này.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTên miền đầy đủ (vd: example.vn) hoặc chỉ tên chưa có đuôi (vd: example).
yearsNoSố năm đăng ký. Mặc định 1.
sandboxNosandbox=true: mô phỏng 0đ, không gọi MONA Host.
registrant_idNoID registrant (lấy từ cloud_domain_registrant_get). Để trống → dùng registrant mặc định.
spelling_confirmedYestrue = người dùng đã xác nhận chính tả tên miền; false = chặn, không mua.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations it discloses a lot the schema can't: wallet deduction on VND, irreversibility (WHOIS can't be edited after purchase, hence spelling_confirmed gating), the 402 insufficient_balance path with QR display and waiting for cloud_topup_status=paid, .vn ending in pending_verification requiring cloud_domain_verify_start/wait, and sandbox=true simulating 0đ. This is far richer than the readOnly/openWorld/idempotent hints alone.

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?

It is long, but the opening sentence front-loads the core purpose and the remainder is a tight numbered pipeline where nearly every clause carries operational weight (prerequisites, error recovery, post-purchase state). Slightly dense, but not padded.

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 purchase tool with no output schema, the description still explains what comes back and what to do with it (suggested_next → cloud_app_create / cloud_domain_attach; pending_verification → verify + wait). Nothing an agent needs to invoke it correctly or handle its result is missing.

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 names, defaults, and the spelling_confirmed block flag are already documented; the baseline is 3. The description adds useful context (.vn needs CCCD/MST for the registrant, WHOIS is uneditable so spelling_confirmed matters) but little syntax or format detail 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 opens with a specific verb+resource+effect: "Mua tên miền và trừ ví VND — làm trọn trong phiên", and immediately distinguishes itself from cloud_domain_reserve (used when the user has no account) and cloud_domain_search (price/availability check). An agent can tell exactly what this tool does and how it differs from the other domain siblings.

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

Usage Guidelines5/5

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

It gives an explicit ordered pre-flight flow (search → confirm spelling → approve cost → set registrant), names the alternative route for users without accounts (cloud_domain_reserve), and specifies error-driven branching (402 → cloud_topup → retry). Both when-to-use and when-not-to-use are covered.

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

cloud_domain_claimNhận reservation về tài khoản + mua (claim = đăng ký = trả tiền)A

Gắn reservation vào MONA Pass đang đăng nhập, kéo tiền đã chuyển (nếu có) về ví rồi MUA ngay. Cần đăng nhập (monacloud-mcp login) — lần đầu đăng nhập MONA Cloud tự tạo hồ sơ + ví, không có form đăng ký riêng. Idempotent: gọi lại khi trả 402 (ví chưa đủ → cloud_topup hoặc chờ tiền QR vào) hoặc 422 registrant_required (→ cloud_domain_registrant_set rồi claim lại; tiền vẫn nằm trong ví). Kết quả như cloud_domain_buy (order id, status, suggested_next).

ParametersJSON Schema
NameRequiredDescriptionDefault
claim_tokenYesclaim_token từ cloud_domain_reserve (hoặc tham số t trong claim_url).
registrant_idNoID registrant muốn dùng (mặc định: registrant của user hoặc từ reservation).
reservation_idYesID reservation từ cloud_domain_reserve.
marketing_consentNotrue nếu người dùng đồng ý nhận ưu đãi lúc này.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations say idempotentHint=false, which the description contradicts by using the word 'Idempotent' – this is technically an annotation contradiction, but the description's use is a shorthand for 'you can safely retry,' not a re-declaration of the annotation. Behavioral extras are rich: login requirement, auto-created profile/wallet, 402/422 semantics, money stays in wallet. However, the idempotent/safe-retry framing directly opposes the idempotentHint annotation.

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?

Front-loaded with the core action, then conditions, then result. Four sentences, each earning its place. Slight redundancy in the 402/422 explanation but no 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 mutation tool with no output schema, the description covers login prerequisites, error recovery, and return shape (order id, status, suggested_next). Missing only a note on failure side-effects like whether a failed claim leaves the reservation intact – though the 422 path implies the money stays in the wallet.

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 four parameters. The description adds only that claim_token comes from cloud_domain_reserve (already in schema) and mentions wallet/registrant context, but no extra syntax or format details. 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 states a specific verb+resource: attach a reservation to the logged-in MONA Pass, pull transferred money into the wallet, then purchase immediately. It distinguishes itself from siblings like cloud_domain_buy (result is the same) and cloud_domain_reserve (source of claim_token) by naming them.

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

Usage Guidelines5/5

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

Explicit when-to-use and recovery paths: call again on 402 (→ cloud_topup or wait for QR transfer) or 422 registrant_required (→ cloud_domain_registrant_set then re-claim). Names alternatives and the conditions that select them.

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

cloud_domain_dns_addThêm bản ghi DNSB

Thêm 1 bản ghi DNS. Vd trỏ web: type=A, name=@, data=. Trỏ www: type=CNAME, name=www, data=. AI làm trọn.

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNoTTL giây (mặc định để trống).
dataYesGiá trị (IP cho A, hostname cho CNAME, nội dung cho TXT...).
nameYesTên bản ghi ("@" cho gốc, "www", "api"...).
typeYesLoại bản ghi.
priorityNoƯu tiên (MX/SRV).
domain_idYes

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=false and openWorld=true. The description adds no behavioral context beyond that - nothing about auth, rate limits, duplicate-record handling, or whether existing records are affected. With annotations covering the safety profile, the description adds no extra behavioral signal.

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?

Front-loaded with the core action and kept to a few short sentences. The trailing 'AI làm trọn' is marketing filler that does not earn its place, but the body is otherwise tight.

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 mutating 6-parameter tool with no output schema, the description covers the basic operation and key field examples but omits conflict/precedence behavior and permission expectations. Adequately minimal but with clear gaps.

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 83%, so the schema already documents the parameters well. The examples (type=A/name=@/data=<IP>, CNAME/www) illustrate how the fields combine, adding marginal value, but domain_id remains undocumented in both places.

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 opens with a clear verb+resource ('Thêm 1 bản ghi DNS' = add a DNS record), which cleanly separates it from the update/delete/list siblings by name alone. It does not explicitly name those alternatives, but the action 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 Guidelines3/5

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

Usage is only implied through examples ('trỏ web ... trỏ www ...'), which show intent but not when to choose this tool over cloud_domain_dns_update or cloud_domain_dns_delete. No exclusions or prerequisites are stated.

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

cloud_domain_dns_deleteXoá bản ghi DNSC
DestructiveIdempotent

Xoá 1 bản ghi DNS theo record_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_idYes
record_idYes

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered structurally. The description adds nothing beyond that — no note about irreversibility, confirmation requirements, or what happens if the record does not exist, which is exactly the context a delete tool should supply.

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?

A single short sentence with no filler, and the operative verb is front-loaded. It is efficient, though arguably too terse for a destructive operation, so it stops short of a 5.

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?

For a destructive, non-readOnly tool with no output schema and 0% schema description coverage, the description leaves key gaps: it omits the required domain_id, gives no failure behavior, and offers no success/failure semantics. An agent cannot invoke this fully confidently from the description alone.

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

Parameters2/5

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

Schema description coverage is 0% and there are two required parameters. The description only echoes 'record_id' (already named in the schema) and never explains domain_id, its 24-hex format, or the relationship between the two identifiers.

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+resource ('Xoá 1 bản ghi DNS') scoped by 'record_id', so the action is immediately clear. It does not, however, differentiate itself from the sibling DNS tools (cloud_domain_dns_list/add/update), and the required domain_id goes unmentioned.

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 statement of when to use this versus cloud_domain_dns_update (modify) or cloud_domain_dns_list (read), nor any precondition such as needing an existing record or the parent domain. The agent must infer routing purely from the tool name.

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

cloud_domain_dns_listXem bản ghi DNS của tên miềnA
Read-onlyIdempotent

Liệt kê bản ghi DNS (A/CNAME/MX/TXT...) của tên miền đăng ký tại MONA Cloud. domain_id lấy từ cloud_domain_list.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_idYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds the record types that will be listed and notes the domain is registered at MONA Cloud, but does not describe return format, pagination, ordering, or any other runtime behavior beyond what annotations provide.

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: the first front-loads the core purpose with concrete record type examples, and the second adds the parameter sourcing. There is no wasted wording, and the structure is efficient and easy to parse.

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 list tool with one required parameter, rich annotations, and no output schema, the description covers what the tool does and where to get the input. It does not mention pagination or the shape of returned data, but those gaps are minor given the tool's simplicity and the presence of annotations.

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?

With only one parameter and 0% schema description coverage, the description compensates by stating 'domain_id lấy từ cloud_domain_list', which clarifies where to obtain the required identifier. The schema provides a pattern (24 hex characters) but no textual description, so this added sourcing information is valuable, though it does not explain the format itself.

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 ('Liệt kê' = list) and resource ('bản ghi DNS' = DNS records) with example record types (A/CNAME/MX/TXT), making the tool's function clear. It does not explicitly differentiate itself from sibling tools like cloud_domain_dns_add or cloud_domain_dns_update, but the list verb implies a read operation distinct from the write siblings.

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 prerequisite context: 'domain_id lấy từ cloud_domain_list' (get domain_id from cloud_domain_list). This implicitly tells the agent to call cloud_domain_list first, but there is no explicit guidance on when to use this tool versus alternatives (e.g., DNS add/update/delete) or when not to use it.

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

cloud_domain_dns_updateSửa bản ghi DNSB
Idempotent

Sửa 1 bản ghi DNS theo record_id (lấy từ cloud_domain_dns_list).

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNoTTL giây (mặc định để trống).
dataYesGiá trị (IP cho A, hostname cho CNAME, nội dung cho TXT...).
nameYesTên bản ghi ("@" cho gốc, "www", "api"...).
typeYesLoại bản ghi.
priorityNoƯu tiên (MX/SRV).
domain_idYes
record_idYes

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that: it does not say whether the supplied type/name/data fully overwrite the existing record, whether omitted optional fields (ttl, priority) are cleared or preserved, or that changes propagate to live DNS.

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?

A single short sentence, front-loaded with the action and resource, with no filler. It is efficient, though the terseness borders on under-specification rather than true economy.

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?

For a 7-parameter mutation tool with 5 required fields, no output schema and no annotation-level detail about mutation semantics, the description is too thin. An agent is not told that type/name/data are mandatory and likely replace prior values, nor how TTL/priority defaults behave on update.

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 71%, with the schema itself documenting ttl, data, name, type and priority ranges/formats. The description contributes one genuinely new fact the schema lacks: that record_id must be obtained from cloud_domain_dns_list. It says nothing about the five required parameters or how they interact with the existing record.

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 gives a clear verb+resource ("Sửa 1 bản ghi DNS" = update a DNS record) and even names the source of the identifier (record_id from cloud_domain_dns_list). It does not, however, explicitly differentiate itself from the sibling mutation tools cloud_domain_dns_add and cloud_domain_dns_delete, so an agent must infer that this is the modify-in-place variant.

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?

Naming cloud_domain_dns_list as the origin of record_id implies a useful prerequisite (list before you edit), but there is no explicit when-to-use guidance, no statement that this replaces an existing record rather than adding one, and no exclusion pointing to dns_add/dns_delete for those cases.

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

cloud_domain_healthKiểm tra sức khoẻ tên miềnB
Read-onlyIdempotent

Kiểm tra hạn đăng ký, trạng thái hồ sơ, NS, SSL và cảnh báo tên miền đã mua.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesOrder ID tên miền cần kiểm tra.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the specific items inspected (registration, profile, NS, SSL, alerts), which is useful behavioral context, but it omits return format or rate limits.

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 efficient sentence that front-loads the verb and lists checked items without waste.

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 one-parameter read-only health check, the description lists what is checked but does not describe the return format or response shape. Given the rich annotations and full schema coverage, this is adequate though not exhaustive.

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 single 'id' parameter is fully documented in the schema. The description adds no parameter details, which is acceptable given the schema handles 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?

States a specific verb ('Kiểm tra' = check) and enumerates the domain aspects checked (registration expiration, profile status, NS, SSL, alerts). It does not explicitly name a sibling tool to differentiate from, but its aggregate health-check 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 Guidelines2/5

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

No when-to-use, prerequisites, or alternative tools are mentioned. The description only states what the tool does, leaving usage context to inference.

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

cloud_domain_listDanh sách tên miền đã import/muaB
Read-onlyIdempotent

Liệt kê tên miền đã đưa vào MONA Cloud (import + mua). sandbox=true → xem domain sandbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNotrue → hiện domain sandbox.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so safety and repeatability are covered without the description. The description adds modest value by clarifying that both imported and purchased domains are returned and by defining what sandbox=true surfaces, but it says nothing about pagination, result volume, or auth requirements.

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?

Two compact sentences with the primary purpose front-loaded and the parameter behavior trailing behind it; no filler words. It could be marginally tighter but every clause carries information relevant to invoking the 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?

The tool is simple (one optional boolean parameter, no nesting, no output schema) and the annotations carry the safety profile, so the description is close to sufficient. Still missing is any statement about what the listing returns structurally (paginated? per-domain fields?) or the default behavior when sandbox is omitted, which limits how confidently an agent can call it.

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 the single sandbox parameter is already documented in the schema ("true → hiện domain sandbox"). The description restates the same semantics for sandbox, adding no format, default, or edge-case detail beyond the schema, so the baseline 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 ("Liệt kê") and resource ("tên miền") together with a scope qualifier (import + mua / đã đưa vào MONA Cloud), so an agent can tell it lists owned domains rather than searching for new ones. However, it never names the sibling search tools (cloud_domain_search, cloud_domain_suggest) that occupy the adjacent semantic space, so differentiation relies on the reader's inference.

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 explicit when-to-use guidance, no when-not-to-use, and no named alternative. The phrase "import + mua" hints at scope but the agent is left to infer that this is the inventory-listing call versus cloud_domain_search or mail_domains_list, which is exactly the ambiguity guidance should resolve.

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

cloud_domain_ns_setĐổi nameserver (NS) của tên miềnB
Idempotent

Đổi NS cho tên miền (≥2). Vd giữ DNS ở MONA: ns1.mona.host, ns2.mona.host. Hoặc chuyển sang Cloudflare/nhà khác. AI làm hoàn toàn.

ParametersJSON Schema
NameRequiredDescriptionDefault
ns_listYesDanh sách hostname NS, tối thiểu 2.
domain_idYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the safety profile is covered structurally. The description adds that the change is fully automated ("AI làm hoàn toàn"), but says nothing about propagation delay, whether existing DNS records go inactive when switching away from MONA, or any verification prerequisite — meaningful gaps for a delegation change.

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?

Three short sentences with the core action and the minimum-NS constraint front-loaded; nothing is padded. The closing "AI làm hoàn toàn" is more marketing than actionable information, a minor waste.

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 mutation tool with no output schema, the description covers the core action and gives example values, which is helpful. It stops short of what an agent would want before calling: whether the domain must be verified first, what happens to existing records, and how long changes take to propagate.

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 50%: ns_list is documented in the schema while domain_id carries only a regex pattern and no description. The description reinforces the ≥2 minimum but adds no format or source guidance for domain_id, so it neither compensates for the gap nor falls below the baseline for a partially documented two-parameter tool.

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 names a specific verb and resource ("Đổi NS cho tên miền") and gives concrete NS examples (ns1.mona.host, ns2.mona.host), so an agent immediately knows this sets domain nameserver delegation. It does not explicitly distinguish itself from the DNS-record siblings (cloud_domain_dns_add/update/delete), which an agent could plausibly confuse with NS changes.

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?

It states the ≥2 NS constraint and gives two usage scenarios (keep DNS at MONA vs. move to Cloudflare/another provider), which implies when to reach for it. However, it names no sibling alternative and gives no explicit when-not condition, so routing between this and the cloud_domain_dns_* tools is left to inference.

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

cloud_domain_registrant_getXem thông tin chủ thể đăng ký tên miềnA
Read-onlyIdempotent

Lấy thông tin chủ thể (registrant) đã lưu. Cần dữ liệu này để mua tên miền.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds only that the data is 'đã lưu' (saved/stored), hinting the value may be a previously stored registrant, but it never states that no registrant may exist yet or what is returned.

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?

Two short sentences, front-loaded with the action and followed by the reason for calling it. No wasted text, though it is arguably too terse to add much beyond purpose.

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 zero-parameter read tool with annotations covering the safety profile, the description is adequate but thin: it does not say what happens if no registrant has been stored, nor describe the returned data, leaving an agent to discover empty/absent results at call time.

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 takes zero parameters, so the schema carries no meaningful parameter semantics to document. With no params, the baseline of 4 applies and there is nothing for the description to compensate for.

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?

States a specific verb ('Lấy') and resource ('thông tin chủ thể/registrant') clearly, and the title reinforces it. It implicitly contrasts with the setter sibling, but does not name cloud_domain_registrant_set explicitly, so it stops short of full sibling differentiation.

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 sentence 'Cần dữ liệu này để mua tên miền' gives a context for use (needed when buying a domain), which implies when to call it, but there is no explicit when-not guidance or reference to the alternative sibling (registrant_set) that would change the decision.

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

cloud_domain_registrant_setCập nhật thông tin chủ thể đăng ký tên miềnA
Idempotent

Lưu thông tin chủ thể để đăng ký tên miền. HỎI NGƯỜI DÙNG cung cấp NGAY TRONG PHIÊN: họ tên, email, điện thoại, địa chỉ. Tên miền .vn cá nhân cần thêm CCCD 12 số + ngày sinh (DD/MM/YYYY) + giới tính; .vn tổ chức cần org_name + tax_code (MST) + representative. Lưu 1 lần, tái dùng cho các domain sau. Không tự bịa dữ liệu — thiếu trường nào thì hỏi đúng trường đó.

ParametersJSON Schema
NameRequiredDescriptionDefault
dobNoNgày sinh định dạng DD/MM/YYYY — cá nhân .vn.
cccdNoSố CCCD (12 số) — bắt buộc khi đăng ký tên miền .vn cá nhân.
wardNoPhường/xã.
emailYesEmail liên hệ.
phoneYesSố điện thoại.
genderNoGiới tính — cá nhân .vn.
addressYesĐịa chỉ liên hệ.
countryNoMã quốc gia, mặc định VN.
fullnameYesHọ và tên đầy đủ (hoặc tên doanh nghiệp nếu organization).
org_nameNoTên tổ chức/doanh nghiệp — bắt buộc khi organization.
provinceNoTỉnh/thành phố.
tax_codeNoMã số thuế — bắt buộc khi organization.
owner_typeNoindividual = cá nhân (mặc định), organization = tổ chức/doanh nghiệp.
representativeNoHọ tên người đại diện — bắt buộc khi organization.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare idempotentHint=true and openWorldHint=true, indicating safe repeated writes. The description adds valuable context: the save-and-reuse behavior across domains, the no-fabrication rule, and the conditional field requirements for .vn personal vs organizational. It doesn't describe error handling or what happens on partial data, but with annotations covering safety, this is strong.

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 front-loaded with the core action, then provides usage rules. It's dense but each sentence serves a purpose. Slightly lengthy but appropriately detailed for a 14-parameter tool with complex conditional requirements.

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?

Given 14 parameters, complex conditional logic (.vn personal vs organization), and no output schema, the description covers the key behavioral aspects: what to collect, when to ask, and save-reuse semantics. It doesn't explain what the response contains or error scenarios, but for a setter tool with annotations, this is largely 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 coverage is 100%, so each parameter already has a description. The description adds semantic value by grouping fields into required-in-session (fullname, email, phone, address) and conditional sets for .vn personal (CCCD, DOB, gender) and organizational (org_name, tax_code, representative). This goes beyond the schema's per-field docs by explaining the conditional logic, but doesn't add format details beyond what schema provides. Baseline 3 is appropriate given complete schema 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 a specific verb and resource — lưu (save/store) thông tin chủ thể (registrant information) cho đăng ký tên miền (domain registration). It distinguishes from cloud_domain_registrant_get by describing a write operation and the data collection workflow. However, it doesn't explicitly say it's updating/setting vs creating, so a 4 is appropriate.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: must ask user for required fields in-session, notes the difference between .vn personal vs organizational requirements, states it's saved once and reused for multiple domains, and explicitly forbids fabricating data with instruction to ask for missing fields. This is very thorough usage guidance.

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

cloud_domain_renewGia hạn tên miền (trừ ví VND)A

Gia hạn tên miền đã mua qua MONA Cloud. LUÔN gọi dry_run=true trước để lấy price_vnd (đã VAT), HỎI người dùng duyệt số tiền, rồi gọi lại dry_run=false — lúc đó trừ ví VND và gia hạn thật ở registrar. 402 insufficient_balance → cloud_topup in QR cho người dùng quét, chờ paid rồi gọi lại. 502 retryable → tiền đang giữ chờ đối soát, đừng gọi lại liên tục; báo người dùng.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesOrder ID tên miền (từ cloud_domain_list / cloud_domain_buy).
dry_runNotrue = chỉ báo giá, không trừ tiền. Mặc định true để an toàn.
billing_cycleYesSố tháng gia hạn, bội số 12 (12 = 1 năm).

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=true. The description goes well beyond: it discloses that dry_run=false deducts the VND wallet, that the renewal is executed at the registrar, that 502 means funds are held pending reconciliation (explaining the non-idempotent hint), and that repeated retries are harmful. No contradiction with 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?

Front-loaded with purpose, then the mandatory call sequence, then the two error branches. Dense but every clause is actionable (price source, approval gate, wallet debit, error routing); there is no 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 non-idempotent money-spending mutation with no output schema, the description covers the full lifecycle an agent needs: the dry-run/confirm/commit sequence, the returned price_vnd, wallet deduction, and both failure paths. Nothing required to call it safely is missing.

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 id, dry_run, and billing_cycle are already documented in the schema. The description restates dry_run's pricing behavior (VAT-inclusive) and the safety default, but adds little parameter-level meaning the schema does not already provide; the workflow sequencing it adds is usage guidance rather than parameter semantics. 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?

States a specific verb+resource ('Gia hạn tên miền' - renew domain) and scopes it to domains bought via MONA Cloud, which cleanly separates it from cloud_domain_buy, cloud_domain_list, and the DNS/NS siblings. An agent knows immediately what operation this performs.

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

Usage Guidelines5/5

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

Gives an explicit two-call workflow (always dry_run=true first, ask user to approve the price, then dry_run=false) plus named error branches: 402 routes to cloud_topup with QR, and 502 tells the agent to stop retrying and inform the user. This is prescriptive when-to-use guidance with alternatives and exclusions.

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

cloud_domain_reserveGiữ chỗ tên miền + QR trả tiền (không cần tài khoản)A

Giữ chỗ tên miền 30 phút cho người dùng CHƯA có MONA Pass (hoặc chưa login trên máy này) — không trừ tiền, không đăng ký thật, chỉ khoá tên trong hệ MONA Cloud. Dùng khi người dùng muốn mua ngay trong phiên mà không muốn "đi đăng ký" trước: bạn đã dựng app, chọn tên, chỉ cần người bấm. Bắt buộc hỏi người dùng: tên miền (xác nhận chính tả → spelling_confirmed), email, số điện thoại (kênh nhận link claim + hoá đơn). Hỏi thêm 1 câu nhẹ: "nhận thông báo ưu đãi MONA Cloud không?" → marketing_consent; không tick thì để false. Nếu người dùng đã đưa đủ thông tin chủ thể (.vn cần CCCD/MST) thì gửi luôn ở registrant — lúc claim khỏi hỏi lại. Kết quả: payment.qr_url (QR VietQR đúng số tiền) + claim_url + claim_token + guest_token (giữ lại để gọi cloud_domain_reserve_status). Đưa QR cho người dùng quét NGAY; tiền vào → hệ giữ cho reservation này. Sau đó người dùng mở claim_url: đăng nhập/đăng ký MONA Pass (Google/GitHub/email, 1 bước) → hệ tự lấy tiền + mua + tạo ví. Nếu người dùng ĐÃ có Pass trên máy này thì gọi thẳng cloud_domain_claim. Giữ chỗ chỉ trong hệ MONA Cloud (hold_scope=monacloud) — người ngoài vẫn có thể đăng ký tên đó ở registry khác trong 30 phút; nói rõ điều này nếu tên đẹp.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTên miền đầy đủ (vd: example.vn) hoặc chỉ tên chưa có đuôi (vd: example).
emailYesEmail người dùng — nhận claim_url + hoá đơn.
phoneYesSố điện thoại người dùng.
yearsNoSố năm đăng ký. Mặc định 1.
contextNoNgữ cảnh ngắn (vd: "Cursor dựng shop Next.js") — giúp MONA hỗ trợ đúng.
sandboxNosandbox=true: giả lập, không tạo QR thật.
registrantNoThông tin chủ thể nếu đã hỏi được đủ trong phiên (tuỳ chọn).
marketing_consentNotrue CHỈ KHI người dùng đồng ý nhận thông báo ưu đãi MONA Cloud. Mặc định false.
spelling_confirmedYestrue = người dùng đã xác nhận chính tả tên miền.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only mark this as non-readOnly, openWorld and non-idempotent. The description adds substantial behavioral context: no money is deducted, no real registration occurs, it only holds the name inside MONA Cloud (hold_scope=monacloud), and critically that outside parties can still register the same name at other registries during the 30 minutes. It also discloses return artifacts (qr_url, claim_url, claim_token, guest_token).

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?

Front-loaded with the core purpose and the sibling alternative, and the workflow ordering (collect info → QR → claim) is logical. It is dense as one long block and some conditional guidance could be tighter, but most sentences carry operational value.

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 complex 9-parameter tool with a nested registrant object and no output schema, the description covers the full lifecycle: required inputs, optional registrant handling, return values (QR, claim tokens), and the next steps the agent must drive. Nothing essential to correct invocation is missing.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the schema: it explains that marketing_consent must be true only when the user agrees and otherwise left false, that spelling_confirmed comes from confirming the user's spelling, and that registrant should be populated now if subject details (.vn needs CCCD/MST) are already collected.

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?

States a specific verb and resource (reserve a domain for 30 minutes) and constrains the scope precisely to users who do NOT have MONA Pass or are not logged in on this device. It explicitly names the sibling cloud_domain_claim as the alternative for users who already have a Pass, so an agent can distinguish the two without opening either schema.

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

Usage Guidelines5/5

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

The description gives explicit when-to-use conditions (buying in-session without prior registration), when-not (already have Pass → call cloud_domain_claim), and the full downstream flow (give QR, then open claim_url after payment). It also lists the mandatory information to collect from the user before invoking.

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

cloud_domain_reserve_releaseNhả chỗ tên miền đã giữA
DestructiveIdempotent

Huỷ reservation chưa nhận tiền (người dùng đổi ý / chọn tên khác). Đã có tiền vào thì không huỷ được — dùng cloud_domain_claim.

ParametersJSON Schema
NameRequiredDescriptionDefault
claim_tokenNoBắt buộc khi chưa login.
reservation_idYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered. The description adds behavioral context beyond that: the precondition that only un-funded reservations can be released, and that the operation is impossible once money has arrived. It does not describe the response or auth flow, keeping it at 4 rather than 5.

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 tightly packed sentences with zero waste: the action and its scope come first, then the negative condition and the alternative tool. Every clause earns its place and the routing information is front-loaded.

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 2-parameter mutation tool with annotations covering the safety profile and no output schema, the description supplies the decision context (unpaid vs paid) and the alternative route. The only gap is that the conditional auth requirement for claim_token lives in the schema rather than the description, but that is a minor omission.

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

Parameters2/5

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

Schema description coverage is only 50%: claim_token carries its own description ('Bắt buộc khi chưa login') while reservation_id has none. The description adds no parameter-level meaning — it never mentions reservation_id, its 24-hex format, or the conditional auth requirement for claim_token — so it fails to compensate for the coverage gap.

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?

States a specific verb+resource in 'Huỷ reservation chưa nhận tiền' (cancel an unpaid reservation), which an agent can distinguish from sibling operations. It also explicitly names the sibling to use for the other case (cloud_domain_claim), so no schema opening is required to tell them apart.

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

Usage Guidelines5/5

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

Gives explicit when-to-use ('người dùng đổi ý / chọn tên khác' – user changed mind or picked another name) and when-not ('Đã có tiền vào thì không huỷ được'), with the alternative named directly (use cloud_domain_claim). Nothing is left to inference.

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

cloud_domain_reserve_statusTrạng thái giữ chỗ tên miềnA
Read-onlyIdempotent

Xem reservation đã nhận tiền chưa / đã claim chưa / còn hạn không. Guest truyền claim_token (hoặc guest_token) nhận từ cloud_domain_reserve; chủ reservation đã login thì không cần. Đọc next_step trong kết quả để biết bước kế.

ParametersJSON Schema
NameRequiredDescriptionDefault
claim_tokenNoclaim_token hoặc guest_token từ cloud_domain_reserve (bắt buộc khi chưa login).
reservation_idYesID reservation từ cloud_domain_reserve.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive. The description adds value beyond them by disclosing the auth nuance (token required only when not logged in) and by pointing to the next_step field as the follow-up driver.

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?

Three short sentences, front-loaded with what is returned and then the token requirement. No filler, though the final next_step hint is slightly tangential to the invocation itself.

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 read-only status check with no output schema, the description tells the agent what states are reported and directs it to next_step, which is sufficient to call and interpret the tool. It stops short of describing response shape or error conditions.

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, including the 'required when not logged in' note that the description repeats. The description adds only marginal meaning (claim_token OR guest_token) over what the schema already states.

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 (Xem/check) and resource (reservation), and enumerates exactly what is inspected: payment received, claimed, still valid. It is clearly distinguishable from reserve/claim/release siblings, though it never names those siblings explicitly for contrast.

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 clear conditional context: guests must pass claim_token (or guest_token) obtained from cloud_domain_reserve, while a logged-in owner does not need it. It also routes the agent to read next_step in the result. There is no explicit when-not or alternative-tool guidance, keeping it short of a 5.

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

cloud_domain_suggestGợi ý tên miền còn trốngA
Read-onlyIdempotent

Gợi ý những tên miền còn trống quanh một từ khoá, kèm giá VND đã gồm VAT. Từ khoá nhận tiếng Việt có dấu, tool tự bỏ dấu thành nhãn hợp lệ. Truyền industry (slug từ cloud_domain_tld_groups) để ưu tiên đuôi hợp ngành — vd quán cà phê sẽ ra .cafe và .coffee trước. Mọi kết quả đều đã tra trạng thái thật tại nhà đăng ký. Dùng khi tên người dùng muốn đã có người lấy, hoặc khi họ chưa nghĩ ra tên. Sau khi người dùng chọn thì gọi cloud_domain_buy (hoặc cloud_domain_reserve nếu chưa đăng nhập). Không cần đăng nhập.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoSố gợi ý trả về. Mặc định 12.
keywordYesTên muốn đặt hoặc từ khoá mô tả sản phẩm (vd: "Cà Phê Sạch", "myapp").
industryNoSlug ngành từ cloud_domain_tld_groups để ưu tiên đuôi hợp ngành.
include_takenNotrue = giữ lại cả tên đã có người đăng ký.
max_price_vndNoChặn trần giá năm đầu.

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/open-world safety. The description adds real behavioral context beyond them: diacritic auto-stripping, live registrar status checks, VAT-inclusive VND pricing, and 'no login required'. Return format is not described, but annotations lower the bar.

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?

Front-loaded with purpose then usage, next step, and auth note; each sentence carries information. Slightly dense but no obvious 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 read-only suggestion tool with no output schema, the definition covers purpose, when to use, next actions, and auth requirements. Minor gap: no description of the result shape or how many/which TLDs are considered.

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?

Schema coverage is 100%, so baseline is 3. The description goes beyond the schema by explaining industry as a slug from cloud_domain_tld_groups that biases TLD selection (coffee → .cafe/.coffee) and clarifying that keyword accepts accented Vietnamese.

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?

States a specific verb+resource: suggests available domains around a keyword, with price info. It clarifies scope (around a keyword) and names downstream siblings (cloud_domain_buy/reserve), though it does not explicitly contrast with cloud_domain_search.

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?

Gives clear triggering conditions: use when the desired name is taken or the user hasn't thought of one, and specifies the follow-up call. It lacks an explicit 'do not use for X' exclusion relative to cloud_domain_search, so it falls just short of 5.

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

cloud_domain_tld_groupsDanh mục đuôi tên miền theo ngànhA
Read-onlyIdempotent

Liệt kê các nhóm ngành của đuôi tên miền (Ăn uống, Công nghệ & AI, Quốc gia, Việt Nam...) kèm số lượng đuôi và khoảng giá VND mỗi nhóm. Gọi tool này TRƯỚC cloud_domain_tlds để biết slug ngành cần lọc. Không cần đăng nhập.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: 'Không cần đăng nhập' (no authentication required) and a summary of what each returned group contains (count and price range).

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 sentences, no filler, with the output content front-loaded and the workflow instruction second. Every clause earns its place.

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?

With no input parameters and no output schema, the description carries the burden of describing the return value, and it does so (industry groups with TLD counts and VND price ranges) while also explaining its role in the domain-purchase workflow and its auth requirement.

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 takes zero parameters, so the baseline is 4. The description correctly implies no input is needed and instead frames the tool as a prerequisite lookup that yields the 'slug ngành' value later tools consume.

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?

States a specific verb ('Liệt kê' / list) and resource ('các nhóm ngành của đuôi tên miền'), plus the concrete payload (number of TLDs and VND price range per group). It also names the sibling cloud_domain_tlds as the downstream consumer, so an agent can distinguish it from other domain tools without opening a schema.

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?

Explicitly instructs to call this BEFORE cloud_domain_tlds to obtain the industry slug needed for filtering, which is a clear ordering rule against a named alternative. It does not state when NOT to use it or any failure conditions, so it stops short of full when/when-not coverage.

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

cloud_domain_tldsBảng giá đuôi tên miềnA
Read-onlyIdempotent

Bảng giá đầy đủ các đuôi tên miền MONA Domain bán được, giá VND đã gồm VAT — giá năm đầu (price_vnd, đã tính khuyến mãi nếu registry đang chạy) và giá gia hạn mỗi năm (renew_vnd). Lọc theo ngành (group, lấy slug từ cloud_domain_tld_groups), theo từ khoá (q), hoặc theo ngân sách (max_price_vnd). Dùng khi người dùng hỏi "có những đuôi nào", "đuôi nào rẻ", "đuôi nào hợp ngành X". Đuôi .vn có needs_verification=true nghĩa là cần hồ sơ xác thực chủ thể. Không cần đăng nhập.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoTìm trong tên đuôi và nhãn tiếng Việt (vd: "shop").
sortNoThứ tự sắp xếp. Mặc định popular.
groupNoSlug ngành từ cloud_domain_tld_groups (vd: "an-uong", "cong-nghe", "viet-nam").
limitNoSố dòng tối đa. Mặc định 200.
scopeNopopular = nhóm đuôi thông dụng (mặc định), all = toàn bộ danh sách.
offsetNoBỏ qua bao nhiêu dòng đầu, để lật trang.
max_price_vndNoChỉ lấy đuôi có giá năm đầu không quá số này.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: prices already include VAT, first-year price reflects running registry promos, .vn entries carry needs_verification=true meaning an entity-verification profile is required, and no login is needed.

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?

Front-loads what is returned (both price fields, VAT-inclusive) before the filtering options and the when-to-use triggers. Dense but every sentence carries distinct information; slightly long but not padded.

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?

With no output schema, the description carries the return-value burden and does name the key output fields (price_vnd, renew_vnd, needs_verification). Filters, auth requirement, and the group-slug dependency are all covered, leaving only minor gaps such as pagination guidance.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds value the schema lacks: group takes a slug sourced from cloud_domain_tld_groups, q matches both the TLD name and Vietnamese label, and max_price_vnd filters on the first-year price specifically rather than renewal.

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?

States a specific resource and scope: the full price list of TLDs MONA Domain sells, with first-year (price_vnd) and renewal (renew_vnd) prices in VND incl. VAT. It is the only price-list tool among the cloud_domain_* siblings and it clarifies its relationship to cloud_domain_tld_groups (source of group slugs).

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?

Gives concrete trigger phrases ('có những đuôi nào', 'đuôi nào rẻ', 'đuôi nào hợp ngành X') and routes the agent to cloud_domain_tld_groups for valid group slugs. It does not explicitly exclude or compare against cloud_domain_search / cloud_domain_suggest, so the when-not side is left to inference.

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

cloud_domain_verify_startBắt đầu nộp hồ sơ .vnA

Sinh bản khai đã điền sẵn và link upload hồ sơ .vn. Dùng sau khi mua tên miền .vn (status=pending_verification).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesOrder ID trả về khi cloud_domain_buy.

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true and destructiveHint=false, so safety is covered. The description adds the state gate (pending_verification) and that output is a generated form plus upload link, but says nothing about permissions, side effects of re-calling, or expiry of the upload link.

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, the artifact produced is front-loaded and the precondition follows immediately. No filler or repetition.

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?

With no output schema, the description does partially cover the return (pre-filled declaration + upload link) and the triggering state, but it omits what the agent should do next (upload/submit, then poll cloud_domain_verify_status), leaving the workflow half-specified.

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 the single `id` parameter is documented in-schema as the order ID from cloud_domain_buy. The description adds no syntax or format detail beyond that, so the baseline 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?

States a specific verb and artifact: 'Sinh bản khai đã điền sẵn và link upload hồ sơ .vn' (generate a pre-filled declaration and upload link for the .vn dossier). This is far more than a restatement of the name, though it does not explicitly contrast itself with the nearby cloud_domain_verify_status.

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?

Gives an explicit activation condition: use after buying a .vn domain with status=pending_verification. That is a real when-to-use rule, but no alternative tool is named (e.g. verify_status for checking progress) and no exclusions are stated.

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

cloud_domain_verify_statusTrạng thái hồ sơ .vnB
Read-onlyIdempotent

Kiểm tra trạng thái duyệt hồ sơ đăng ký .vn (profile_status từ MONA Host).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesOrder ID của tên miền .vn.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds that the value comes from an external system (MONA Host) and is the profile_status field, which is mildly useful but does not describe retry/polling behavior or what values can be returned.

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?

A single, front-loaded sentence with zero filler; the action and resource lead immediately. It is appropriately sized for a one-parameter status 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 a simple read-only status lookup with one fully documented parameter, the description is adequate but thin. Since there is no output schema, it would help to hint at the possible profile_status values or the meaning of a pending/rejected state, which is the tool's entire raison d'être.

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% – the single 'id' parameter is documented as an Order ID with a hex pattern constraint. The description adds no syntax or format detail beyond the schema, so the baseline of 3 is appropriate.

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 pairs a specific verb (Kiểm tra / check) with a specific resource (the approval status of a .vn registration profile) and even names the underlying data field (profile_status) and source (MONA Host). It is clearly a read-status tool, though it does not explicitly contrast itself with close siblings like cloud_domain_verify_start or cloud_domain_reserve_status.

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 explicit when-to-use guidance, no prerequisites, and no mention of alternatives such as cloud_domain_verify_start or cloud_domain_wait. The purpose implies a status-check workflow, but the agent must infer when this is the right call rather than cloud_domain_health.

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

cloud_domain_waitChờ tên miền activeA
Read-onlyIdempotent

Long-poll cho đến khi tên miền chuyển sang active/failed (mặc định timeout=60s). Dùng sau cloud_domain_buy để chờ MONA Host xử lý.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesOrder ID cần chờ.
timeoutNoTimeout giây. Mặc định 60.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover safety traits like readOnly, idempotent, openWorld, and non-destructive. The description adds meaningful behavior by stating it is a long-poll that waits for active/failed states, though it omits what happens on timeout or any auth/rate-limit context.

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 compact sentences, front-loaded with the core behavior and followed by usage context. Every sentence earns its place with no redundant 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 wait tool with rich schema annotations and no output schema, the description covers purpose, terminal states, and sequencing after purchase. The only notable gap is not clarifying what the call returns or does if the timeout elapses.

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 (id and timeout) are fully documented in the schema. The description only repeats the default timeout=60s, adding no new semantic detail 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 ('Long-poll'), resource ('tên miền'), and terminal conditions ('active/failed'). It also ties the tool to its predecessor sibling ('Dùng sau cloud_domain_buy'), making its role clear.

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 explicitly says to use this tool after cloud_domain_buy to wait for MONA Host processing. However, it does not mention when not to use it or name alternative polling/status tools such as cloud_domain_verify_status.

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

cloud_domain_webhook_setĐăng ký webhook tên miềnA
Idempotent

Đăng ký URL nhận sự kiện domain.status_changed (ký HMAC). Mỗi user 1 webhook; gọi lại để cập nhật.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
secretYesChuỗi bí mật để xác minh chữ ký HMAC.

TDQS

A4/5.0
Behavior4/5

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

Annotations đã khai báo readOnlyHint=false, idempotentHint=true, openWorldHint=true, destructiveHint=false; mô tả bổ sung thông tin về HMAC, loại sự kiện và giới hạn 1 webhook/user. Không có mâu thuẫn với 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?

Hai mệnh đề ngắn, thông tin quan trọng được đưa lên trước, không có câu thừa. Độ dài phù hợp với một công cụ đăng ký webhook đơn giản.

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?

Với công cụ mutation 2 tham số, annotations khá đầy đủ, mô tả nêu được sự kiện, HMAC, hành vi một-webhook-mỗi-user và cập nhật khi gọi lại. Còn thiếu mô tả về phản hồi hoặc xác thực, nhưng không cản trở việc gọi đúng công cụ.

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 mô tả secret ở mức 50% (chuỗi bí mật xác minh HMAC); mô tả chỉ nhắc lại HMAC và URL nhận sự kiện, không thêm ràng buộc định dạng hay ý nghĩa mới cho url. Baseline 3 phù hợp khi schema đã làm phần lớn việc mô tả tham số.

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?

Nêu rõ động từ + tài nguyên: đăng ký URL nhận sự kiện domain.status_changed, có ký HMAC. Sự kiện domain giúp phân biệt với các webhook monapay/mail, dù không nêu tên công cụ thay thế.

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?

Cho biết mỗi user chỉ có 1 webhook và gọi lại để cập nhật, tức là hành vi upsert. Thiếu khi nào không nên dùng hoặc công cụ thay thế, nhưng ngữ cảnh sử dụng đã rõ.

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

cloud_invoice_listCông cụ MONA invoice listB
Read-onlyIdempotent

Đọc hoá đơn hàng tháng của tài khoản. / List monthly invoices.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered structurally. The description adds only the 'monthly' scope of the invoices, but says nothing about whether results are paginated, how far back they go, or what fields are returned.

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?

Two short, front-loaded sentences with no filler. The bilingual duplication is mildly redundant, but it is a deliberate localization choice rather than padding.

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 no-parameter read tool with rich annotations and no output schema, this is close to adequate, but it leaves open whether it lists all historical invoices or only the current billing cycle, and what the response shape is.

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 takes zero parameters, so the schema has nothing to document and the baseline of 4 applies. The description's 'hàng tháng / monthly' qualifier adds the only relevant semantic constraint.

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?

States a specific verb and resource: 'Đọc hoá đơn hàng tháng của tài khoản / List monthly invoices' — an agent knows this retrieves monthly billing invoices for the account. It does not distinguish itself from near-identical siblings like vibewcloud_invoice_list or cloud_invoice_pdf, so it falls short of a 5.

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 indication of when to use this versus the sibling invoice tools (vibewcloud_invoice_list, cloud_invoice_pdf) or any prerequisites. Usage is only implied by the tool name.

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

cloud_invoice_pdfCông cụ MONA invoice pdfA
Read-onlyIdempotent

Tải PDF hoá đơn vào file tạm riêng tư, trả path; sao chép ra nơi cần giữ trước khi hệ điều hành dọn. / Download invoice PDF to a private temporary file.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoice_idYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description adds real behavior: the returned path points at a private temp file that the OS will later clean up, and the caller must copy it out to persist it. That ephemerality warning is genuinely valuable context beyond the annotations.

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?

Short and front-loaded, with the core action first and the temp-file warning second. The bilingual duplication doubles the text length, which is mildly wasteful but serves locale needs.

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 download tool with no output schema, the description covers the return value (a path) and its lifecycle behavior. What remains missing is the invoice_id format and confirmation that the payload is a path rather than bytes.

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?

With one parameter and 0% schema description coverage, the description must carry the load; it never explains invoice_id at all. The name is self-explanatory and the invoice context is clear, but no format or source hints are given.

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?

States a specific verb+resource: 'Download invoice PDF'. The bilingual phrasing makes the action unambiguous. It does not distinguish itself from its near-identical sibling vibecloud_invoice_pdf, so it stops short of a 5.

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 is implied by the single required invoice_id, but the description never says when to reach for this versus cloud_invoice_list or vibecloud_invoice_pdf. The only actionable guidance is about post-call file handling, not tool selection.

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

cloud_job_statusTheo dõi job MONA CloudB
Read-onlyIdempotent

Đọc job thật hoặc sandbox theo ID; API tự nhận diện sandbox nên không cần header.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNo
job_idYes
sandboxNosandbox=true: thử 0đ, không cần ví
timeout_secNo
interval_secNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the bar is lower. The description usefully adds that sandbox vs real jobs are auto-detected server-side, but it omits the most salient behavior for a job tool: the wait/polling semantics implied by wait=true, timeout_sec and interval_sec defaults.

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?

A single tight sentence that front-loads the core action and ends with the sandbox note. Nothing is wasted, though it is arguably under-specified rather than genuinely concise.

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?

For a job-tracking tool with a wait/poll mode, there is no output schema and the description says nothing about what status information is returned, nor about the polling parameters. Given the sparse schema coverage and no output schema, the description is not complete enough for confident invocation.

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

Parameters2/5

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

Schema description coverage is only 20% — just the sandbox param is documented. The description compensates only for job_id and sandbox, leaving wait, timeout_sec and interval_sec with no explanation in either place, which is a real gap for a polling tool where wait/timeout change behavior fundamentally.

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 in Vietnamese: 'Đọc job thật hoặc sandbox theo ID' (read a real or sandbox job by ID), which is clear enough to act on. It does not, however, distinguish this tool from the near-identical sibling vibecloud_job_status, leaving the agent to guess which one applies.

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?

It implies usage (pass a job ID to read its status) and clarifies that no header is needed because the API auto-detects sandbox, which is helpful context. It provides no explicit when-to-use, when-not-to-use, or alternative-tool routing versus vibecloud_job_status.

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

cloud_ledgerSổ cái ví MONA CloudC
Read-onlyIdempotent

Đọc các dòng nạp, trừ và hoàn tiền trong ledger.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds which ledger entry types are returned (topup/deduction/refund), but says nothing about ordering, pagination or result volume, which matters for an open-world read that could return many rows.

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?

A single, front-loaded sentence with zero filler; the resource types are the first content an agent sees. It is efficient, though arguably too sparse to earn a top score.

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?

For a read tool with pagination parameters and no output schema, the definition omits return shape, ordering and pagination flow entirely. The annotations cover safety, but the operational picture an agent needs to page through ledger entries is missing.

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

Parameters2/5

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

Schema description coverage is 0% for two parameters (limit, cursor), and the description never mentions them. The agent gets no indication that limit caps at 100 or that cursor is the pagination token, so the description fails to compensate for the coverage gap.

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?

States a specific verb ('Đọc' = read) and a clearly delimited resource: deposit, deduction and refund entries in the wallet ledger. This distinguishes it from cloud_balance (current balance) and cloud_usage (consumption), though it does not name any sibling explicitly.

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?

No guidance on when to use this versus cloud_balance, cloud_usage or cloud_invoice_list. The description states only what is read, leaving the agent to infer the scenario (auditing wallet movements) on its own.

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

cloud_open_consoleMở MONA Cloud ConsoleA
Read-onlyIdempotent

Trả URL console khi người dùng muốn tự xem hoá đơn hoặc quản lý tài khoản. Nạp ví KHÔNG cần console: dùng cloud_topup (QR in trong terminal).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered structurally. The description confirms it is a URL-returning read but adds nothing beyond the annotations (no auth requirements, no rate limits, no mention of the URL's persistence/expiry). A 3 is appropriate given the low bar set by 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?

Two tight sentences, front-loading the core purpose (return the console URL) before the routing caveat about cloud_topup. Every sentence earns its place with zero 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?

With no parameters, no output schema, and annotations covering the safety/idempotency profile, the description supplies everything needed: what it returns, when to call it, and which sibling handles the adjacent top-up case.

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 takes zero parameters and schema coverage is 100%, so there is nothing for the description to clarify; the baseline for a no-param tool is 4. No parameter-related detail is missing.

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?

States a specific verb+resource: returns the console URL so the user can view invoices or manage their account. It also distinguishes itself from the sibling cloud_topup by explicitly saying top-up does not need the console. An agent can identify its role without opening the schema.

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

Usage Guidelines5/5

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

Gives an explicit when-to-use trigger (user wants to self-view invoices or manage account) and an explicit when-not with an alternative: top-up should use cloud_topup with the terminal QR instead. This is textbook routing guidance to a sibling.

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

cloud_packagesGói cấu hình MONA CloudB
Read-onlyIdempotent

Liệt kê package_slug và cấu hình CPU/RAM/đĩa.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, so the safety profile is covered. The description adds the returned content (package_slug, CPU/RAM/disk configuration), which is mildly useful given there is no output schema, but it discloses nothing about scope, pagination or provider context.

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?

A single short sentence with the returned fields front-loaded and no filler. It is efficient, though the extreme brevity is also what leaves the sibling overlap and usage context unaddressed.

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 zero-parameter listing tool with no output schema, the description minimally covers what comes back (slug plus CPU/RAM/disk specs). It omits any relation to cloud_prices/plan lists and gives no sense of result shape or volume, so it is adequate but with visible gaps.

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 takes zero parameters, so by the rubric the baseline is 4. No parameter semantics need explaining and the description does not confuse anything.

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?

States a specific verb ("Liệt kê") and resource (package_slug plus CPU/RAM/disk configuration), so the agent knows it retrieves package definitions rather than prices or plans. It does not, however, distinguish itself from close siblings such as vibecloud_packages, cloud_prices or cloud_plan_list, leaving overlap unresolved.

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 when-to-use guidance at all. With siblings like cloud_prices, vibecloud_packages and cloud_plan_list in the same family, the description gives the agent no rule for choosing this tool over them.

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

cloud_plan_listCông cụ MONA plan listA
Read-onlyIdempotent

Bảng gói cùng giá tháng/năm; gợi ý gói rẻ nhất đủ CPU/RAM/đĩa yêu cầu, admin_only không tự chọn. Đọc trước khi duyệt chi phí. / List plans, prices and sizing recommendation.

ParametersJSON Schema
NameRequiredDescriptionDefault
cpuNo
ram_gbNo
disk_gbNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare this a safe, idempotent, read-only, open-world read. The description adds genuinely new behavior: it computes the cheapest plan meeting the requested CPU/RAM/disk, and notes that admin-only plans are not auto-selected. That recommendation logic is not derivable from the annotations or schema.

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?

Compact and front-loaded, with the core function stated first and the pre-approval guidance last. The Vietnamese/English duplication doubles the length, but each half is tight and the English line is a faithful restatement.

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?

There is no output schema, so the description carries return-value burden; it names the returns (plans, monthly/yearly prices, recommendation) which is adequate. The only real gap is the vague "admin_only không tự chọn" clause, which an agent may not fully parse.

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 0%, so the description must carry the parameter burden. It does mention CPU/RAM/disk as the sizing inputs that drive the recommendation, which ties the three params to their purpose. It adds no units, formats, or guidance on partial vs full specification (all three are optional).

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 English half states a concrete verb and resources: list plans and prices, plus a sizing recommendation. It is clearly more than a tautology of the name. It does not, however, distinguish itself from near-identical siblings such as vibecloud_plan_list or cloud_packages, so an agent cannot tell which to prefer.

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?

"Đọc trước khi duyệt chi phí" (read before approving costs) implies a usage moment, which is more than nothing. But no alternative is named and no exclusion is given, so the agent must infer whether to call this or cloud_prices/cloud_packages.

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

cloud_pricesBảng giá MONA CloudB
Read-onlyIdempotent

Đọc đơn giá giờ hiện hành.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds a modest behavioral detail: it returns the currently effective hourly rates, implying the values are time-varying rather than a static catalog. It stops short of describing scope or return structure, which is acceptable given the rich annotations.

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?

A single front-loaded sentence with zero filler, well matched to a no-argument lookup. It is arguably too terse to route among the several sibling pricing tools, but there is no wasted text.

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 trivial zero-parameter read, the definition is near-minimal but workable. With no output schema present, the description could have said what the hourly rates are keyed on (services, regions) and clarified the relationship to cloud_packages/vibecloud_prices, which it omits.

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 takes zero parameters, so per the rubric the baseline is 4. The description does not need to explain argument semantics, and it correctly says nothing about inputs.

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 Vietnamese description 'Đọc đơn giá giờ hiện hành' states a specific verb (read) and resource (hourly unit prices), and the title 'Bảng giá MONA Cloud' confirms this is the pricing catalog. It does not, however, distinguish itself from close siblings like cloud_packages, vibecloud_prices, or vibecloud_packages, so an agent must infer the split.

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 when-to-use guidance, no mention of prerequisites, and no reference to the alternative pricing tools (cloud_packages, vibecloud_prices). The agent gets only the name and a one-line purpose with nothing about when this tool is the right choice.

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

cloud_service_rebuildrebuild service MONA CloudB

rebuild VPS/database MONA Cloud. Lệnh có thể phát sinh chi phí và kiểm tra ví trước. sandbox=true: thử 0đ, không cần ví.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNosandbox=true: thử 0đ, không cần ví
service_idYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true and destructiveHint=false. The description usefully adds billing behavior (possible cost, wallet pre-check) and a free sandbox mode, which annotations do not cover. But it is silent on the defining trait of a rebuild — whether the existing container/database is wiped and whether there is downtime — which matters given destructiveHint=false.

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?

Three short fragments, with the resource and verb front-loaded before the billing caveat and the sandbox modifier. Every clause carries information; only the mixed Vietnamese/English phrasing slightly impedes scanability.

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?

There is no output schema, so the description carries return-value burden, yet it says nothing about what happens after a rebuild (job id, downtime, status polling via cloud_job_status). For a billed, non-idempotent mutation the coverage is adequate but leaves real operational gaps.

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

Parameters2/5

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

Schema coverage is only 50%: service_id is undocumented in both schema and description. The one parameter the description does explain (sandbox=true: 0đ, no wallet) is a verbatim restatement of the schema's own description field, so it adds no meaning. The primary identifier parameter is left entirely undefined.

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?

States a specific verb ('rebuild') and resource ('VPS/database MONA Cloud'), which cleanly separates it from the sibling lifecycle tools cloud_service_start / cloud_service_stop. It does not explicitly name the near-duplicate vibecloud_rebuild, so the sibling differentiation is implied rather than stated.

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 gives indirect usage guidance: it warns that the command may incur costs and requires a wallet check, and that sandbox=true performs a free trial without a wallet. However, it never says when to rebuild versus start/stop/recreate, nor when to prefer the vibecloud_* variant, leaving the operator to infer the decision.

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

cloud_servicesMọi dịch vụ đang chạyC
Read-onlyIdempotent

Gom VPS/database MONA Cloud cùng tài khoản ảo và webhook MONA Pay.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered externally. The description adds nothing beyond that — no indication of what the aggregate contains per item, whether it paginates, or how virtual accounts and webhooks are folded into the same payload.

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?

A single short sentence with no filler, and the resource scope is front-loaded. It is not padded, though it is arguably too terse to carry its weight.

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 zero-parameter aggregate read with rich annotations but no output schema, the description at least enumerates the resource families it spans. It is still thin on what a combined VPS/database/virtual-account/webhook payload actually looks like, leaving the agent to discover the shape at call time.

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 takes zero parameters, so the baseline of 4 applies. There is no parameter syntax the description could usefully add.

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

Purpose3/5

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

The description states a verb ('Gom' = aggregates) and names the resources involved: MONA Cloud VPS/databases plus virtual accounts and webhooks. However, it does not distinguish this tool from the near-identically-named sibling cloud_services_list (or vibecloud_list_services), so an agent cannot tell without guessing whether this is an overview vs. a plain list endpoint.

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 when-to-use statement, no prerequisite, and no mention of the alternatives (cloud_services_list, cloud_vps_create, cloud_db_create). The agent must infer usage purely from the name.

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

cloud_services_listDanh sách service MONA CloudA
Read-onlyIdempotent

Liệt kê VPS/database; sandbox=true gộp cả service thử 0đ bằng API, không cần header.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNosandbox=true: thử 0đ, không cần ví

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe read-only nature is covered. The description adds meaningful context beyond annotations: sandbox=true includes 0-cost trial services and the API call needs no header. It does not contradict the 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?

The description is a single front-loaded sentence with no wasted wording. It states the resource listed and the sandbox behavior efficiently.

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 one-parameter read-only list tool with full schema coverage and annotations, the description covers the core behavior and sandbox flag. It could still be more complete by mentioning sibling alternatives or listing order/pagination, but the essential invocation details are present.

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?

Schema coverage is 100%, so the sandbox parameter is already documented in the schema. The description still adds value by explaining that sandbox=true merges in trial 0-cost services and that no header is required, going slightly beyond the schema's 'thử 0đ, không cần ví' wording.

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 gives a specific verb and resource: 'Liệt kê VPS/database' (list VPS/database), so the agent knows this is a list operation for cloud compute and database services. It also clarifies that sandbox=true includes trial 0-cost services. However, it does not distinguish this tool from nearby siblings like cloud_services or vibecloud_list_services.

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 parameter usage context for sandbox=true, but it does not say when to choose this tool over alternatives such as cloud_services or vibecloud_list_services. There are no when-not conditions or routing guidance.

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

cloud_service_startstart service MONA CloudB

start VPS/database MONA Cloud. Lệnh có thể phát sinh chi phí và kiểm tra ví trước. sandbox=true: thử 0đ, không cần ví.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNosandbox=true: thử 0đ, không cần ví
service_idYes

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, non-idempotent, open-world, non-destructive operation. The description adds meaningful context beyond that: a billing charge may be triggered, a wallet balance check is performed beforehand, and sandbox=true is a free trial requiring no wallet. It does not disclose what happens on a repeat call (despite non-idempotentHint) or whether the start is asynchronous.

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?

Three short sentences, front-loaded with what the tool starts, then cost and sandbox caveats. No filler. The mixed Vietnamese/English phrasing is compact but slightly reduces scannability for agents not expecting bilingual text.

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 mutation tool with no output schema, the description covers the important billing/wallet prerequisite and the sandbox escape hatch, which is the crux of calling it safely. It still omits how to source service_id and what the agent should expect after a successful start (e.g., async provisioning), leaving a moderate gap.

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

Parameters2/5

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

Schema description coverage is only 50%, and the sole covered field (sandbox) is documented with the identical string already in the schema, so the description adds no new parameter meaning. The required service_id has no explanation anywhere — the agent is not told where to obtain a valid service ID. That is a real gap the description should have filled.

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?

States a specific verb ('start') and resource ('VPS/database MONA Cloud'), which is clear enough to distinguish from cloud_service_stop and the create_* siblings. It does not, however, address the near-duplicate sibling vibecloud_start, so an agent gets no help choosing between the cloud_ and vibecloud_ variants.

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 by warning that the command may incur cost and that the wallet is checked first, and it offers sandbox=true as a zero-cost alternative. It never states when NOT to use it or how to choose between this tool and vibecloud_start / cloud_vps_create, so guidance stays implied rather than explicit.

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

cloud_service_stopstop service MONA CloudB
DestructiveIdempotent

Dừng VPS/database MONA Cloud; luôn cho phép dừng để người dùng hạn chế chi phí.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNosandbox=true: thử 0đ, không cần ví
service_idYes

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, carrying the safety profile. The description adds only a thin policy note ("always allows stopping") and says nothing about data retention, reversibility confirmation, or what state the service ends in.

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?

A single compact sentence with the action front-loaded and no filler. It is appropriately sized, though the cost rationale could be trimmed without loss.

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?

For a destructive mutation with no output schema and one undocumented parameter, the description omits what happens to the underlying VPS/database, whether the stop is reversible, and how to obtain service_id, leaving meaningful gaps beyond what annotations cover.

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 50%: sandbox is documented in the schema while service_id is not. The description partially compensates by clarifying that the target is a VPS or database, but gives no format, source, or recovery guidance for service_id.

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 ("Dừng"/stop) and a concrete resource ("VPS/database MONA Cloud"), so it is clearly the inverse of the sibling cloud_service_start. It is unambiguous but does not name any sibling explicitly for disambiguation.

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?

"luôn cho phép dừng để người dùng hạn chế chi phí" gives a rationale (cost control) that implies when to use it, but there is no explicit when-to-use vs when-not, no prerequisites, and no routing to cloud_service_rebuild or vibecloud_stop alternatives.

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

cloud_subscription_listCông cụ MONA subscription listB
Read-onlyIdempotent

Đọc các gói đang dùng, kỳ gia hạn và auto-renew. / List subscriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is fully covered by structured data. The description's added value is limited to naming the returned fields (packages, renewal period, auto-renew), which is useful context given there is no output schema, but it discloses no pagination, auth, or filtering behavior.

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?

Very short and front-loaded, with the core action first and the returned fields second. The bilingual duplication ('Đọc các gói...' / 'List subscriptions') is redundant but costs only a few tokens.

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, read-only list tool with full annotation coverage, the description is adequate, and it partially compensates for the absent output schema by naming what is returned. It stops short of explaining ordering, scope (account vs. workspace), or pagination, which keeps it out of the top tier.

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 takes zero parameters and the schema is empty, so there is nothing to document; baseline 4 applies. The description correctly implies a no-argument, list-everything call.

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?

States a specific verb and resource ('List subscriptions') and adds the content scope: current packages, renewal period, and auto-renew status. It does not, however, distinguish itself from the near-identical sibling vibecloud_subscription_list, so an agent has no basis in the description for choosing between 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?

There is no when-to-use guidance, no prerequisites, and no named alternative. The description never mentions cloud_subscription_update (its natural counterpart) or the duplicate vibecloud_subscription_list, leaving routing entirely to inference.

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

cloud_subscription_updateCông cụ MONA subscription updateA
DestructiveIdempotent

Đổi gói/chu kỳ/gia hạn sau khi đọc subscription và giá, ước tính rồi được duyệt. Upgrade tính prorate, downgrade kỳ sau. Huỷ: auto_renew=false, cancel_action=hourly|stop. / Update or cancel renewal.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNo
plan_codeNo
auto_renewNo
service_idYes
cancel_actionNo

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the annotations (destructiveHint=true, idempotentHint=true), the description discloses non-obvious billing behavior: upgrades are prorated and downgrades take effect the following cycle, and cancellation is expressed as auto_renew=false plus cancel_action. This is genuinely useful. It does not say whether changes take effect immediately or how the approval step is enforced, so it stops short of a 5.

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?

Dense and front-loaded: the primary action comes first, then pricing/cancel mechanics, with the English one-liner as a compact summary. The bilingual duplication of the same idea ('Update or cancel renewal') is mild redundancy but cheap.

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 destructive, open-world mutation with no output schema, the description covers the main flows (upgrade/downgrade/cancel) but leaves gaps: no note on service_id, no statement of whether the update is immediate or scheduled, and no mention of what the response returns or what errors to expect.

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 0%, so the description must carry parameter meaning. It maps plan_code ('gói'), period ('chu kỳ'), auto_renew and cancel_action (with the hourly|stop distinction) to their purposes, which is helpful, but the required service_id is never explained and no format/scope guidance is given for any field.

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?

States a specific action set (đổi gói/chu kỳ/gia hạn, huỷ) on a specific resource (subscription), and the English tail 'Update or cancel renewal' confirms it. It is clearly distinct from cloud_subscription_list or cloud_prices, though it never names a sibling variant (vibecloud_subscription_update) to disambiguate.

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 outlines a real workflow constraint: read the subscription and prices first, estimate, then get approval before changing. That is usable context for when to invoke it, though it never states exclusions or explicitly names the read tools (cloud_subscription_list, cloud_prices) it depends on.

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

cloud_token_limitGiới hạn chi tiêu của tokenC

Đặt spend guard riêng cho token hiện tại hoặc token_id chỉ định.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodYes
token_idNo
spend_limit_vndYes

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already disclose the mutation profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false), so the bar is lower. The description adds only the vague term 'spend guard' and does not explain what the guard does (does it block spending?), what spend_limit_vnd=0 means, or whether changes can be undone.

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?

A single front-loaded sentence with no filler. However, that brevity is partly the cause of the coverage gaps noted above rather than pure efficiency.

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?

This is a mutating tool with no output schema, zero schema description coverage, and no usage guidance. For a three-parameter spend-control operation, the description omits too much for an agent to invoke it confidently.

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

Parameters2/5

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

Schema coverage is 0%, so the description bears full responsibility. It usefully clarifies that token_id is optional and defaults to the current token, but it never explains spend_limit_vnd (currency, units) or the day/month period semantics, leaving two of three parameters undocumented.

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?

States a specific verb (Đặt = set) and resource (spend guard/spend limit) scoped to the current token or a named token_id. The purpose is clear, but it never names or distinguishes itself from sibling budget tools such as cloud_budget_set or cloud_budget_get, so an agent must infer the boundary.

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 when-to-use guidance and no alternative named. The phrase 'token hiện tại hoặc token_id chỉ định' describes a parameter default choice, not a usage condition, so the agent gets no help deciding between this and cloud_budget_set.

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

cloud_topupNạp ví bằng VietQR ngay trong terminalA

AI tự tạo yêu cầu nạp ví và nhận QR VietQR: qr_ascii (khối đầy, in thẳng trong Claude Code/Codex/Gemini; nền sáng dùng qr_ascii_light), qr_file (PNG trên máy), qr_url (ảnh). Người dùng chỉ quét bằng app ngân hàng. Tiền vào tự cộng ví; xác nhận bằng cloud_topup_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesSố tiền nguyên VND, tối thiểu 10.000
idempotency_keyNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), and the description adds real behavioral context beyond them: three output representations, the light-background variant, that funds are auto-credited to the wallet, and that a separate call is needed to confirm. It does not mention QR expiry or what happens on a duplicate amount, which are relevant for a payment flow.

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 purpose is front-loaded in the first clause and every sentence carries information (return formats, human step, confirmation path). The nested parenthetical about QR variants is dense but still readable; little is wasted.

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?

With no output schema, the description usefully enumerates the returned QR artifacts and the confirmation path, which covers the main gaps. However, for a non-idempotent (idempotentHint=false) payment tool that nevertheless accepts an idempotency_key, the description says nothing about retry semantics, QR validity window, or failure modes.

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

Parameters2/5

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

Schema description coverage is only 50%: amount is documented in the schema (integer VND, min 10,000, max 500,000,000) but idempotency_key has no schema description at all. The prose mentions neither parameter, so it adds no meaning beyond the schema and does nothing to compensate for the undocumented idempotency_key.

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 ('tự tạo yêu cầu nạp ví và nhận QR VietQR') and enumerates exactly what comes back (qr_ascii, qr_file, qr_url), so an agent knows this initiates a wallet top-up and returns scannable payment artifacts. It also differentiates itself from the sibling cloud_topup_status, which it names for confirmation.

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 makes the usage flow explicit: the agent generates the request, the human scans the QR with a banking app, and confirmation happens via cloud_topup_status. That routes the agent to the right follow-up tool, though there is no explicit statement of when not to use this tool (e.g. when a top-up is already pending).

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

cloud_topup_statusTrạng thái yêu cầu nạp víA
Read-onlyIdempotent

Đọc trạng thái một yêu cầu nạp (pending/paid) sau khi người dùng quét QR, kèm số dư hiện tại. Dùng để chờ tiền vào rồi tiếp tục việc đang làm.

ParametersJSON Schema
NameRequiredDescriptionDefault
topup_idYestopup_id do cloud_topup trả

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, openWorld, so the safe-read profile is covered. The description adds useful context by disclosing what comes back (status plus current balance), but says nothing about polling cadence, how long a topup_id stays valid, or what happens after paid.

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 tightly written sentences, with the core action (read top-up status) front-loaded and the usage scenario second. No 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?

Although there is no output schema, the description compensates by naming the returned status values and the included balance, so an agent knows roughly what to expect. Minor gaps remain around polling behavior and topup_id lifetime, but the definition is adequate for a one-parameter read tool.

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?

With a single parameter and 100% schema description coverage, the schema already documents topup_id (and its origin in cloud_topup). The description adds no format, length, or lifecycle guidance beyond what the schema provides, so the baseline 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?

States a specific verb and resource ("Đọc trạng thái một yêu cầu nạp") and even enumerates the possible status values (pending/paid), plus notes it also returns the current balance. It implies the relationship to the top-up creation step, though it does not explicitly name the cloud_topup sibling in the description body.

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?

"Dùng để chờ tiền vào rồi tiếp tục việc đang làm" gives a clear usage scenario: poll after the user scans the QR and continue the pending work once paid. It does not name an alternative tool or state when not to call it, but the context is unambiguous.

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

cloud_usageChi phí MONA Cloud theo kỳB
Read-onlyIdempotent

Đọc usage và tổng tiền theo tháng, có thể lọc sản phẩm.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodYes
productNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety and idempotency profile is covered. The description adds that the result is usage plus total money grouped by month and filterable by product, but says nothing about pagination, result size, or data freshness. With annotations carrying the safety burden, a 3 is appropriate.

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?

A single front-loaded sentence with no wasted words. It is efficient, though the extreme brevity is what forces the gaps in other dimensions rather than being a structural flaw.

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 low-complexity two-parameter read tool whose annotations cover the safety profile, the description is adequate but not complete: it omits the required period format and does not help the agent distinguish this cost-read tool from the many other cloud_* cost and ledger siblings. No output schema exists, so return values also go unexplained.

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 0%, so the description must carry parameter meaning. It does reference both parameters implicitly: 'theo tháng' maps to the required period and 'lọc sản phẩm' maps to the optional product filter. However, it omits the crucial YYYY-MM format enforced by the period pattern, so compensation is only partial.

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: read ('Đọc') usage and total amount ('tổng tiền') on a monthly basis. It is clear what the tool returns, but it does not differentiate itself from closely related siblings like cloud_balance, cloud_ledger, or cloud_invoice_list, which also deal with cost data.

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 hint is 'có thể lọc sản phẩm' (can filter by product), which implies an optional filter but gives no when-to-use guidance or contrast with alternatives. Nothing tells the agent when to pick this over cloud_balance or cloud_ledger.

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

cloud_vps_createTạo VPS MONA CloudA

Đọc cloud_plan_list (monthly) hoặc cloud_prices/cloud_packages (hourly), ước tính rồi hỏi duyệt trước tạo. Monthly bỏ CPU/RAM/đĩa, lấy từ plan_code; period=month|year. Kiểm ví đủ giá gói, trả estimate và job_id. / Estimate, approve, create VPS. sandbox=true: thử 0đ, không cần ví.

ParametersJSON Schema
NameRequiredDescriptionDefault
cpuNo
periodNo
ram_gbNo
disk_gbNo
sandboxNosandbox=true: thử 0đ, không cần ví
app_nameYes
plan_codeNo
billing_modeNo
package_slugNo

TDQS

A3.7/5.0
Behavior4/5

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

Adds real behavioral context beyond annotations: it requires a sufficient wallet balance, returns an estimate plus job_id, and supports sandbox=true for zero-cost testing without a wallet. Annotations only declare write/openWorld/non-idempotent, so the approval-gating and wallet prerequisite are valuable additions.

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

Conciseness3/5

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

Compact with no filler, and 'Estimate, approve, create VPS' is a good one-line summary, but the Vietnamese/English mix, slash separators, and run-on sentences hurt front-loading and readability.

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 9-parameter mutation tool with no output schema, the description covers the important operational context (wallet check, approval flow, estimate/job_id return, sandbox). However, several parameters remain undocumented and no permissions/error behavior is given, so it is adequate rather than 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 coverage is only 11%, so the description must carry the load. It does clarify the key mode-dependent logic (monthly omits CPU/RAM/disk and uses plan_code; period=month|year), but leaves package_slug, billing_mode, and app_name unexplained, so it only partially compensates for the coverage gap.

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?

States a specific verb+resource ('tạo VPS' / create VPS) and frames the full estimate→approve→create flow. It also names the sibling read tools (cloud_plan_list, cloud_prices, cloud_packages) it depends on, distinguishing itself from them. Clear but slightly muddled by bilingual run-on phrasing.

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?

Explicitly prescribes the workflow: read the plan/price sources first, estimate, then ask for approval before creating. It also gives the mode-selection rule (monthly vs hourly sources). No explicit when-not-to-use case is given, but context is strong.

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

cloud_whoamiTài khoản MONA CloudB
Read-onlyIdempotent

Xác minh MONA Pass hiện tại. / Return the current MONA Pass profile.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, covering the safety profile completely. The description adds nothing beyond that – no auth requirements, no note on what the profile contains, no rate-limit or scope context.

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?

Very short and front-loaded, with the action stated immediately. The bilingual duplication means the same content is presented twice, which is justified for a Vietnamese-facing product but does not add informational value.

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 zero-parameter read tool whose annotations already cover the safety profile, the description is minimally viable. With no output schema, it should ideally say what the returned profile contains (identity fields, plan info), and it does not.

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 takes zero parameters, so per the baseline a 4 applies; there is no parameter surface for the description to clarify or compensate for.

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?

States a specific verb and resource – returning the current MONA Pass profile – so an agent can identify it as an identity/profile lookup. However, it offers no differentiation from the near-identical sibling monapay_whoami, so an agent must guess which of the two identity tools applies.

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 when-to-use, when-not-to-use, or alternative-tool guidance. With a sibling like monapay_whoami performing an apparently equivalent role, the absence of routing guidance is a real gap.

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

mail_accountTài khoản MONA MailB
Read-onlyIdempotent

Khi bắt đầu tích hợp email, đọc tài khoản, quota và bước kế tiếp. / Use first to read account and quota at https://api.monamail.vn.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds no behavioral context beyond that — no note on what the account/quota response contains, auth requirements, or side effects (there are none to warn about).

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?

Two short sentences, front-loaded with the 'use first' trigger. The bilingual duplication is mildly redundant but the total length is appropriate for a trivial read 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 a no-param, no-output-schema read tool with full annotation coverage, the description is adequate but thin: it promises account, quota, and 'next steps' without saying what those returns look like or what to do with them, leaving an agent to discover the response shape by calling it.

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 takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. No parameter guidance is needed or expected.

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

Purpose3/5

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

The description names a verb+resource ('read account and quota') and adds a vague third item ('bước kế tiếp' / next steps) that muddies the scope. It gives no differentiation from adjacent mail tools such as mail_plans or mail_stats, which an agent could easily confuse it with.

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?

'Use first' / 'Khi bắt đầu tích hợp email' does imply when to reach for it (at the start of email integration), which is more than nothing. However, no alternatives are named and no exclusions are stated, so routing between this and mail_plans/mail_status is left to inference.

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

mail_api_key_createTạo API key MONA MailA

Khi tích hợp SDK vào app, tạo key live hoặc test. Key chỉ trả một lần; ghi vào .env của app dưới tên MONAMAIL_API_KEY, không cần in ra chat. / Use to create an app key; store the one-time secret in .env.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
nameYes
idempotency_keyNoGiữ cùng key khi thử lại cùng yêu cầu trong 24 giờ. / Reuse for retries.

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already declare the safety profile (not read-only, open-world, not destructive), but the description adds the single most important behavioral fact: the secret is returned only once, plus the handling instruction to store it in .env as MONAMAIL_API_KEY rather than print it. One caveat: an idempotency_key parameter is offered while idempotentHint=false, though that is plausibly opt-in idempotency rather than a true contradiction.

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

Conciseness3/5

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

The core guidance is useful and front-loaded, but the whole message is duplicated across Vietnamese and English, roughly doubling length for the same content. Every sentence earns its place individually; the duplication does not.

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?

With no output schema, the description correctly carries the return-value story (one-time secret) and the storage convention, which is exactly what an agent needs. Only the parameter-level detail for name/idempotency_key is thin.

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 only 33%, so the description would need to compensate. It names the mode values (live/test) but only restates what the enum already shows, and says nothing about the name parameter's constraints or the idempotency_key beyond the short schema note. Baseline 3 is the honest ceiling.

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?

States a specific verb+resource ('create an app key' / 'tạo key live hoặc test') and scopes it to SDK integration, which clearly distinguishes it from mail_api_keys_list and mail_api_key_revoke. It does not name those siblings explicitly, so it falls short of a 5.

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?

Gives a concrete trigger: when integrating the SDK into an app, and clarifies the live-vs-test mode choice. There is no explicit when-not or alternative-tool routing (e.g. 'use mail_api_keys_list to inspect existing keys'), which keeps it below 5.

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

mail_api_key_revokeThu hồi API keyA
DestructiveIdempotent

Khi key không còn dùng hoặc bị lộ, thu hồi bằng key_id. / Use to revoke an unused or compromised API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
key_idYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the agent knows this is destructive and safely repeatable. The description adds the compromise scenario but says nothing about reversibility, whether the key is immediately invalidated, or the effect on in-flight requests. Against an annotation set that already covers the safety profile, a 3 is appropriate.

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?

Two short parallel sentences, one Vietnamese and one English, front-loading the condition and the action. No padding, though the bilingual restatement is redundant for a multilingual model.

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 one-parameter destructive tool whose annotations already carry the safety profile and which has no output schema, the description is minimally sufficient. It omits the consequence of revocation (what breaks), which would materially help an agent decide whether to call it.

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?

With one parameter and zero schema description coverage, the description only repeats that key_id is the handle used for revocation. It adds no format, length, or sourcing guidance beyond the schema's type and bounds.

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?

States a specific verb (revoke / thu hồi) and resource (API key), and indicates it operates by key_id. It does not differentiate itself from the nearby siblings mail_api_key_create or mail_api_keys_list, 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?

Explicitly names the trigger conditions — when the key is no longer used or is compromised — which is better than most siblings. It does not, however, mention alternatives such as rotation (monapay_rotate_key) versus revocation as a possible next step.

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

mail_api_keys_listDanh sách API keyA
Read-onlyIdempotent

Khi kiểm tra key của app, đọc prefix và trạng thái; không trả secret. / Use to inspect existing API key metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so safety is covered. The description adds genuinely new behavioral context: it discloses that only prefix and status are surfaced and that the secret is never returned, which an agent needs to know before deciding whether this tool answers its question.

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?

Two short sentences, front-loaded with the key constraint about the secret. The Vietnamese and English halves are essentially duplicates, which is mild padding, but the total length remains small and each half carries the operational constraint.

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 parameterless read tool with no output schema, the description covers purpose, the fields returned, and the security-relevant omission of secrets. That is close to sufficient; only the absence of any mention of ordering, pagination, or empty-state behavior keeps it from being fully complete.

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 takes zero parameters, so the schema baseline is 4. The description appropriately focuses on the returned fields (prefix, status) rather than inventing parameter detail, leaving nothing to mis-specify.

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 ('inspect existing API key metadata', 'đọc prefix và trạng thái'), which is clearly a read/list operation on API keys. It distinguishes implicitly from the sibling write tools (mail_api_key_create, mail_api_key_revoke) by saying 'existing', though it never names them.

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?

It gives a use context ('Khi kiểm tra key của app' / 'Use to inspect existing API key metadata'), which implies when to reach for it. However, it offers no explicit when-not guidance and does not route the agent to alternatives like mail_api_key_create when no key exists yet.

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

mail_domain_addThêm domain gửi emailA

Khi gửi bằng domain của app, thêm domain. Trả record DNS; nếu người dùng dùng Cloudflare có thể gọi mail_domain_cloudflare với token của họ (không lưu). / Use to register a sender domain and get DNS records.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
idempotency_keyNoGiữ cùng key khi thử lại cùng yêu cầu trong 24 giờ. / Reuse for retries.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true and idempotentHint=false, so the safety profile is largely covered. The description adds two useful pieces beyond that: the return value (DNS records) and the security note that the Cloudflare token is not stored. It does not disclose auth requirements, what happens if the domain already exists, or that the annotation says the operation is not inherently idempotent even though an idempotency_key is accepted.

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 purpose, return value and alternative are front-loaded in two short clauses with no filler, and the Cloudflare caveat is placed immediately after the output note where it is relevant. The bilingual duplication costs some density but is presumably intentional for the audience.

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 mutation tool with no output schema, the description usefully states that DNS records are returned and points to the Cloudflare path. However, it omits the natural next step (mail_domain_verify), duplicate-domain behavior, and any error or prerequisite context, leaving the agent to infer the post-add workflow from sibling names.

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 exactly 50%: idempotency_key is documented in the schema (reuse within 24h for retries) while domain has no description. The description adds no parameter-level meaning for either, so it neither compensates for the gap nor enriches the documented key. Baseline 3 is appropriate here.

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 English clause states a specific verb and resource ('register a sender domain and get DNS records'), and the Vietnamese notes the outcome ('Trả record DNS'). It also distinguishes itself from a sibling by naming mail_domain_cloudflare for Cloudflare users. The only weakness is the slightly circular opening ('Khi gửi bằng domain của app, thêm domain').

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 explicitly routes to an alternative with a concrete condition: if the user uses Cloudflare, call mail_domain_cloudflare with their token (not stored). That is real when-to-use-the-other-tool guidance. It does not say where this fits in the flow relative to mail_domain_verify or note prerequisites such as an active mail plan.

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

mail_domain_cloudflareThêm DNS qua CloudflareA

Khi người dùng cung cấp token Cloudflare, thêm DNS rồi verify domain. Token dùng một lần, không lưu, không log. / Use a user-provided Cloudflare token to configure DNS and verify.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_tokenYes
domain_idYes
idempotency_keyNoGiữ cùng key khi thử lại cùng yêu cầu trong 24 giờ. / Reuse for retries.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare a non-read-only, non-idempotent, open-world operation. The description adds genuinely new security behavior: the token is single-use and is neither stored nor logged, which is material for how an agent should handle the api_token. It does not cover failure/rollback behavior, but the annotation baseline keeps the bar low.

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?

Two sentences, front-loaded with the usage condition, and the bilingual pairing adds no real bloat since both halves are short and equivalent. Efficient and readable.

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 mutation tool with no output schema, the description covers safety of the token but is thin on the domain_id parameter and on what 'verify' entails or how success/failure surfaces. Given 33% schema coverage, more parameter context was warranted.

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 only 33% (only idempotency_key is documented), so the description should compensate. It clarifies that api_token is a Cloudflare token and that the domain is being verified, but it never explains what domain_id refers to or its expected format, leaving a real gap.

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?

States a specific verb+resource combo: it configures DNS and verifies the domain using a user-supplied Cloudflare token. This is distinguishable from generic siblings mail_domain_add/mail_domain_verify because it names the Cloudflare-token path, though it never explicitly contrasts itself with them.

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?

It gives a trigger condition ('when the user provides a Cloudflare token'), which implies when this path applies versus the generic add/verify tools. But there is no explicit when-to-use/when-not guidance or named alternative, leaving the agent to infer the routing.

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

mail_domains_listDomain MONA MailA
Read-onlyIdempotent

Khi chọn địa chỉ gửi, xem domain và trạng thái xác minh. / Use to find verified sender domains.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly=true, idempotent=true, destructive=false, and openWorld=true, so the safety profile is covered structurally. The description adds only that results relate to verification status; it says nothing about pagination, ordering, or return shape. A 3 reflects a modest addition on top of full annotation coverage.

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?

Two short bilingual clauses with no filler, and the domain/status scope is placed first. It is efficient, though the duplication across Vietnamese and English means half the text is a translation rather than new 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?

For a zero-parameter read-only list tool with no output schema, the definition is minimally adequate: it says what the domain listing shows (domains + verification status). Since no output schema exists, it could have clarified what the response contains (e.g. list of domains with status), which is the remaining gap.

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 takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; the description's mention of verification status is a light domain hint rather than parameter guidance.

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 gives a concrete verb+resource framing (view/find domains and their verification status), which tells an agent this returns sender domains rather than adding, verifying, or configuring one. This distinguishes it reasonably from siblings like mail_domain_add, mail_domain_verify, and mail_domain_cloudflare, though it never explicitly says it lists all 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 phrase 'Khi chọn địa chỉ gửi / Use to find verified sender domains' implies the usage context: consult this when you need a verified sender domain for sending mail. There is no explicit when-not or named alternative (e.g. mail_domain_add when you need to add one), so guidance is implied rather than spelled out.

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

mail_domain_verifyXác minh DNS domainB

Khi đã thêm DNS, kiểm DKIM và trạng thái domain. / Use after adding DNS records to verify the sender domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_idYes
idempotency_keyNoGiữ cùng key khi thử lại cùng yêu cầu trong 24 giờ. / Reuse for retries.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, and destructiveHint=false. The description adds that it checks DKIM and domain status, but does not disclose whether it mutates verification state, whether DNS propagation is required, whether results are asynchronous, or what auth/rate constraints apply.

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?

Very short and front-loaded with the prerequisite and action. It duplicates the same meaning in Vietnamese and English, which is slightly redundant but not harmful.

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?

There is no output schema, so the description should clarify what verification returns or what to do after calling it; that is absent. It also leaves the required domain_id undocumented and does not cover asynchronous status, expected DNS records, or failure behavior, making it incomplete for reliable agent invocation.

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

Parameters2/5

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

Schema description coverage is 50%: idempotency_key is documented in the schema, but the required domain_id parameter has no schema description. The description mentions 'sender domain' generally but adds no format, source, or retry/idempotency semantics for the parameters.

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?

States a specific verb (verify) and resource (sender domain DNS/DKIM/status), with temporal context (after adding DNS records). It is clear enough to distinguish from mail_domain_add, but it does not explicitly differentiate itself from nearby verification or listing siblings such as cloud_domain_verify_status or mail_domains_list.

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?

Gives a real prerequisite: use after adding DNS records. It does not name alternatives, exclusions, or failure-handling paths, but the context for when to call it is clear.

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

mail_inbox_batchTạo nhiều hộp agentA

Khi cần tạo nhiều địa chỉ một lần (ví dụ mỗi nhân viên một hộp), tạo hàng loạt trong quota gói; lỗi từng hộp không hủy cả batch. / Use to create many inboxes at once.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
domainNo
agent_idsYes
forward_toNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false), so the bar is lowered. The description adds genuinely useful behavior beyond them: the quota constraint ('trong quota gói' – within package quota) and, importantly, partial-failure semantics ('lỗi từng hộp không hủy cả batch' – a per-inbox error does not abort the batch). That partial-failure disclosure is exactly the kind of non-obvious behavior an agent needs.

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?

Two compact clauses, front-loaded with when-to-use and then the batch/failure semantics. The English half re-states what the Vietnamese half already says ('tạo hàng loạt' ≈ 'create many at once'), which is mild redundancy, but overall it is efficient with no wasted sentences.

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 write tool with no output schema, the description adequately conveys purpose, batch scope, quota limits, and partial-failure behavior. However, with 0% schema parameter coverage it leaves the individual parameters (mode/domain/forward_to) unexplained, so an agent cannot confidently populate the call from the description alone. Complete on behavior, incomplete on parameters.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the burden, and it does not. The 4 parameters (mode enum of redirect/store/ai, domain, required agent_ids array, forward_to) are never explained: no meaning for mode values, no guidance on domain vs. the batch, no note on forward_to. The description only gestures at 'multiple addresses', leaving the parameter layer undocumented.

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?

States a specific verb and resource ('tạo nhiều địa chỉ' / 'create many inboxes') and the batch scope ('hàng loạt' / 'many at once'), which distinguishes it from the single-inbox sibling mail_inbox_create by implication. It gives a concrete example ('mỗi nhân viên một hộp' – one inbox per employee) so the agent understands the batch intent. The sibling itself is not named, so it stops short of a 5.

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?

Gives clear when-to-use context: 'when you need to create multiple addresses at once (e.g., one per employee)'. This routes the agent toward batch usage rather than repeated single creates. It offers no explicit when-not or named alternative (mail_inbox_create), so it lacks the exclusion guidance a 5 would require.

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

mail_inbox_createTạo hộp thư agentA

Khi cần một địa chỉ email cho agent trực (đọc thư, trả lời), tạo hộp. Bỏ domain để dùng miền agent.monamail.vn (nhận ngay); truyền domain đã verify để có địa chỉ brand. / Use to create an inbox an AI agent can read and reply from.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNo
agent_idYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare write (readOnlyHint=false), non-idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds genuinely useful context: omitting domain yields an immediate agent.monamail.vn address while a branded address requires a verified domain. It omits a notable trait – repeated calls create additional inboxes (idempotentHint=false) – which is left implicit.

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 definition is short and front-loads the when-to-use condition before the domain guidance, so the most actionable content comes first. The bilingual duplication adds redundancy, but no sentence is wasted.

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 low-complexity, 2-parameter mutation tool with no output schema, the description covers the trigger, the domain tradeoff, and the agent-facing purpose. It still leaves the required agent_id unexplained and does not indicate what a successful call returns (e.g., the created address), so it is adequate 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 0%, so the description must carry the load. It does explain the optional 'domain' parameter well (omit for default agent.monamail.vn, pass a verified domain for a branded address), which is the key operational decision. However, it says nothing about the required 'agent_id' parameter, so it only partially compensates for the coverage gap.

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 ('tạo hộp' / create an inbox) and scopes it to an AI agent that can 'read and reply' from it, which is more precise than the bare name. It does not name or contrast with siblings like mail_inbox_list or mail_inbox_update, so it stays at 4 rather than 5.

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 a clear trigger condition ('Khi cần một địa chỉ email cho agent trực'), which tells the agent when this tool is the right call. It offers no exclusions, prerequisites, or named alternatives (e.g., reusing an existing inbox), so it does not reach 5.

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

mail_inbox_deleteXóa hộp agentA
DestructiveIdempotent

Khi hộp không còn dùng, xóa mềm; thư cũ còn đọc tới hết retention. / Use to soft-delete an inbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
inbox_idYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is known. The description adds genuinely useful context beyond that: it is a SOFT delete and old mail stays readable until retention expires, which tells the agent data is not immediately purged. It still doesn't say whether the delete can be undone or what permissions are required.

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?

Two short clauses, front-loaded with the trigger condition and the key behavioral fact (soft delete). The bilingual duplication is redundant but each version is compact and waste-free.

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 single-parameter destructive tool with no output schema, the description covers the essential behavioral consequence (soft delete, retention window). Only the response/confirmation format and any permission requirements are left unstated, which is a minor gap.

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?

There is a single parameter (inbox_id) with 0% schema description coverage, and the description says nothing about it. The name is largely self-explanatory, but no format, source (from mail_inbox_list?) or constraint guidance is provided, so it adds no meaning beyond the schema.

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 names a specific verb and resource ('soft-delete an inbox') and the Vietnamese clause adds scope ('when the inbox is no longer in use'). It clearly distinguishes itself from mail_inbox_list/get/update by being the deletion operation, though it never names a sibling explicitly.

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?

'Khi hộp không còn dùng' supplies a thin trigger condition for when to reach for this tool, but there is no guidance on alternatives (e.g. update/disable vs delete) and no prerequisites or exclusions. Usage is implied rather than spelled out.

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

mail_inbox_getXem hộp agentB
Read-onlyIdempotent

Khi cần địa chỉ và trạng thái của một hộp, đọc chi tiết. / Use to read one inbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
inbox_idYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds only that the returned data concerns address and status, with no mention of auth requirements, error behavior, or return shape. This minor added context is appropriate for a low bar.

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?

Extremely short and front-loaded with the trigger condition first. The bilingual duplication (Vietnamese then English) is slightly redundant but does not bloat the definition.

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 read tool with one parameter and full annotation coverage, the essentials are present. However, it leaves ambiguity about what 'status' returns and how it differs from mail_inbox_message or mail_inbox_messages, which an agent selecting among siblings would need.

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

Parameters2/5

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

Schema description coverage is 0% for the single required parameter, and the description never mentions inbox_id, its format, or where to obtain it. With one undocumented parameter the description fails to compensate, leaving the schema to carry all meaning.

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?

States a specific verb (read) and resource (one inbox), and clarifies the target data is the inbox's address and status. It distinguishes itself from the list/messages siblings by emphasizing 'one inbox', though it does not name a sibling explicitly.

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?

Provides a when-to-use trigger ('when you need the address and status of an inbox'), but gives no when-not conditions and never names alternatives such as mail_inbox_list or mail_inbox_messages. Usage is implied rather than routed.

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

mail_inbox_listDanh sách hộp agentA
Read-onlyIdempotent

Khi cần biết agent đang trực những hộp nào, liệt kê hộp còn hoạt động. / Use to list active agent inboxes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds one genuine behavioral detail beyond them: only *active* inboxes are returned. It says nothing about auth scoping, pagination, or ordering, so a 3 is appropriate.

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?

Two short sentences, front-loaded with the trigger condition followed by the action. The bilingual duplication is slightly redundant for a single reader but is a deliberate audience choice rather than padding.

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 zero-parameter read tool with annotations covering the safety profile and no output schema, the description is nearly sufficient. It still omits whether results are account-scoped, whether the list is paginated, and what an 'active' inbox means, which leaves modest gaps.

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 takes zero parameters, so per the rubric the baseline is 4. There is no parameter semantics to add, and the description does not need to compensate for any schema gap.

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 (list / liệt kê) and resource (active agent inboxes), which clearly separates it from mail_inbox_get, mail_inbox_create, and mail_inbox_messages. It does not, however, explicitly name a sibling alternative, so it falls short of the top band.

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 Vietnamese clause 'Khi cần biết agent đang trực những hộp nào' gives an implied when-to-use condition (you want to know which inboxes the agent is serving), but there are no exclusions and no reference to competing tools such as mail_inbox_get for a single inbox.

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

mail_inbox_messageĐọc thư trong hộpB
Read-onlyIdempotent

Khi cần nội dung đầy đủ, header và đính kèm của một thư, đọc chi tiết; lần đọc đầu đánh dấu đã xem. / Use to read a full inbox message before replying.

ParametersJSON Schema
NameRequiredDescriptionDefault
inbox_idYes
message_idYes

TDQS

B3/5.0
Behavior1/5

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

The description discloses a real state mutation: the first read marks the message as seen. The annotations declare readOnlyHint=true and destructiveHint=false, i.e. no environment modification. Marking a message as read changes mailbox state, so the description directly contradicts the read-only annotation.

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?

Two short sentences with the purpose and side effect front-loaded; no filler beyond the intentional Vietnamese/English duplication, which doubles length but keeps each sentence meaningful.

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 2-parameter read tool with no output schema, purpose and side effect are covered, so an agent could call it. However, the unaddressed parameter semantics and the readOnly/idempotent mismatch leave meaningful gaps.

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

Parameters2/5

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

Two required parameters (inbox_id, message_id) with 0% schema description coverage, and the description never mentions either parameter or their format. It must compensate for the coverage gap and does not, though the names are largely self-explanatory.

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?

States a specific verb+resource (read a full inbox message) and enumerates what is returned (content, headers, attachments), which distinguishes it from the list-style sibling mail_inbox_messages. It does not explicitly name the alternatives it differs from, but the 'full message' framing makes the scope 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?

Gives a clear use context ('before replying') and a trigger condition ('when you need the full content, headers and attachments'). There is no explicit when-not or named alternative, so it stops short of a 5.

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

mail_inbox_messagesThư trong hộp agentB
Read-onlyIdempotent

Khi trực hộp, liệt kê thư nhận; lọc seen=false để lấy thư chưa xử lý, phân trang bằng cursor. / Use to list messages an agent needs to handle.

ParametersJSON Schema
NameRequiredDescriptionDefault
seenNofalse = chỉ thư chưa đọc.
limitNo
sinceNo
cursorNo
inbox_idYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so safety is covered structurally. The description adds genuinely useful behavior beyond that: cursor-based pagination and the seen=false filter for unprocessed mail. It still omits ordering, result-size behavior and rate limits.

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?

A single compact, front-loaded sentence that puts the filtering and pagination behavior before the generic English summary. The bilingual duplication is slightly redundant but arguably serves the tool's audience.

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 5-parameter, no-output-schema read tool, the description covers purpose, the main filter and pagination but says nothing about result ordering, what a page contains, or how limit/since interact with cursor. Adequate but with visible gaps.

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 only 20% (only 'seen' is annotated), so the description must carry more weight. It does explain seen=false and cursor pagination, but leaves inbox_id (required), limit (default 50, max 100) and since undocumented in both places.

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 ('liệt kê thư nhận' / list messages in an inbox) and scopes it to what an agent must handle. It does not explicitly distinguish itself from the singular sibling mail_inbox_message or from mail_inbox_wait, so sibling differentiation is left to inference.

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?

'Khi trực hộp' (when on inbox duty) and 'Use to list messages an agent needs to handle' imply the context, and 'lọc seen=false để lấy thư chưa xử lý' gives one concrete filter recipe. However, no alternative is named (e.g., mail_inbox_message for a single message, mail_inbox_wait for polling) and no exclusions are given.

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

mail_inbox_replyTrả lời thư trong hộpA

Khi agent trả lời khách, gửi đúng thread (In-Reply-To, References) từ địa chỉ hộp; cần text hoặc html. Việc khó rút lại (hứa giá, chuyển tiền) thì báo người, đừng tự gửi. / Use to reply to an inbox message in-thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlNo
textNo
inbox_idYes
message_idYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish this as a non-read-only, open-world, non-idempotent write, and the description adds real value beyond that: it sends from the inbox address, sets In-Reply-To/References headers for threading, requires text or html, and defines a human-escalation policy. It omits failure/rate-limit behavior and whether a sent reply can be recalled.

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?

Front-loads the when and how, and every clause earns its place (threading, body requirement, escalation rule). The bilingual duplication is efficient but adds some length.

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 send-type tool with no output schema, the description covers the key concerns: threading, sender address, body requirement, and human escalation. Missing return/error behavior is minor given the annotations already signal a non-idempotent write.

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 0%, so the description must carry parameter meaning. It clarifies that text or html is required (a real constraint not visible in the schema, where both are individually optional) and implies message_id drives threading via In-Reply-To/References, but inbox_id and message_id semantics are left unexplained.

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?

States a specific verb and resource ('reply to an inbox message in-thread'), which distinguishes it from the generic mail_send sibling by emphasizing the in-thread reply scope. It does not explicitly name mail_send as the alternative, so it falls short of full sibling differentiation.

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?

Gives clear context for use ('when the agent replies to a customer') and an explicit exclusion — hard-to-revoke actions like promising prices or transferring money should be escalated to a human rather than sent automatically. It stops short of naming the alternative tool (e.g. mail_send) for non-inbox sends.

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

mail_inbox_updateCấu hình hộp agentB
Idempotent

Khi cần đặt cách hộp xử lý thư: mode redirect (tự forward thư về email chủ) | store (chỉ lưu) | ai (để AI trực), địa chỉ forward_to, chat Telegram nhận báo, hoặc bật/tắt hộp. / Use to configure an inbox: redirect-forward email, Telegram chat, mode, active.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoredirect=tự forward về forward_to · store=chỉ lưu · ai=để AI trực.
activeNo
inbox_idYes
forward_toNoEmail chủ nhận bản forward khi mode=redirect.
notify_telegramNochat_id Telegram nhận ping khi có thư.

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds no behavioral context beyond that: it does not say whether omitted fields are left unchanged (partial vs full update), what happens to the inbox when active=false, or what the call returns. The mode text largely restates the schema.

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

Conciseness3/5

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

The content is front-loaded and reasonably short, but the English clause is essentially a restatement of the Vietnamese clause, so roughly half the text is redundant rather than additive. Acceptable for a bilingual surface, but not tight.

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 five-parameter config tool with no output schema and annotations covering read/write safety, the description tells an agent everything it needs to know about which knobs exist and what the mode values mean. The remaining gap is the partial-update contract, which is not stated.

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?

Schema description coverage is only 60%, and the description compensates by naming four of the five parameters in prose (mode with all three values, forward_to as the forwarding address, Telegram chat for notifications, and enable/disable for active). Only inbox_id is undocumented, and it is the obvious required key.

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 (configure 'Cấu hình'/set) and resource (inbox) and enumerates exactly what can be changed: mode, forward_to, Telegram notify chat, and active/inactive. It does not explicitly name any sibling (e.g. mail_inbox_create or mail_inbox_get) to differentiate itself, so it lands at 4 rather than 5.

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?

"Khi cần đặt cách hộp xử lý thư" (when you need to set how the inbox handles mail) gives a real usage trigger and the mode enum explains each option's purpose. However, there is no when-not guidance and no reference to the sibling tools (create vs get vs delete) that an agent would need to route between.

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

mail_inbox_waitChờ thư trong hộpA
Read-onlyIdempotent

Khi cần chờ thư tới (ví dụ mã OTP hoặc thư khớp mẫu), chờ tối đa timeout giây; có thư khớp trả full nội dung + extracted_code, hết giờ trả 204. Gọi lại nếu cần chờ lâu hơn. / Use to wait for an OTP or a matching message.

ParametersJSON Schema
NameRequiredDescriptionDefault
matchYesotp để lấy mã, hoặc regex khớp nội dung/subject/from.
timeoutNo
inbox_idYes

TDQS

A3.9/5.0
Behavior4/5

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

The description adds real behavior beyond the annotations: on a match it returns full content plus extracted_code, and on timeout it returns 204. That is exactly the kind of return/termination detail annotations (readOnlyHint, idempotentHint, openWorldHint, destructiveHint) cannot convey. It still omits whether the message is consumed/consumed-once and what polling/blocking behavior 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?

Two compact sentences that front-load the trigger condition and then the success/timeout outcomes, plus a short retry hint. The English half is somewhat redundant with the Vietnamese, which keeps it from a 5, but nothing is wasted.

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?

With no output schema, the description usefully covers both return paths (matched payload incl. extracted_code, or 204 on timeout) and the retry strategy, which is the core of what an agent needs. Remaining gaps are the inbox_id parameter and whether the wait is blocking/polling, but the essential contract is present.

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 only 33% – just 'match' is documented in the schema. The description partially compensates by explaining match semantics (OTP or regex against content/subject/from) and by tying 'timeout' to a maximum wait in seconds, but inbox_id is never explained in either place. A 3 reflects partial compensation for a real coverage gap.

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 names a specific verb+resource ('chờ thư tới' / wait for a message to arrive in an inbox) and scopes it to OTP or pattern-matched mail, which clearly separates it from the passive read tools mail_inbox_messages and mail_inbox_message. It does not explicitly name those siblings as alternatives, so it stops short of a 5.

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 states when to reach for this tool (waiting for an OTP or a message matching a pattern) and even gives a retry rule ('Gọi lại nếu cần chờ lâu hơn'). No when-not-to-use or explicit alternative is given, so it is clear context without exclusions.

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

mail_listDanh sách emailA
Read-onlyIdempotent

Khi tra lịch sử gửi, lọc theo trạng thái, người nhận hoặc thời gian. / Use to search sent email history.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNo
limitNo
sinceNo
statusNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is clear. The description adds domain context (sent email history, filterable by status/recipient/time) but omits return format, pagination details, and authentication requirements. With annotations covering the safety burden, a 3 is appropriate.

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 two short sentences, front-loaded with the filter context in Vietnamese and a concise English summary. It avoids waste, though the bilingual repetition is slightly redundant; overall it is appropriately sized.

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 read-only list/search tool with no output schema and four optional parameters, the description covers purpose and filter dimensions but omits ordering, pagination behavior, and any indication of return shape. Annotations cover safety, but these remaining gaps leave it adequate rather than 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 0%, so the description must compensate. It maps 'to' to recipient, 'status' to status, and 'since' to time filters, but does not mention the 'limit' parameter or clarify any syntax beyond what the schema already enforces. Partial compensation warrants a 3.

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 English sentence 'Use to search sent email history' specifies both the verb and the resource clearly. It does not explicitly differentiate from related siblings such as mail_status or mail_stats, but the 'sent email history' scope is distinct enough for an agent to identify the tool's domain.

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 Vietnamese clause 'Khi tra lịch sử gửi' establishes the context (when looking up send history) and adds filter dimensions (status, recipient, time). It does not name alternatives or exclusions, but the usage context is clear and actionable.

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

mail_plansGói MONA MailB
Read-onlyIdempotent

Khi chọn gói gửi mail, đọc giá và quota hiện hành. / Use to compare current email plans.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered by structured data. The description adds nothing behavioral beyond that — no note on whether prices are live/cached, whether auth or account context is required, or any rate limits.

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?

Two short sentences, front-loaded with the trigger condition and then the action. The bilingual duplication is somewhat redundant but does not bloat the text meaningfully.

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, read-only listing tool with no output schema, the description tells the agent what it gets back (prices and quota) and when to reach for it. Annotations carry the safety profile, so little else is needed.

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 takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The schema's empty properties object is consistent with the description's read-only comparison framing.

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 clear read action on a specific resource: read current prices and quotas for email plans, and use it to compare plans. It is distinguishable in intent from the sibling mail_plan_set (which mutates a plan), though it never names that sibling explicitly.

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 Vietnamese clause 'Khi chọn gói gửi mail' supplies a when-condition (use while choosing a mail plan), which is a genuine usage cue. However, no alternatives or exclusions are named — notably mail_plan_set is not mentioned — so routing is only implied.

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

mail_plan_setĐổi gói MONA MailB
Idempotent

Khi cần đổi quota, chọn gói; gói trả phí trừ ví VND, thiếu tiền gọi cloud_topup. / Use to change the email plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
planYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, openWorldHint=true, so an agent knows this is a non-destructive, idempotent write. The description adds one genuinely useful behavioral fact beyond that: paid plans deduct from the VND wallet and insufficient funds triggers cloud_topup. However it omits What the cost is, whether the change is immediate, and what happens to existing mailboxes/data on downgrade.

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

Conciseness3/5

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

It is short, but it packs two languages and a payment-routing clause into a single slashed sentence, so it is not well front-loaded. The English half is the most generic sentence of the two, while the more useful Vietnamese half is deferred.

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 one-parameter write with a 0%-coverage schema, no output schema, and an opaque enum, the description is only partially adequate. It supplies the payment/insufficient-funds behavior, which is the most important non-obvious fact, but leaves the meaning of the plan values and the effect of switching unresolved.

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

Parameters2/5

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

Schema description coverage is 0% for the single required 'plan' parameter, so the description carries the burden. It conveys that the plan determines whether payment is deducted (implicitly mapping to the free vs paid tiers), which is mildly useful, but it never enumerates or explains the enum values (free, khoi-nghiep, kinh-doanh, doanh-nghiep) or their quotas. The enum names themselves are opaque without explanation, so the description falls short of compensating.

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

Purpose3/5

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

The English sentence 'Use to change the email plan' states a clear verb (change) and resource (email plan), and the Vietnamese adds detail about quota and selecting a plan. But it is not differentiated from the sibling mail_plans (which presumably lists plans), and the mixed-language, roughly-split phrasing makes the core purpose less crisp than a single clear statement would be.

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 does give a when-condition: 'when you need to change quota, select a plan,' and explicitly names an alternative for insufficient funds ('call cloud_topup'). That is real routing guidance. It stops short of 5 because it does not clarify when to use this vs. cloud_subscription_update or reveal prerequisites like verifying the target plan exists via mail_plans.

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

mail_sendGửi email giao dịchA

Khi gửi OTP hoặc thông báo, dùng domain đã verify; onboarding@monamail.vn chỉ gửi tới email chủ. sandbox=true thử 0đ, không gửi ra Internet. / Use to send transactional email or test in sandbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYes
fromYes
htmlNo
tagsNo
textNo
sandboxNoGửi X-Mona-Sandbox: 1, không tính quota hoặc trừ ví. / Test without delivery or charges.
subjectNoBắt buộc nếu không dùng template_id. / Required without a template.
reply_toNo
variablesNo
template_idNo
idempotency_keyNoGiữ cùng key khi thử lại cùng yêu cầu trong 24 giờ. / Reuse for retries.
unsubscribe_urlNo

TDQS

A3.6/5.0
Behavior4/5

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

Beyond the annotations (openWorld, non-idempotent, non-destructive), the description discloses that sandbox=true does not deliver to the Internet and costs nothing, that the domain must be verified, and that onboarding@monamail.vn can only send to the owner's address. These are useful behavioral constraints an agent would not infer from the schema alone.

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 guidance is front-loaded and dense, with each clause carrying real information (domain requirement, sender restriction, sandbox behavior). The bilingual duplication adds length, but the content is efficient and non-redundant.

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 12-parameter mutation tool with nested objects and no output schema, the description covers the sending/sandbox behavior but omits how content is specified (html/text vs template_id), retries/idempotency, and most parameter semantics. Adequate but with clear gaps.

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

Parameters2/5

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

Schema description coverage is only 25% across 12 parameters. The description adds meaning for 'sandbox' and constrains 'from' (verified domain) and the onboarding sender, but leaves most parameters (to, html, text, subject, tags, reply_to, variables, template_id, unsubscribe_url) unexplained. It does not compensate for the low 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 states a specific verb+resource ('Use to send transactional email or test in sandbox') and narrows the scope to OTP/notification transactional mail. It is clear what the tool does, though it does not explicitly name or differentiate itself from sibling senders like mail_inbox_reply.

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: use a verified domain when sending OTP or notifications, and set sandbox=true to test without real delivery or charges. There are no explicit exclusions or named alternative tools, but the when-to-use conditions are stated.

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

mail_statsThống kê gửi emailB
Read-onlyIdempotent

Khi đánh giá khả năng giao thư, đọc tỷ lệ delivered và bounce theo thời gian. / Use to review email delivery statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNo
fromNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds only that delivered/bounce rates are the returned metrics, and says nothing about default time range, permissions, or aggregation granularity.

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

Conciseness3/5

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

The Vietnamese and English sentences carry essentially the same content, so roughly half the text is redundant duplication rather than added information. The useful clause (when to use) is front-loaded, but the sizing is inefficient for the amount of guidance delivered.

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?

There is no output schema, so return values need not be spelled out, and annotations cover safety. However, with two optional, undescribed parameters and no statement of default range or output shape, the definition is only marginally complete for a stats tool.

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

Parameters2/5

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

Schema description coverage is 0% and the two date parameters (from/to) are undocumented. The phrase "theo thời gian" implies a time dimension but does not explain that from/to are the range controls, their date vs date-time formats, or what happens when they are omitted (both are optional).

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 names a specific resource (email delivery statistics) and the concrete metrics returned (delivered and bounce rates over time), so an agent can tell what it does. It does not, however, distinguish it from nearby siblings such as mail_status, mail_list, or monapay_email_stats.

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?

"Khi đánh giá khả năng giao thư" gives an implied usage context (when assessing deliverability), but there is no explicit when-not guidance and no named alternative among the many sibling mail_* tools. The English half simply restates the purpose rather than adding a selection condition.

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

mail_statusTrạng thái emailB
Read-onlyIdempotent

Khi cần xác nhận thư đã giao, đọc trạng thái, events và sandbox_preview. / Use to inspect an email after sending.

ParametersJSON Schema
NameRequiredDescriptionDefault
email_idYes

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by mentioning status, events, and sandbox_preview, but does not discuss auth requirements, rate limits, or response structure.

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 short and front-loaded, containing only the essential use context. The bilingual repetition is slightly redundant, but each language version is efficiently written.

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 read-only status lookup, the description is adequate but not complete: it mentions returned concepts without an output schema, and it leaves the sole required parameter undocumented. Given the rich annotations, safety is covered, but the call mechanics remain underspecified.

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

Parameters2/5

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

Schema description coverage is 0% and the only parameter, email_id, is undocumented in the schema. The description refers to inspecting 'an email' but never explains what email_id should be, where to obtain it, or its expected format.

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 gives a clear verb and resource: inspect an email after sending. The Vietnamese portion adds that it reads delivery status, events, and sandbox_preview. It does not, however, differentiate itself from siblings like mail_list or mail_inbox_message.

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 clearly states the context for use — after sending an email, when confirming delivery — but does not name when not to use it or point to concrete alternatives among the mail_* siblings.

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

mail_suppression_removeGỡ suppression tài khoảnA
DestructiveIdempotent

Khi đã xử lý nguyên nhân chặn, gỡ suppression của tài khoản; lớp toàn hệ không gỡ được. / Use to remove an account-level suppression.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, covering the safety profile. The description adds a useful behavioral limit (system-wide suppression cannot be removed) and a precondition, but says nothing about irreversibility, required permissions, or response, so with annotations carrying most of the burden a 3 is appropriate.

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?

Two tightly bounded sentences with the precondition front-loaded, so the key condition is read first. The bilingual duplication (Vietnamese then English) is mildly redundant but does not bloat the definition.

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 single-parameter, non-read-only mutation with annotations covering safety and no output schema required, the description supplies the key scope rule and precondition. Gaps are minor (auth/permission needs, confirmation of effect on future sends).

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?

Only one email parameter exists and schema_description_coverage is 0%, so the schema documents the type/pattern but no meaning. The description implies the email identifies the account whose suppression is being removed, but never states this explicitly, adding only marginal value.

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 names a specific verb (remove/"gỡ") and resource (suppression/"suppression") and scopes it precisely to the account level. It distinguishes the account-level layer from the non-removable system-wide layer, though it never references sibling tools directly, so it lands at 4 rather than 5.

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 a concrete precondition for invocation: use it once the blocking cause has been handled. That is a real when-to-use signal, but no alternatives are named (e.g. mail_suppressions_list to inspect first), so it stops short of full when/when-not guidance.

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

mail_suppressions_listĐịa chỉ ngừng gửiA
Read-onlyIdempotent

Khi thư bị suppressed, xem địa chỉ và lý do ngừng gửi. / Use to diagnose suppressed recipients.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds a small amount of value by indicating the payload contains both the address and the suppression reason, but says nothing about listing scope, limits, or pagination.

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?

Very short and front-loaded, with the purpose before the usage line. Slightly penalized because the bilingual Vietnamese/English restatement duplicates the same content rather than adding 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?

For a simple zero-parameter read tool with no output schema, the essentials are present, but a list tool should ideally hint at scope or pagination; that information is absent, leaving the return shape only partially described.

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 takes zero parameters and schema coverage is 100%, so the documented baseline for a no-param tool applies; the description adds no parameter detail because none exists to add.

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?

States a specific verb (view/list) and resource (suppressed addresses plus the suppression reason), so an agent knows what it returns. It does not, however, distinguish itself from the similarly-named sibling suppression tools (mail_suppression_remove, monapay_list_email_suppressions).

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?

"Use to diagnose suppressed recipients" gives a usage context, which is more than nothing, but there is no when-not guidance, no prerequisites, and no explicit routing among the sibling suppression/removal tools.

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

mail_template_createTạo mẫu emailB

Khi app dùng lại nội dung mail, tạo template với biến {{ten_bien}}. / Use to create a reusable email template.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlYes
nameYes
textNo
subjectYes
idempotency_keyNoGiữ cùng key khi thử lại cùng yêu cầu trong 24 giờ. / Reuse for retries.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare a non-read-only, non-idempotent, non-destructive, open-world write. The description adds only the placeholder-variable convention; it says nothing about permission requirements, validation rules (subject cannot contain CR/LF, name max 255), or what happens on a duplicate name. Useful but thin beyond the annotation baseline.

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?

Two short sentences, front-loaded with the trigger condition, no padding. The bilingual duplication costs a little scanning effort but does not bury the operative content.

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?

For a 5-parameter mutation tool with no output schema and only 20% schema coverage, the description leaves the agent guessing about required-parameter meaning, constraints on html/text/subject, and retry semantics. Annotations cover safety but not the operational detail this tool needs.

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

Parameters2/5

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

Schema description coverage is 20% (only idempotency_key is documented), leaving name, subject, html and text with no semantics anywhere. The description mentions {{ten_bien}} for template bodies but never explains the distinct roles of name, subject, html and text, so it does not compensate for the coverage gap.

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?

States a clear verb+resource (create a reusable email template) and adds the reuse trigger plus the {{ten_bien}} placeholder convention, so the agent knows the artifact being produced. It does not need sibling differentiation since no other mail_template_* tool exists in the list.

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 clause 'Khi app dùng lại nội dung mail' implies when to reach for a template instead of sending inline, but there is no explicit when-not guidance, no mention of alternatives (e.g. mail_send), and no prerequisites such as needed scopes or domain verification.

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

mail_webhook_createTạo webhook emailA

Khi app cần nhận sự kiện gửi hoặc bounce, đăng ký HTTPS webhook; lưu secret một lần vào .env, không log. / Use to subscribe an app to email events.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
eventsYes
idempotency_keyNoGiữ cùng key khi thử lại cùng yêu cầu trong 24 giờ. / Reuse for retries.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly=false, non-idempotent, non-destructive. The description adds real value beyond them: it requires an HTTPS endpoint and warns that a secret is issued once and must be stored in .env and not logged, which is the key operational behavior for a webhook-registration mutation.

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?

Very tight, front-loaded with the usage condition followed by the security caveat. The bilingual duplication adds redundancy but is a deliberate accessibility choice rather than 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 3-param mutation tool with no output schema and annotations covering the safety profile, the description supplies the essential missing context: HTTPS requirement and one-time secret handling. It does not cover duplicate-registration behavior or rate limits, but nothing critical to a correct call is absent.

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 only 33% (only idempotency_key documented), so the description must carry some burden. It does imply the URL must be HTTPS and names the event categories (send/bounce), but leaves the other enum event types, the 1-8 item array bound, and retry semantics to the schema.

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?

States a specific verb+resource: register/subscribe an app to a webhook for email send and bounce events. An agent can distinguish it from mail_webhooks_list (read) and mail_webhook_test (test). It does not explicitly name those siblings, but the create/subscribe action 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 Guidelines3/5

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

"Khi app cần nhận sự kiện gửi hoặc bounce" provides a clear trigger condition for when to use it. However, it gives no exclusions or alternatives — nothing routes the agent away from mail_webhook_test or mail_webhooks_list when those are the better fit.

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

mail_webhooks_listDanh sách webhook emailB
Read-onlyIdempotent

Khi kiểm tra cấu hình sự kiện của app, liệt kê webhook. / Use to inspect registered email webhooks.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that — no note on pagination, result ordering, or whether unregistered webhooks appear — so it earns little credit for behavioral disclosure.

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?

Two short clauses with the resource front-loaded and no filler. The Vietnamese/English duplication is redundant for a monolingual agent but does not obscure the intent.

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 zero-parameter, read-only listing tool with no output schema and full annotation coverage, the description is minimally sufficient. It never says what the listing returns (event types, endpoints, status) or how it behaves on an empty configuration, leaving gaps an agent may care about.

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 takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; no parameter-level detail is needed or missing.

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 pairs a clear verb ("liệt kê" / "list") with a specific resource ("email webhooks") and frames it as inspecting an app's event configuration. It does not distinguish itself from the close sibling monapay_list_webhooks, which an agent could easily confuse with this one.

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?

"Use to inspect registered email webhooks" implies the usage context (checking event configuration) but names no alternatives, prerequisites, or when-not-to-use conditions. With mail_webhook_create, mail_webhook_test, and monapay_list_webhooks in the sibling set, routing guidance is left to inference.

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

mail_webhook_testThử webhook emailB

Khi đã có endpoint, gửi mẫu email.delivered để kiểm tra HTTP response. / Use to test webhook delivery to an app.

ParametersJSON Schema
NameRequiredDescriptionDefault
webhook_idYes
idempotency_keyNoGiữ cùng key khi thử lại cùng yêu cầu trong 24 giờ. / Reuse for retries.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false, so the safety profile is covered. The description adds that a synthetic `email.delivered` payload is dispatched and the resulting HTTP response is checked, which is meaningful behavioral context. It omits whether the test is logged, whether it counts against quotas, or how failures surface.

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?

Two short bilingual sentences, with the precondition front-loaded before the action. Nothing is padded, though the second English sentence is largely a restatement of the first rather than new 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?

There is no output schema, so the description carries the burden of describing the result; 'kiểm tra HTTP response' gestures at it but does not say what is returned (status code, response body, delivery result) or how a failed delivery is reported. For a test/mutation tool that makes a real outbound call, this leaves a moderate gap.

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 50%: `idempotency_key` is documented in the schema, while `webhook_id` has no description. The phrase 'Khi đã có endpoint' loosely implies `webhook_id` must reference an existing endpoint, adding some meaning, but the description never explains the identifier itself or how the two parameters interact on retries.

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 concrete verb and resource: send a sample `email.delivered` event to verify the webhook's HTTP response. That is more specific than the title ('Thử webhook email'). It does not, however, distinguish this from siblings like monapay_test_webhook or monapay_test_email, so an agent still has to reason about which test tool applies.

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?

'Khi đã có endpoint' / 'Use to test webhook delivery' implies a prerequisite (a webhook endpoint must already exist) and a context (validating delivery), which is useful. It names no alternatives and gives no when-not-to-use guidance, so routing between this and the other test/list webhook tools is left to inference.

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

monapay_cancel_checkoutHuỷ phiên thanh toánA
DestructiveIdempotent

Huỷ checkout đang pending; checkout đã paid, expired hoặc cancelled không thể huỷ lại. / Cancel a pending checkout.

ParametersJSON Schema
NameRequiredDescriptionDefault
checkout_idYesID phiên thanh toán
idempotency_keyNoKhoá chống tạo trùng; bỏ trống để MCP tự sinh UUID

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered structurally. The description adds useful non-obvious behavior beyond that: the state machine constraint that only pending checkouts are cancellable and paid/expired/cancelled ones are terminal.

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 tight sentences (bilingual) with the core action and the key state constraint front-loaded; nothing extraneous. Every clause 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 2-parameter mutation with full schema coverage, rich annotations, and no output schema, the description supplies the state preconditions an agent needs to avoid a failing call. It could note side effects (e.g., what happens to a held amount) but is otherwise complete enough.

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 checkout_id and idempotency_key are already documented in the schema (including the auto-UUID fallback for idempotency_key). The description adds nothing about parameter format or constraints, so the baseline 3 is appropriate.

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?

States a specific verb+resource combination ('Cancel a pending checkout') and constrains it to the pending state, which makes the intent unmistakable. It does not explicitly name a sibling tool (e.g., cancel_qr or get_checkout) to differentiate, so a 4 rather than a 5.

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?

Gives a clear state-based precondition for use ('pending') and an explicit when-not ('paid, expired hoặc cancelled không thể huỷ lại'), which is genuinely actionable guidance. It stops short of naming alternative tools for those other states, so it falls just below a 5.

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

monapay_cancel_qrHuỷ mã QRC
DestructiveIdempotent

Huỷ một mã VietQR động đã tạo. / Cancel a dynamic QR.

ParametersJSON Schema
NameRequiredDescriptionDefault
qr_code_idYes

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered. The description adds nothing beyond 'dynamic' VietQR: it does not say the QR becomes unusable, whether a cancelled QR can be regenerated, or what the caller should do next, so it contributes little behavioral context.

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?

Two short bilingual sentences with the verb and resource front-loaded; nothing is padded. The Vietnamese/English duplication is slightly redundant but keeps it readable for both audiences.

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?

For a destructive, irreversible-seeming cancel operation with no output schema, the description is too thin: it omits success/failure behavior, error conditions (e.g. invalid or already-cancelled id), and how to obtain qr_code_id. The annotations cover safety, but the agent still lacks the operational detail needed to call this confidently.

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

Parameters2/5

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

Schema description coverage is 0% and the single parameter qr_code_id is undocumented in both schema and description. With one required param at 0% coverage the description should clarify where the id comes from (e.g. the output of monapay_create_qr), but it does not.

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?

States a specific verb (cancel) and resource (dynamic VietQR), which is more precise than the tautological title 'Huỷ mã QR'. It implicitly contrasts with monapay_create_qr, but does not name an alternative or clarify against the similar monapay_cancel_checkout sibling.

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 explicit when-to-use or when-not-to-use guidance, and no alternatives are named. The phrase 'đã tạo' (already created) only weakly implies the QR must pre-exist, leaving the agent to infer preconditions.

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

monapay_create_checkoutTạo link thu tiềnB

Tạo link thu tiền, đưa link cho khách hoặc chuyển hướng checkout; đợi webhook CHECKOUT_PAID trước khi giao hàng. / Create a hosted checkout link; wait for CHECKOUT_PAID before fulfilment.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesSố tiền nguyên VND
sandboxNotrue = phiên THỬ với VA sandbox, không tiền thật; dùng được khi chưa nối ngân hàng
metadataNo
cancel_urlNo
expires_inNo
order_codeYes
payer_nameNo
return_urlYes
descriptionNo
payer_emailNo
idempotency_keyNoKhoá chống tạo trùng; bỏ trống để MCP tự sinh UUID
virtual_account_idNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true and idempotentHint=false, covering the safety profile. The description adds one genuinely useful behavioral detail (the CHECKOUT_PAID confirmation gate before fulfilment) but omits auth requirements, expiry behavior and what the returned artifact is, so it goes only modestly beyond the annotations.

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

Conciseness3/5

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

The core action is front-loaded and each language version is short, but the description is bilingual and therefore states everything twice. For an agent reading one language the duplication dilutes rather than adds value.

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 12-parameter creation tool with no output schema, the description conveys the purpose and the critical post-creation webhook step but leaves the returned value (the checkout URL), auth requirements, sandbox interplay and most parameter meanings unexplained. Adequate but with clear gaps.

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

Parameters2/5

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

Schema description coverage is only 25% across 12 parameters, so the description carries most of the burden — yet it mentions no parameters at all. The amount/sandbox/idempotency hints live only in the schema (and in Vietnamese), and the description does not compensate for the many undocumented fields.

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?

States a specific verb and resource ('Create a hosted checkout link') plus the follow-up workflow (hand link to customer / redirect to checkout). It is clear, but it never explicitly distinguishes this from sibling monapay_create_qr or monapay_get_checkout, so an agent must infer the boundary.

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 gives a workflow condition ('wait for CHECKOUT_PAID before fulfilment') but no guidance on when to choose this over alternatives such as create_qr or create_webhook. Usage is implied rather than stated.

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

monapay_create_email_configTạo cấu hình thông báo emailA

Tạo kênh thông báo email. Sau khi tạo, MONA Pay gửi mã 6 số tới từng địa chỉ; hỏi người dùng mã rồi gọi monapay_verify_email; không tự đoán mã. / Create an email notification config. MONA Pay sends a 6-digit code to each address; ask the user for each code, call monapay_verify_email, and never guess a code.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTên cấu hình
eventsNoSự kiện gửi email; luôn phải có TRANSACTION_IN
recipientsYesTừ 1 đến 10 địa chỉ nhận email
virtual_account_idNoChỉ nhận thông báo cho VA này; bỏ trống = mọi tài khoản

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only tell us this is a non-idempotent, open-world write; the description adds the substantive behavioral detail that creation triggers per-address verification codes and that verification is a required follow-up step via monapay_verify_email. That multi-step side effect is exactly the kind of context annotations cannot convey.

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?

Only two sentences, front-loaded with the action and immediately followed by the critical verification steps. The content is duplicated in Vietnamese and English, which is intentional for bilingual audiences but does double the text length.

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 mutation tool with no output schema, the description covers the essential lifecycle (create then verify per address). It stops short of stating what state the config is in before verification completes or what happens if a code is wrong/expired, which an agent might need.

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%, including the TRANSACTION_IN event invariant and the 1-10 recipient bound, so the baseline is 3. The description adds no parameter-level detail (name, events, recipients, virtual_account_id) beyond what the schema already documents.

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?

States a specific verb+resource ('Create an email notification config' / 'Tạo kênh thông báo email'), which cleanly separates it from siblings monapay_update_email_config, monapay_delete_email_config, and monapay_list_email_configs. An agent can identify the operation without opening the schema.

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?

Gives explicit post-creation flow: MONA Pay sends a 6-digit code to each address, the agent must ask the user for each code and call monapay_verify_email. It also states a clear prohibition ('never guess a code'). It does not explicitly contrast create vs update for existing configs, but the context is unambiguous.

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

monapay_create_qrTạo VietQR động cho đơn hàngC

Tạo mã VietQR động điền sẵn số tiền + nội dung cho một đơn hàng qua ACB. Khách quét là tiền vào tài khoản ảo, MONA Pay bắn webhook. / Create a dynamic VietQR for an order.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesSố tiền VND (số nguyên)
userIdNo
orderIdYesMã đơn hàng của hệ thống anh chị
ownerTypeNoPER cá nhân / ORG doanh nghiệpPER
merchantIdYesMã merchant (hiển thị ở dashboard mục Tạo QR)
terminalIdNoWEB
descriptionNoNội dung chuyển khoản, nên chứa mã đơn
loyaltyCodeNo
ownerNumberYesSố tài khoản ACB nhận tiền
traceNumberNo
voucherCodeNo
beneficiaryNameYesTên đơn vị hưởng
virtualAccountPrefixYesĐầu số tài khoản ảo đã đăng ký

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare this is a non-readonly, non-idempotent, open-world write with destructiveHint=false. The description adds one genuinely useful behavioral fact not in the annotations: customer scans → funds land in the virtual account → MONA Pay fires a webhook. However it omits auth requirements, what happens on repeat calls (idempotency), and error behavior.

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?

Short and front-loaded, with the core action first. The Vietnamese/English duplication adds length but no real noise, and every clause carries meaning.

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?

For a 13-parameter mutation tool with no output schema, the description should at minimum indicate what is returned (QR string? image? reference id?) and any required setup state. Neither is present, leaving significant gaps for correct invocation.

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

Parameters2/5

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

Schema coverage is only 62% with 13 parameters, and the description only alludes to two of them (amount, transfer content). The undocumented parameters (userId, terminalId, loyaltyCode, traceNumber, voucherCode) get no explanation anywhere, so the description fails to compensate for the coverage gap.

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?

States a specific verb and resource: creating a dynamic VietQR pre-filled with amount and transfer content for an order through ACB. It is clearly distinguishable from siblings like monapay_cancel_qr or monapay_create_checkout, though it never explicitly names which sibling to use instead.

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 implies the payment-collection context but gives no when-to-use guidance, no prerequisites (e.g. merchantId/virtualAccountPrefix must already be registered), and no comparison against the checkout or QR-cancel siblings.

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

monapay_create_webhookTạo cấu hình webhookB

Đăng ký URL nhận webhook khi có tiền vào; khuyến nghị auth_type HMAC_SHA256 + secret_key. / Create a webhook config.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
auth_typeNoHMAC_SHA256
secret_keyNoSecret ký HMAC hoặc giá trị API key
webhook_urlYes
api_key_nameNoTên header khi auth_type=API_KEY, mặc định X-Webhook-Secret
payload_formatNoapplication/json
virtual_account_idNoChỉ bắn cho VA này; bỏ trống = mọi tài khoản

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare this as a non-idempotent, non-destructive write in an open world, so the safety profile is covered. The description adds the useful event context (fires on incoming money) and an auth recommendation, but stays silent on behaviors like duplicate-URL handling, secret persistence, or failure modes that matter for a registration endpoint.

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 core statement and recommendation are front-loaded in a single compact sentence. The bilingual tail ('/ Create a webhook config') largely repeats what was already stated, which is mildly redundant but not harmful.

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 7-parameter mutation tool with no output schema and low schema coverage, the description is thin: it does not explain the parameter surface or what a successful registration returns. It covers the essentials an agent needs to recognize the tool but leaves real gaps in the configuration space.

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

Parameters2/5

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

Schema description coverage is low (43%) across 7 parameters, so the description should compensate. It only touches auth_type and secret_key via a recommendation and leaves name, webhook_url, payload_format, api_key_name, and virtual_account_id entirely to the schema, adding marginal meaning beyond the field names.

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 names a specific verb+resource ('Đăng ký URL nhận webhook' / register a webhook URL) and adds the trigger condition ('khi có tiền vào' / when money comes in), which distinguishes it from read-only siblings like monapay_list_webhooks. It is clear enough to select, though it does not explicitly contrast itself with monapay_update_webhook or monapay_test_webhook.

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 tool's create-from-scratch role is implied, and it offers a configuration recommendation ('khuyến nghị auth_type HMAC_SHA256 + secret_key'). However, it gives no explicit when-to-use vs. when-not, nor does it point to the sibling alternatives (update/delete/test/list webhooks) an agent would need to disambiguate.

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

monapay_create_zalo_groupNối nhóm ZaloA

Nối nhóm có bot Gấu Mona bằng group_id 10–25 chữ số lấy từ MONA Account/PMS; Zalo không parse Markdown, nên template phải là text thuần.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventsNoCác sự kiện gửi vào nhóm Zalo
group_idYesgroup_id gồm 10–25 chữ số, lấy từ MONA Account/PMS
is_activeNo
friendly_nameYesTên dễ nhớ của nhóm
message_templateNoText thuần; hỗ trợ {amount}, {description}, {virtual_account_number}, {transaction_code}, {transfer_date} và dạng {{...}}
virtual_account_idNoChỉ nhận thông báo cho VA này; bỏ trống = mọi tài khoản

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly=false, idempotent=false, openWorld=true, destructive=false, so the safety profile is covered. The description adds a real behavioral constraint — Zalo does not parse Markdown, so template must be plain text — but says nothing about failure modes, permission/auth needs, or what creation returns.

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?

Two tight clauses, front-loaded with the core action before the format caveat. No waste, though the group_id digit range is redundantly echoed from the schema.

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?

A mutation tool with no output schema; the description covers the action, id source, and one template constraint, but leaves events, is_active, and virtual_account_id behavior to the schema and doesn't describe outcomes. Adequate but with visible gaps for a 6-param creation tool.

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?

Schema coverage is 83% so baseline is 3, but the description adds genuinely new meaning beyond the schema by warning that message_template must be plain text (no Markdown), a constraint absent from the schema description. The group_id format note largely repeats the schema's pattern/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?

States a specific verb+resource: connecting ('Nối') a Zalo group to the Gấu Mona bot, with the group_id source (MONA Account/PMS) named. This clearly distinguishes it from list/update/delete/test siblings by intent, though it never names those alternatives explicitly.

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?

Provides a prerequisite (group_id must come from MONA Account/PMS), which implies when the tool is usable, but gives no explicit when-to-use vs monapay_update_zalo_group or monapay_test_zalo_group, and no when-not guidance.

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

monapay_delete_email_configXoá cấu hình thông báo emailB
DestructiveIdempotent

Xoá vĩnh viễn một cấu hình email. / Permanently delete an email notification config.

ParametersJSON Schema
NameRequiredDescriptionDefault
config_idYesUUID cấu hình email

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is carried by structured data. The description's 'permanently delete' reinforces irreversibility, which adds modest value, but it says nothing about side effects (e.g., whether verification state or logs are removed).

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?

Two short sentences, action front-loaded, no filler. The bilingual duplication costs a little space but aids clarity for a dual-language tool set.

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 single-parameter destructive tool with no output schema, the annotations plus a clear statement of permanence cover what an agent needs to call it safely. Only the discovery path to config_id is unaddressed.

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?

Only one parameter (config_id) and schema coverage is 100%, with the schema already documenting it as a UUID with minLength 8. The description adds no format, lookup, or validation detail beyond the schema, so the baseline 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?

States a specific verb (delete) and resource (email notification config), and 'permanently' makes the operation unambiguous. It does not name the sibling it is distinguished from (update/create email config), but the action itself is clear enough for an agent to select it.

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?

No when-to-use guidance, no mention of how to obtain config_id, and no reference to alternatives such as monapay_list_email_configs for discovery or monapay_update_email_config if the intent is merely to change settings. The description leaves the agent to infer the entire usage context.

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

monapay_delete_webhookXoá cấu hình webhookC
DestructiveIdempotent

Xoá một webhook config. / Delete a webhook config.

ParametersJSON Schema
NameRequiredDescriptionDefault
config_idYes

TDQS

C2.1/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, openWorldHint=true and readOnlyHint=false, so the safety profile is covered structurally. The description adds nothing on top of that — no note that deletion is permanent, whether the webhook stops firing immediately, or what happens to historical logs. With annotations carrying the burden, this is the minimum-additive case, not a contradiction.

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

Conciseness3/5

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

The text is short and front-loaded, with no preamble or filler. However, the Vietnamese/English duplication conveys the identical fact twice, so half the content is redundant rather than earning its place.

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?

For an irreversible delete with a single opaque required identifier, no output schema, and no annotations explaining consequences, the description should at least identify the parameter source and confirm permanence. Neither is present, so an agent lacks what it needs to invoke this safely.

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

Parameters2/5

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

Schema description coverage is 0%: config_id is documented only as a bare string with no format, origin, or example. The description does not compensate — it never mentions the parameter or where to obtain a valid config_id, which is the main ambiguity an agent faces before calling a delete tool.

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

Purpose2/5

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

The description says 'Delete a webhook config', which is a grammatical verb+resource, but it adds nothing beyond the tool name (monapay_delete_webhook) and the title (Xoá cấu hình webhook) — it is a straight bilingual restatement. It also gives no signal to distinguish it from siblings like monapay_update_webhook, monapay_create_webhook, or monapay_delete_email_config.

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 when-to-use guidance, no prerequisite (e.g. needing a config_id obtained from monapay_list_webhooks), and no mention of the alternative of updating rather than deleting. The agent must infer everything about when this tool is appropriate.

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

monapay_delete_zalo_groupXoá nhóm ZaloB
DestructiveIdempotent

Xoá một cấu hình thông báo nhóm Zalo.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID cấu hình nhóm Zalo do MONA Pay trả về (UUIDv6)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true. The description adds the specific object being deleted (the Zalo group notification configuration), but does not describe consequences like permanence, authentication requirements, or rate limits.

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 with no redundant or filler content. For a simple delete-by-ID operation, this is appropriately sized and wastes no words.

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 one-parameter destructive tool whose annotations already cover the safety profile (destructive, idempotent, openWorld), the description states what is deleted but omits consequence details such as irreversibility and effect on related data. This leaves clear gaps that an agent must fill by inference.

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%: the single id parameter is fully documented as a UUIDv6 returned by MONA Pay. The description adds no additional meaning beyond what the schema already provides, so the baseline 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?

States a specific verb (Xoá) and resource (cấu hình thông báo nhóm Zalo), making clear it deletes a notification configuration rather than the Zalo group itself. However, it does not explicitly distinguish itself from sibling operations like update, create, list, or test.

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?

Provides no when-to-use guidance, no prerequisites, and no mention of alternatives such as monapay_update_zalo_group or monapay_list_zalo_groups. The agent must infer routing from the tool name and annotations.

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

monapay_email_logsLịch sử gửi emailA
Read-onlyIdempotent

Tra meta từng lần gửi email, không chứa nội dung thư; lọc theo cấu hình, trạng thái, sự kiện và ngày. / List email delivery metadata; message bodies are never stored.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
statusNo
to_dateNo
config_idNo
from_dateNo
event_typeNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds a meaningful behavioural disclosure beyond that: message bodies are never stored, only delivery metadata is returned. It still omits pagination behaviour and rate limits, keeping it out of 5 territory.

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?

Two short, front-loaded sentences with the purpose and the most important data-retention constraint stated first. The Vietnamese/English duplication is intentional for audience coverage and does not add noise.

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 purpose, filter dimensions, and the key output constraint (metadata only), which is adequate for an agent to understand what it returns. However, with 7 parameters and no output schema, it should say more about pagination (page/limit), default ordering, or result size limits.

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 0%, so the description must compensate. It identifies the filterable categories (config, status, event, date), which partially maps to config_id, status, event_type, from_date, and to_date. However, it gives no detail on page/limit, config_id format, or date syntax beyond what the schema's enum and pattern definitions already provide.

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?

States a specific verb+resource (list email delivery metadata per send) and adds a key distinction ('message bodies are never stored') that separates it from content-oriented email tools. It does not name any sibling alternative, so it falls just short of 5.

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 by listing the dimensions you can filter on (config, status, event, date), but it gives no explicit when-to-use or when-not-to-use guidance and does not point to alternatives like monapay_email_stats or monapay_list_email_suppressions.

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

monapay_email_statsThống kê gửi emailB
Read-onlyIdempotent

Lấy tổng số gửi, tỷ lệ thành công, P95 và nhóm lỗi trong khoảng ngày. / Get email delivery totals, success rate, P95 latency and error groups.

ParametersJSON Schema
NameRequiredDescriptionDefault
to_dateNo
from_dateNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds the metric payload, which is genuinely useful given there is no output schema, but it says nothing about date-range defaults, timezone, or what happens when the range is omitted even though both params are optional.

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?

A single front-loaded sentence that leads with the verb and metric list. The bilingual duplication roughly doubles the length, but that appears to be a deliberate convention for this server rather than padding.

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?

Listing returned metrics partially compensates for the absent output schema, but with zero parameter documentation, optional-but-unexplained date bounds, and no sibling routing guidance, an agent still lacks what it needs to call this confidently versus the log-level tools.

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

Parameters2/5

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

Schema coverage is 0% and the two date parameters have no descriptions, only regex patterns. The description mentions 'a date range' but does not name from_date/to_date, give the YYYY-MM-DD format, or note that both are optional — so it does not compensate for the coverage gap.

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 gives a specific verb ('Get') and resource (email delivery stats) and enumerates the exact metrics returned: totals, success rate, P95 latency, error groups. It is clearly distinguishable from monapay_email_logs (raw logs) though it never names that sibling.

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?

It states a scope ('within a date range') but offers no when-to-use guidance, no distinction from monapay_email_logs or mail_stats, and no prerequisites. The agent must infer that this is the aggregate view rather than the per-event view.

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

monapay_generate_keyTạo API key (client_secret)B

Sinh client_secret mới (hiện 1 lần) để dùng header X-Client-Secret. / Generate a client secret.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNomcp

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already cover safety and idempotency, but the description adds the important behavioral fact that the secret is displayed only once ('hiện 1 lần'). It does not state whether existing secrets remain valid or are invalidated, but the show-once detail is valuable beyond the annotations.

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 purpose is front-loaded and the description is short. The bilingual repetition is somewhat redundant and the English half omits the important 'shown once' and header details.

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 one-parameter tool with annotations and no output schema, the description covers purpose, the show-once behavior, and the header use. It still leaves the parameter unexplained and does not clarify how this differs from rotating an existing key.

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

Parameters2/5

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

Schema description coverage is 0% and the description never mentions the single 'name' parameter or its default. The description does not compensate for the missing schema semantics, though the parameter is optional and has a default.

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 ('Sinh/Generate') and resource ('client_secret'), and adds that it is new and shown once. It does not differentiate from the sibling monapay_rotate_key, so sibling routing is left to inference.

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?

It says the resulting secret is used with the X-Client-Secret header, but gives no when-to-use guidance, prerequisites, or comparison to monapay_rotate_key. The implied usage is tautological (generate a secret when you need a secret).

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

monapay_generate_webhook_snippetCode mẫu nhận webhookA
Read-onlyIdempotent

Trả code mẫu endpoint nhận webhook MONA Pay + verify HMAC đúng chuẩn cho PHP / Node / Python, kèm payload mẫu. / Get a webhook receiver snippet.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered. The description adds useful content context (the snippet includes correct HMAC verification and a sample payload), but says nothing about output format structure, SDK/library dependencies, or whether snippets are parameterizable.

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?

Two short front-loaded sentences; the core deliverable and supported languages appear immediately. The bilingual duplication adds redundancy but no bloat or buried detail.

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 read-only code-generation tool with a single enum parameter and no output schema, the description adequately tells the agent what it will receive (receiver snippet + HMAC verification + sample payload). Only minor gaps remain around output shape and language-specific caveats.

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?

One parameter (language) with schema description coverage 0%, but the enum itself enumerates php/node/python, and the description merely repeats those same values. It confirms rather than expands parameter meaning, so it does not compensate for the coverage gap beyond what the schema already conveys.

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?

States a specific verb and deliverable: return a webhook receiver endpoint snippet for MONA Pay with standards-correct HMAC verification, for PHP/Node/Python, plus sample payload. This is clearly distinguishable from siblings like monapay_create_webhook (configuration), monapay_test_webhook (delivery test), and monapay_verify_signature (runtime verification).

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 is implied by the generative nature of the tool (an agent wanting sample receiver code will pick it), but the description never states when to use it versus monapay_verify_signature or monapay_create_webhook, and gives no prerequisites or exclusions. Implied usage only.

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

monapay_get_checkoutLấy một phiên thanh toánA
Read-onlyIdempotent

Lấy trạng thái và chi tiết checkout theo ID; nên kiểm tra server-side trước khi giao hàng. / Get a checkout by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
checkout_idYesID phiên thanh toán

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate read-only, idempotent, non-destructive, and open-world behavior, so the description doesn't need to cover those. It adds that the tool should be used for server-side verification before delivery, but it doesn't disclose anything about return format, error handling, or potential side effects.

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 very short and front-loaded with the main purpose. The inclusion of a usage recommendation is efficient, though the bilingual formatting with a slash is slightly disjointed.

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?

Given that annotations cover safety and idempotency, and the schema is fully documented, the description is mostly complete for a simple retrieval tool. However, it lacks any mention of what the checkout object contains or how to interpret statuses, which could be helpful without an output schema.

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 fully describes the single parameter (checkout_id) with a description and minLength, so the baseline is 3. The tool description adds no additional parameter details beyond what is in 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 (lấy/get) and resource (checkout session), and explicitly says it retrieves status and details by ID. It clearly distinguishes itself from siblings like monapay_create_checkout and monapay_list_checkouts by being a single-resource retrieval.

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 advises server-side verification before delivery, which gives some usage context, but it does not explain when to use this tool versus alternatives like monapay_list_checkouts or how to handle missing checkouts. No explicit when-not-to-use guidance is provided.

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

monapay_get_payment_profileLấy hồ sơ trang thanh toánB
Read-onlyIdempotent

Lấy tên shop, nhận diện và tài khoản mặc định dùng cho trang thanh toán. / Get the hosted-checkout payment profile.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint, destructiveHint false). The description adds that it returns shop name, identification, and default account, which is useful return content but does not provide deeper behavioral context like auth requirements or rate limits.

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 two short sentences (bilingual), front-loading the more detailed Vietnamese version. The English sentence is somewhat redundant but overall the structure is concise and front-loaded.

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 read tool with no parameters and full annotation coverage, the description provides enough context about what is returned (shop name, identification, default account). However, it lacks details on possible auth needs or output format beyond field names.

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 takes zero parameters, so the baseline is 4 per the rubric. The description does not need to compensate for parameter documentation.

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-resource pair: it retrieves the shop name, identification, and default account for the hosted-checkout payment profile. It is clear but does not explicitly differentiate itself from sibling tools like monapay_set_payment_profile.

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?

No guidance on when to use this tool versus alternatives is provided. It does not mention prerequisites, when not to use it, or point to related tools such as monapay_set_payment_profile.

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

monapay_list_bank_accountsDanh sách tài khoản ngân hàng đã nốiB
Read-onlyIdempotent

Liệt kê tài khoản ngân hàng (ACB…) đã nối vào MONA Pay. / List linked bank accounts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint, so the safety profile is fully covered by structured data. The description adds only that the accounts are already linked (versus pending) and an example issuer ('ACB'), which is modest extra context but not rich behavioral disclosure.

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?

Very short and front-loaded, with the Vietnamese line carrying the actual content and the English line a faithful translation. The bilingual duplication is functional rather than wasteful, though it does add length without new 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?

For a zero-parameter read-only list tool the description is close to adequate, but with no output schema it does not explain the shape or fields of the returned account list. The 'ACB…' example hints at the content without describing it.

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 takes zero parameters, so the baseline of 4 applies. There are no parameters whose semantics need explaining, and the description correctly implies an unfiltered listing.

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 gives a specific verb ('Liệt kê'/'List') and resource ('tài khoản ngân hàng'/'bank accounts') plus scoping ('đã nối vào MONA Pay'). It implies but does not explicitly name the sibling distinction from monapay_list_virtual_accounts, so it stays a 4 rather than a 5.

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 statement of when to use this tool versus alternatives such as monapay_list_virtual_accounts or the monapay_link_bank_start flow. The agent must infer usage context entirely from the tool name.

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

monapay_list_checkoutsDanh sách phiên thanh toánB
Read-onlyIdempotent

Liệt kê checkout theo trạng thái, mã đơn, khoảng ngày và phân trang. / List and filter hosted checkouts.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
statusNo
to_dateNo
from_dateNo
order_codeNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds the filterable dimensions but discloses nothing further about pagination defaults, result size, or ordering. It adds some context but no real behavioral depth.

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?

Two short sentences, front-loaded with the action, no filler. The Chinese/Vietnamese + English duplication is slightly redundant but acceptable for a bilingual tool and does not obscure meaning.

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?

With 6 optional parameters, no output schema, and annotations covering safety, the description is adequate but thin: it omits date format, status enum semantics, pagination behavior, and default ordering. Enough to attempt a call, not enough to call it confidently.

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 0%, so the description carries the burden and does name every filter axis (status, order code, date range, pagination), which maps to all 6 parameters. However it adds no semantics such as date format (YYYY-MM-DD), status enum values, or pagination defaults, so it only partially compensates.

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?

States a specific verb (list) and resource (hosted checkouts) and enumerates the filter dimensions (status, order code, date range, pagination). It is clear what the tool does, but it never names or contrasts itself with the closest siblings such as monapay_get_checkout (singular) or monapay_list_transactions.

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 is only implied through the listed filter criteria; there is no explicit when-to-use, when-not-to-use, or alternative routing (e.g. use this instead of get_checkout when you lack an ID). An agent must infer the appropriate scenario.

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

monapay_list_email_configsDanh sách cấu hình emailB
Read-onlyIdempotent

Liệt kê các cấu hình gửi thông báo email và trạng thái xác minh người nhận. / List email notification configs and recipient verification status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds the useful detail that recipient verification status is included in the result, but says nothing about ordering, pagination, or completeness of the list.

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?

Two short, front-loaded sentences that convey the resource and the returned data. The bilingual duplication is redundant but compact and does not bury the primary claim.

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, read-only list tool with no output schema, stating what the list contains is arguably sufficient. Missing only list-size, ordering, and pagination expectations, which are minor here.

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?

Zero parameters, so there is no semantic gap for the schema to fill and baseline 4 applies. The description correctly implies a no-argument, full-list call.

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?

States a specific verb+resource ('List email notification configs') and adds the returned scope ('recipient verification status'). It is clearly differentiable from siblings like monapay_list_email_suppressions or monapay_email_logs, though it does not name them explicitly.

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?

No when-to-use, prerequisites, or alternative guidance is given. The agent cannot tell from the description whether to prefer this over monapay_email_stats or monapay_email_logs for inspecting email configuration.

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

monapay_list_email_suppressionsDanh sách email bị chặn gửiA
Read-onlyIdempotent

Liệt kê địa chỉ bị suppression do bounce, khiếu nại hoặc tắt tay. / List suppressed recipient addresses.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered structurally. The description adds the useful detail that entries stem from bounce, complaint, or manual suppression, but says nothing about ordering, pagination, or volume of results.

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?

Two short, front-loaded sentences with the bilingual duplication being a deliberate pattern rather than padding. No wasted clauses.

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 no-parameter, no-output-schema listing tool the description covers the essentials, but with no output schema and no mention of pagination or result size, an agent cannot anticipate the shape or volume of the response.

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 takes zero parameters, so the baseline is 4. There is nothing for the description to disambiguate, though it also does not note whether the full list is always returned unpaged.

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?

Specific verb + resource ('Liệt kê / List suppressed recipient addresses') and it enumerates the suppression causes (bounce, complaint, manual opt-out), so the agent knows exactly what data is returned. It doesn't explicitly name the sibling monapay_remove_email_suppression, so it falls short of a 5.

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 is implied by the read-only listing nature, but there is no statement of when to call this versus monapay_remove_email_suppression or the email-config/stats siblings, and no prerequisites. Adequate but leaves routing to inference.

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

monapay_list_transactionsTra giao dịch tiền vàoA
Read-onlyIdempotent

Liệt kê giao dịch tiền vào theo tài khoản ảo, phân trang tối đa 100/trang; dùng để đối soát. / List incoming transactions.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
virtual_account_numberYesSố tài khoản ảo (bắt buộc; lấy từ monapay_list_virtual_accounts)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds the pagination cap ('tối đa 100/trang'), which is useful behavioral context, but says nothing about return shape or ordering.

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?

A short two-clause sentence with the resource and scope front-loaded; the bilingual duplication is slightly redundant but harmless. Every clause carries information.

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 read-only list tool with full safety annotations and no output schema, the description covers resource, scope, and pagination. The only gap is the absence of any detail on what a transaction record contains, which is minor given there is no output schema to anchor it.

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 only 33% (only virtual_account_number is documented, pointing to monapay_list_virtual_accounts). The description reinforces the limit ceiling ('tối đa 100/trang') but leaves 'page' semantics and ordering unexplained, so it only partially compensates for the low 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 states a specific verb+resource: 'Liệt kê giao dịch tiền vào' (list incoming transactions) scoped 'theo tài khoản ảo' (by virtual account). This clearly separates it from sibling list tools like monapay_list_checkouts or monapay_list_virtual_accounts, though it never names an alternative to distinguish against.

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?

'dùng để đối soát' (used for reconciliation) implies the intended use case, which is genuine context. However, it gives no when-not conditions, no prerequisites, and no explicit alternatives among the many monapay list siblings.

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

monapay_list_virtual_accountsDanh sách tài khoản ảo (VA)C
Read-onlyIdempotent

Liệt kê tài khoản ảo thuộc một tài khoản ngân hàng. / List virtual accounts of a bank account.

ParametersJSON Schema
NameRequiredDescriptionDefault
bank_account_idYesUUID tài khoản ngân hàng (lấy từ monapay_list_bank_accounts)

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=true, so the safety profile is fully covered. The description adds no behavioral context of its own — nothing about pagination, ordering, whether results can be empty, or the openWorldHint implications — so it earns little beyond the structured metadata.

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?

Extremely brief and front-loaded, with the purpose stated immediately. The bilingual duplication is slightly redundant but standard for this catalog and costs nothing in clarity.

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 read-only list tool with full schema coverage and annotations, the definition is minimally sufficient. With no output schema, it could usefully say what each virtual account contains or how results are ordered, but nothing essential to correct invocation is missing.

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 the single parameter's UUID semantics plus its source tool are documented in the schema itself. The description adds no parameter meaning, so the baseline 3 is appropriate.

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?

States a specific verb ('Liệt kê' / 'List') and resource ('tài khoản ảo' / 'virtual accounts') scoped to a bank account, so an agent knows exactly what it returns. It does not explicitly distinguish itself from any sibling, but no sibling covers virtual-account listing, so differentiation is implicit.

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 when-to-use guidance, no prerequisites beyond the implicit need for a bank_account_id, and names no alternatives. An agent must infer that this is the retrieval step after monapay_list_bank_accounts.

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

monapay_list_webhooksDanh sách cấu hình webhookB
Read-onlyIdempotent

Liệt kê webhook đã cấu hình. / List webhook configs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that – no note on pagination, whether all configs or a subset are returned, or any auth/scope requirement – so it earns no credit above the annotation baseline.

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?

Two short sentences, front-loaded with the action, with essentially no filler. The bilingual rendering duplicates the same statement but costs almost nothing in length.

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 zero-parameter read-only list tool with no output schema, the description is minimally adequate: it says what is listed but not the shape or scope of the result (all configs? filtered? paginated?). An agent could call it correctly, but the definition is thin rather than complete.

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 takes zero parameters, so there is nothing for the description to clarify; the baseline of 4 applies. The schema coverage is listed as 100% but the object is empty, confirming no parameter-level detail is needed.

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 ('Liệt kê'/'List') and resource ('webhook đã cấu hình'/'webhook configs'), so an agent can tell it retrieves webhook configurations. It does not, however, explicitly differentiate itself from close siblings such as monapay_webhook_logs or monapay_webhook_stats, leaving that disambiguation to the tool name.

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 on when to use this tool versus the many webhook siblings (create, update, delete, test, logs, stats, generate_webhook_snippet). The description only states what it does, not the context or conditions that select it over alternatives.

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

monapay_list_zalo_groupsDanh sách nhóm ZaloA
Read-onlyIdempotent

Liệt kê cấu hình thông báo nhóm Zalo; nhóm phải có bot Gấu Mona.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds one useful behavioral fact beyond annotations: results are silently filtered to groups that have the Mona Bear bot installed, meaning the list can be unexpectedly empty. No pagination or ordering behavior is disclosed.

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?

A single front-loaded clause naming the action and resource, followed by the key constraint — no padding or redundancy. It is efficient, though it borders on under-specified rather than maximally informative.

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 read-only list tool with no output schema, the description supplies the essential scope and the bot-installation constraint that explains why results may be sparse. It stops short of describing the returned configuration fields, which is the only remaining gap.

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 takes no parameters (empty object schema, 100% trivial coverage), so the baseline of 4 applies and there is nothing further the description could clarify here.

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?

States a specific verb ('Liệt kê' = list) and a precise resource ('cấu hình thông báo nhóm Zalo' = Zalo group notification configurations). This clearly separates it from create/update/delete/test/logs siblings, though it doesn't name any sibling explicitly.

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 clause 'nhóm phải có bot Gấu Mona' implies a precondition that shapes when results exist, but there is no explicit when-to-use guidance or routing to alternatives like monapay_zalo_group_logs for auditing or monapay_create_zalo_group for adding groups.

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

monapay_meHồ sơ tài khoản MONA PayB
Read-onlyIdempotent

Lấy thông tin tài khoản MONA Pay đang đăng nhập (id, tên, trạng thái). / Get current MONA Pay client profile.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description contributes only a light addition by naming the returned fields; there is no note on auth assumptions or behavior when unauthenticated, which would have earned more.

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?

Two short sentences with the resource stated first; nothing extraneous. The Vietnamese and English lines convey the same content rather than adding new information, but for a bilingual API this is efficient and front-loaded.

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-argument read tool with no output schema, naming the returned fields is genuinely useful and the annotations carry the safety profile. The only missing piece is differentiation from 'monapay_whoami', which keeps it short of full completeness.

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 takes zero parameters, which is the baseline-4 case. The description's field list ('id, name, status') describes outputs rather than inputs, but with no parameters there are no input semantics left to explain.

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?

Specific verb and resource: it fetches the currently authenticated MONA Pay account and even enumerates returned fields (id, name, status). However, it does nothing to distinguish itself from the very similar sibling 'monapay_whoami', which appears to serve the same 'get my account' purpose.

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 explicit when-to-use statement, no prerequisites, and no mention of alternatives. Given that 'monapay_whoami' sits in the same toolset with a nearly identical apparent purpose, the absence of any routing guidance is a real gap rather than a harmless omission.

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

monapay_notification_registerĐăng ký thông báo tiền vào và gửi OTP lần 2A

Bước 3/4: đăng ký nhận thông báo giao dịch tức thì. OTP lần 2 do ngân hàng gửi về điện thoại của người dùng; agent phải HỎI người dùng rồi mới gọi tool xác thực, không được tự đoán. / Step 3/4: register real-time transaction notifications. The second OTP is sent by the bank to the user’s phone; the agent MUST ASK the user before verification and must never guess it.

ParametersJSON Schema
NameRequiredDescriptionDefault
virtual_account_idYesID VA trả về từ monapay_link_bank_verify_otp

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already disclose that this is not read-only, is open-world, and is not idempotent. The description adds an important user-consent instruction for the OTP step, but it does not explain side effects, permissions, or output behavior for this registration call itself.

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 front-loaded with the step number and core action, and it is short. The bilingual duplication is slightly redundant but not bloated.

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 registration tool with annotations covering safety hints, the description covers purpose, sequence, and a key user-interaction rule. It could be clearer about whether this call itself triggers OTP delivery or only registration, but it is largely 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% and the single parameter is documented as the VA ID returned by monapay_link_bank_verify_otp. The description adds no parameter-level detail beyond the schema, so the baseline 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?

States a specific action and scope: step 3/4 registers real-time transaction notifications. It also refers to a verification step, which helps distinguish it from the OTP verification sibling, though it does not name that sibling explicitly.

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?

Gives clear sequencing context ('Step 3/4') and a critical procedural rule: the agent must ask the user before verification and never guess the OTP. It does not name alternatives or exclusions explicitly, but the workflow position is clear.

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

monapay_notification_verify_otpXác thực OTP lần 2 và hoàn tất nhận tiềnA

Bước 4/4: OTP do ngân hàng gửi về điện thoại của người dùng, agent phải HỎI người dùng rồi mới gọi tool này; tuyệt đối không tự đoán OTP. / Step 4/4: the OTP is sent by the bank to the user’s phone; the agent MUST ASK the user before calling this tool and must never guess the OTP.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesOTP lần 2 do người dùng cung cấp sau khi nhận từ ACB
acb_request_idYesID yêu cầu ACB trả về từ monapay_notification_register

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare the safety profile (readOnly=false, idempotent=false, destructive=false, openWorld=true), so the bar is lower. The description adds genuinely non-annotated behavior: it is the final step, the OTP originates from the user's phone, and the agent must solicit it rather than fabricate it. It does not disclose what happens on an invalid OTP (lockouts, retry limits) or the exact side effect of completion.

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 "Step 4/4" framing and the MUST ASK imperative are front-loaded and every sentence is on-message. The content is duplicated verbatim in Vietnamese and English, which doubles the length without adding information, but neither version is padded.

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 mutating step with full schema coverage, annotations covering safety, and no output schema, the description supplies the crucial operational knowledge (obtain OTP from the user, never guess). The remaining gap is the outcome/error behavior, which is a minor omission rather than an agent-blocking one.

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 (code, acb_request_id) are already well documented in the schema with pattern and length constraints and cross-references. The description adds no syntax or format detail beyond the schema, so it sits at the baseline where the schema does the heavy lifting.

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 anchors the tool as "Step 4/4" of the notification/registration flow and states the OTP comes from the bank to the user's phone, which is a clear purpose statement given the name and title. It does not, however, distinguish this from the sibling monapay_link_bank_verify_otp, another OTP-verification tool, so an agent must rely on the name and the acb_request_id linkage to tell them apart.

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 an explicit precondition for calling: the agent MUST ASK the user for the OTP and must never guess it. That is clear usage guidance for the critical case. It stops short of naming alternatives or saying when NOT to use it (e.g. wrong-flow OTPs), so it is strong context without exclusions.

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

monapay_remove_email_suppressionGỡ chặn gửi tới một emailB
DestructiveIdempotent

Gỡ suppression sau khi đã sửa nguyên nhân; client tự chịu trách nhiệm khi gửi lại. / Remove a suppression after fixing its cause; the client accepts responsibility for future sends.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the bar is lower. The description adds one genuinely useful behavioral fact beyond them — that the client assumes responsibility for future sends once the block is lifted — but says nothing about what exactly is destroyed, who may call it, or whether the removal is logged/reversible.

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?

Very short and front-loaded — the action and its precondition come first, the responsibility warning second. The bilingual duplication adds mild redundancy but no real bloat.

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 destructive, open-world mutation with no output schema and no annotations covering permissions, the description covers the precondition and the risk warning but omits auth requirements, scope of effect, and what the caller gets back. Adequate but with clear gaps.

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 0%, so the description carries the burden here and adds nothing about the single 'email' parameter. Mitigating factor: the parameter name plus format=email and the constrained pattern make its meaning self-evident, so the gap is minor rather than severe.

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 names a specific verb and resource ('Gỡ / Remove a suppression'), so an agent immediately knows this deletes an email suppression entry. It does not, however, explicitly differentiate itself from the near-identical sibling mail_suppression_remove or from the list counterpart monapay_list_email_suppressions.

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 phrase 'after fixing its cause' gives an implied precondition for when removal is appropriate, which is real guidance. But there is no statement of when *not* to use it, no mention of the alternative removal tool, and no prerequisites such as required permissions.

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

monapay_resend_email_verificationGửi lại mã xác minh emailA

Gửi mã xác minh mới tới một địa chỉ trong cấu hình; giới hạn 5 lần/địa chỉ/giờ. / Resend a verification code, limited to five requests per address per hour.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes
config_idYesUUID cấu hình email

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and idempotentHint=false, so the burden is lower. The description adds genuinely new behavioral context not present in structured fields: a hard rate limit of five requests per address per hour, plus the fact that the code is newly generated ('mới'/'new'), implying prior codes may be superseded.

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?

Front-loaded purpose followed by the rate limit; every clause carries information. The Vietnamese/English duplication roughly doubles the length for the same content, which is a mild conciseness cost but keeps it self-contained.

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 two-parameter, no-output-schema tool with annotations covering the safety profile, purpose and rate limit are the essentials and both are present. Still missing: whether the previous code is invalidated, what the caller should do on hitting the limit, and how errors are surfaced.

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 50% (config_id documented as a UUID, email only constrained by format/pattern). The phrase 'một địa chỉ trong cấu hình' ties the email argument to the config, which is useful relational context beyond the schema. However, it doesn't clarify whether the address must already exist in the config or whether an unknown address will error.

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?

States a specific verb+resource ('Gửi mã xác minh mới' / 'Resend a verification code') and scopes it to an address within a config. It is clearly distinguishable from siblings like monapay_verify_email or monapay_test_email by name and verb, though it never names or contrasts those alternatives.

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 is implied rather than stated: an agent can infer this is for re-requesting a code that was not received. There is no explicit guidance on when to prefer this over monapay_verify_email or monapay_test_email, and no exclusions or prerequisites.

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

monapay_retry_transactionGửi lại thông báo của một giao dịchC

Gửi lại webhook hoặc Telegram cho giao dịch đã có. / Re-send webhook/Telegram for a transaction.

ParametersJSON Schema
NameRequiredDescriptionDefault
target_idNo
target_typeNoWEBHOOK
transaction_idYes

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and idempotentHint=false, signalling a non-idempotent write-side action. The description adds that a webhook or Telegram message is re-sent, which is useful context, but it says nothing about duplicate delivery, rate limits, or whether the underlying transaction is re-processed. With annotations covering the safety profile, a 3 is appropriate.

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?

Two short sentences with the key action front-loaded. The Vietnamese and English lines are exact duplicates, which is mildly redundant, but the overall text is compact and wastes little space.

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?

For a non-idempotent action tool with 3 parameters, 0% schema coverage and no output schema, the description leaves too much unstated: what target_id refers to, expected delivery outcome, and how it differs from webhook test/log tools. An agent could call it but with little confidence about effects.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only maps loosely to target_type by naming 'webhook hoặc Telegram'. The required transaction_id and the target_id parameter are left unexplained, so the description does not compensate for the coverage gap.

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

Purpose3/5

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

The description states a verb and resource ('re-send webhook or Telegram for a transaction') and implies an existing transaction. However, the tool name 'retry_transaction' suggests reprocessing a payment, while the description only says the notification is re-sent, leaving a semantic tension an agent must resolve. No sibling differentiation is provided.

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?

It scopes usage to 'giao dịch đã có' (an existing transaction) but gives no when-to-use versus alternatives. Adjacent tools such as monapay_test_webhook, monapay_webhook_logs and monapay_list_transactions are never referenced, so an agent has no routing guidance.

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

monapay_rotate_keyXoay secret API key hiện tạiA
Destructive

Dùng khi secret nghi lộ; xoay key hiện tại bằng X-Client-Secret. Sau khi xoay phải cập nhật MONAPAY_CLIENT_SECRET ở plugin/agent rồi khởi động lại. / Rotate the current API key secret after suspected exposure, then update MONAPAY_CLIENT_SECRET.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

The annotations already declare destructive=true, non-idempotent and openWorld, so the safety bar is lower, yet the description adds genuinely useful operational context: rotation is authenticated via the X-Client-Secret header and must be followed by updating MONAPAY_CLIENT_SECRET and restarting. It does not spell out what happens to the old key or on partial failure.

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?

Front-loaded with the trigger condition, and only two sentences are used. The bilingual duplication roughly doubles the text for identical meaning, which is a minor cost rather than bloat.

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?

Covers trigger, credential and required follow-up, which is most of what an agent needs. However, with no output schema present, the description should say whether the response returns the new secret value — for a rotate operation that is a meaningful omission.

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?

Zero parameters, so the baseline is 4. The description adds a little value by noting the X-Client-Secret header is the implicit credential used for the call, which the empty schema does not convey.

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?

States a specific verb and resource ('rotate the current API key secret'), and the word 'current' implicitly distinguishes it from a fresh-key sibling like monapay_generate_key. Clear enough that an agent knows what it does without opening anything else, though it never names the sibling explicitly.

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?

Gives a concrete triggering condition ('use when the secret is suspected leaked'), which is more than most definitions offer. It does not state when NOT to use it or point to an alternative for non-exposure cases, so it stops short of full routing guidance.

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

monapay_sandbox_transactionTạo giao dịch thử (sandbox, không tốn tiền)A

Tạo một giao dịch tiền vào GIẢ: chưa nối ngân hàng thì MONA Pay tự cấp VA sandbox SBX; MONA Pay ghi giao dịch, bắn webhook có chữ ký, gửi Telegram/email/Zalo, khớp checkout như tiền thật, không tính hạn mức. / Create a fake incoming transaction in the sandbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountNo
descriptionNoNội dung chuyển khoản giả; ghi order_code của phiên checkout để phiên đó paidDH10234 test sandbox
virtual_account_numberNoSố VA đã nối; bỏ trống = MONA Pay tự cấp VA sandbox SBX (không cần nối ngân hàng)

TDQS

A4.1/5.0
Behavior5/5

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

With annotations only covering the generic safety profile (write, non-idempotent, open-world), the description discloses the real side effects: auto-provisioning a sandbox VA, recording the transaction, firing a signed webhook, sending Telegram/email/Zalo notifications, and matching checkout sessions as paid. It also states the quota behaviour ('không tính hạn mức'), which no annotation conveys.

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?

Front-loaded with the sandbox nature, then the behaviour chain, then a compact English gloss. Dense but nearly every clause carries information; only the 'GIẢ/fake sandbox' idea is mildly repeated across both languages.

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 mutation tool with no output schema, the description covers preconditions, side effects and quota behaviour well. It stops short of describing what is returned (e.g. transaction id or VA number), which would help an agent chain a follow-up call.

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 67% and the schema already explains the 'description' order_code trick and the blank virtual_account_number auto-VA behaviour. The description largely restates those semantics ('bỏ trống = tự cấp VA sandbox SBX') without adding format or constraint detail, so the 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?

States a specific verb and resource (tạo giao dịch tiền vào) plus the critical scope qualifier (GIẢ / sandbox), and immediately clarifies it is the fake-money path that behaves like the real one. This lets an agent separate it from real transaction/checkout siblings without opening a schema.

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?

It gives a usable precondition ('chưa nối ngân hàng thì MONA Pay tự cấp VA sandbox SBX') and implies the testing context, but never explicitly says when to pick this over monapay_create_checkout or monapay_list_transactions, and names no alternative. Usage is inferable rather than stated.

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

monapay_set_payment_profileThiết lập hồ sơ trang thanh toánB
Idempotent

Tạo hoặc cập nhật tên shop, nhận diện và tài khoản nhận tiền mặc định trước khi tạo checkout. Secret ký redirect chỉ được API trả một lần. / Create or update the hosted-checkout payment profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNo
hotlineNo
logo_urlNoURL HTTPS của logo, tối đa 512 KB
va_prefixNo
owner_typeNo
merchant_idNo
terminal_idNo
accent_colorNo
display_nameNo
owner_numberNo
support_emailNo
show_mona_badgeNo
beneficiary_nameNo
default_bank_account_idNo
default_virtual_account_idNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnly=false, idempotent=true, openWorld=true and destructive=false. The description adds meaningful context beyond that: the redirect signing secret is returned only once, a one-time-value warning an agent cannot derive from the schema or annotations. It stops short of describing permissions or response behavior, but the secret disclosure is a real contribution.

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 purpose is front-loaded in the first clause and the content is compact. The bilingual Vietnamese/English duplication doubles the surface length, but each half is tight and no sentence is filler.

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?

This is a high-complexity mutation tool with 15 largely undocumented parameters and no output schema, so the description carries a heavy burden. It conveys purpose, the one-time secret, and a handful of field concepts, but omits the bulk of parameter meaning, auth/permission requirements, and any return expectations.

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

Parameters2/5

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

With 15 parameters and only 7% schema description coverage, the description must carry the semantic load, and it does so only partially. It conceptually names shop name, identity, and default receiving account, but leaves the majority of the 15 parameters (locale, hotline, va_prefix, terminal_id, accent_color, show_mona_badge, etc.) with no explanation anywhere.

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 gives a specific verb (create/update) and resource (hosted-checkout payment profile), plus enumerates the conceptual fields it manages: shop name, identity, and default receiving account. This distinguishes it from the read-only sibling monapay_get_payment_profile implicitly via the create/update verb, though that sibling is never named explicitly.

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 phrase 'trước khi tạo checkout' (before creating checkout) supplies a genuine when-to-use context, sequencing this call ahead of monapay_create_checkout. However, no alternatives, exclusions, or prerequisites (e.g. how this relates to get_payment_profile) are stated, leaving usage largely implied.

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

monapay_test_emailGửi thử thông báo emailB

Gửi email mẫu tới các địa chỉ đã xác minh trong cấu hình. / Send a test notification to verified recipients in a config.

ParametersJSON Schema
NameRequiredDescriptionDefault
config_idYesUUID cấu hình email

TDQS

B3.3/5.0
Behavior3/5

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

The annotations indicate this is not a read-only operation (readOnlyHint: false) and is not idempotent (idempotentHint: false), which the description aligns with by saying 'Send'. It also clarifies that the email goes only to 'verified recipients' and is a test message, adding useful context. However, it does not disclose potential side effects like rate limits or what happens if the config is invalid.

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 efficiently conveys the action and scope. Every part of the sentence 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 tool with one parameter, no output schema, and annotations covering safety profile, the description is adequate but incomplete. It lacks details on error handling, recipient verification status implications, or comparison with similar testing tools, which would help an agent use it correctly in 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?

The schema fully documents the single parameter 'config_id' with a UUID description, so the baseline is 3. The description does not add any further meaning about this parameter, but it also does not need to since the schema coverage is 100%.

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 a specific verb ('Send a test notification') and resource ('email'/'verified recipients'), making the action understandable. However, it does not explicitly differentiate itself from its likely sibling tool (monapay_test_zalo_group) or clarify its relation to other email config 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 provides no guidance on when or why to use this tool versus alternatives like monapay_test_zalo_group or mail_webhook_test. There is no mention of prerequisites or contexts for usage, leaving the agent to infer.

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

monapay_test_webhookBắn webhook thửB

MONA Pay gửi một giao dịch giả (is_dummy) tới URL để kiểm tra endpoint + chữ ký. / Send a dummy webhook.

ParametersJSON Schema
NameRequiredDescriptionDefault
auth_typeNo
secret_keyNo
webhook_urlNoBỏ trống = dùng config đã lưu

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true and idempotentHint=false. The description adds one genuinely useful behavioral fact beyond them — that the payload is a dummy/is_dummy transaction, so no real money moves — and that signature verification is part of the flow. It says nothing about auth requirements (auth_type/secret_key usage), rate limits, or whether the send is logged.

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?

Very short and front-loaded: the action and its purpose come first with zero filler. The bilingual duplication doubles the text without adding information, which is the only mild inefficiency.

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 low-complexity test-send tool with annotations covering the safety profile, the description conveys what happens but omits what the caller gets back — relevant since there is no output schema — and leaves the parameter set under-explained. Adequate but with clear gaps.

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

Parameters2/5

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

Schema description coverage is only 33%: webhook_url carries 'Bỏ trống = dùng config đã lưu' while auth_type and secret_key are undocumented. The description only gestures at 'URL' and 'chữ ký' (signature), adding essentially no syntax, format, or interaction detail to compensate for the coverage gap.

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?

States a specific verb and resource — sends a dummy webhook (giao dịch giả, is_dummy) to a URL — plus its purpose: testing the endpoint and signature. This functionally separates it from siblings like monapay_create_webhook and monapay_verify_signature, though it never names or explicitly contrasts with them.

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 stated purpose ('để kiểm tra endpoint + chữ ký' / to test the endpoint and signature) implies when the tool is used, but there is no explicit when/when-not guidance and no named alternative (e.g., monapay_verify_signature or monapay_webhook_logs). Usage is only implied.

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

monapay_test_zalo_groupGửi thử vào nhóm ZaloB

Gửi tin thử text thuần; nhóm phải có bot Gấu Mona vì Zalo không parse Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID cấu hình nhóm Zalo do MONA Pay trả về (UUIDv6)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, telling the agent this is a mutating but non-destructive call; the description adds useful behavior (the message is plain text, Markdown is not rendered, and the bot must be present). It does not state rate limits, whether it creates a visible conversation record, or what is returned on success/failure.

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?

Two short clauses with zero filler; the plain-text constraint and the bot prerequisite are front-loaded. Slightly telegraphic but every part earns its place.

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 single-parameter mutation with no output schema, the definition covers the essentials (plain-text payload, bot prerequisite) but omits what happens on failure, whether the message is persisted, and how this test differs from other test-send tools. Adequate but with visible gaps.

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?

Only one parameter exists and schema description coverage is 100%, so the schema already explains that 'id' is the Zalo group config UUIDv6 returned by MONA Pay. The description references 'nhóm' (group) but adds no format or sourcing detail beyond the schema, so baseline 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 names a specific verb and resource — sending a plain-text test message into a Zalo group — which is distinct from siblings like monapay_create_zalo_group, monapay_update_zalo_group and monapay_zalo_group_logs. It does not explicitly state that the target is an existing group identified by config ID, so the differentiation relies on the name/title.

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?

It states a real precondition: the group must already have the Gấu Mona bot because Zalo does not parse Markdown. However, it offers no guidance on when to call this versus other test/verification tools (e.g. monapay_test_webhook, monapay_test_email) or when it should be avoided.

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

monapay_update_email_configSửa cấu hình thông báo emailA
Idempotent

Cập nhật tên, người nhận, sự kiện, VA hoặc trạng thái bật/tắt của cấu hình email. Người nhận mới phải xác minh trước khi cấu hình hoạt động. / Update an email config; new recipients must be verified before activation.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
eventsNo
config_idYesUUID cấu hình email
is_activeNo
recipientsNo
virtual_account_idNoUUID VA; null để bỏ giới hạn VA

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true, destructiveHint=false, readOnlyHint=false. The description still adds valuable context beyond the annotations: that new recipients must be verified before the config becomes active — a behavioral side-effect the schema does not convey. It does not state permission requirements or whether the config is deactivated in the meantime, so it stops short of 5.

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?

Two short sentences, field list front-loaded, and the key constraint (verification) follows. Bilingual duplication adds length without much extra meaning, but nothing is wasted or buried.

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 6-parameter mutation tool with no output schema and 33% schema coverage, the description is workable but thin — no return info, no partial-update semantics, no mention of what happens to unverified recipients or required permissions. Adequate but with clear gaps.

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 only 33%; only config_id and virtual_account_id carry inline descriptions. The description enumerates the mutable fields (name, recipients, events, VA, is_active) in prose, mapping loosely to the schema properties, which is worthwhile, but adds no format/semantic detail (e.g., what VA does). Baseline 3 fits given the low coverage gap not being fully compensated.

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?

States a specific verb (Update/Cập nhật) and resource (email config) and enumerates the mutable fields (name, recipients, events, VA, is_active). This clearly distinguishes it from siblings like monapay_create_email_config and monapay_delete_email_config.

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 is implied by the verb 'update' but there is no explicit when-to-use/when-not guidance. The recipient verification note is a prerequisite, not routing guidance. No named alternatives (e.g., use create_email_config instead if the config doesn't exist).

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

monapay_update_webhookSửa cấu hình webhookC
Idempotent

Cập nhật webhook (URL, secret, bật/tắt). / Update a webhook config.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
auth_typeNo
config_idYes
is_activeNo
secret_keyNo
webhook_urlNo
api_key_nameNo
payload_formatNo
virtual_account_idNo

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, and openWorldHint=true, covering the safety profile. The description adds that URL, secret, and enable/disable can be changed, but does not clarify partial-update semantics, required permissions, or handling of omitted fields. With annotations present, this is a modest value-add.

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

Conciseness3/5

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

The description is very short and front-loads the core action, but its brevity reflects under-specification rather than disciplined conciseness. The bilingual form is efficient, yet it leaves critical parameter and usage context unaddressed.

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?

Given a 9-parameter mutation tool with no output schema and 0% schema description coverage, the description is insufficient. It does not identify the required config_id, does not explain the auth_type enum or other fields, and provides no guidance on partial updates or return behavior.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions only three updatable concepts (webhook_url, secret_key, is_active) out of nine parameters, and omits the required config_id as well as auth_type, api_key_name, payload_format, and virtual_account_id. The compensation is too partial for a 9-parameter schema.

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: 'Update a webhook config' / 'Cập nhật webhook', and hints at updatable fields (URL, secret, enable/disable). However, it does not differentiate from sibling tools like monapay_create_webhook, monapay_delete_webhook, or monapay_test_webhook, so it stops short of a 5.

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 explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description only implies that it modifies an existing config, leaving the agent to infer that distinction from the tool name.

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

monapay_update_zalo_groupSửa nhóm ZaloB
Idempotent

Sửa cấu hình nhóm có bot Gấu Mona; group_id lấy từ MONA Account/PMS và template dùng text thuần vì Zalo không parse Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID cấu hình nhóm Zalo do MONA Pay trả về (UUIDv6)
eventsNo
group_idNogroup_id gồm 10–25 chữ số, lấy từ MONA Account/PMS
is_activeNo
friendly_nameNo
message_templateNoTemplate text thuần, không dùng Markdown
virtual_account_idNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true, destructiveHint=false, readOnlyHint=false, openWorldHint=true, giving the agent a safety profile. The description adds domain-specific context (bot Gấu Mona requirement, plain-text template restriction) beyond the annotations, but doesn't cover merge-vs-replace semantics of a partial update, which is what an agent actually needs.

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?

A single dense sentence that front-loads the action and target, then packs in two key constraints (id source, plain-text template). Efficient with no filler, though the two constraints are compressed into one clause and could be separated for scanability.

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 7-param mutation tool with 43% schema coverage, no output schema, and sibling create/delete tools, the description covers the two highest-risk details (id source, template constraint). It still omits required-field reminders, update semantics, and how to obtain the id in practice, which an agent needs before calling.

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 only 43%, so the description must compensate, and it partially does by stating where group_id comes from and that message_template must be plain text. However, other schema-undocumented parameters (events, is_active, friendly_name, virtual_account_id) get no semantic help, so coverage remains incomplete.

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?

Clear verb 'Sửa' (update) plus the specific resource 'cấu hình nhóm Zalo' with the Mona bot constraint. The sibling set contains create/delete/list/test_zalo_group, but the description doesn't explicitly name which sibling this replaces to distinguish the update scope.

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 this is for modifying an existing group config and points to the id source (MONA Account/PMS), which nudges the agent toward the correct flow. It never states when to use update vs. create_zalo_group or how to find the required id, leaving prerequisites implicit.

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

monapay_verify_emailXác minh địa chỉ nhận emailA

Xác minh một người nhận bằng đúng mã 6 số người dùng đọc từ hộp thư; phải hỏi người dùng và không tự đoán mã. / Verify a recipient with the exact 6-digit code supplied by the user; never guess it.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesMã 6 số do người dùng cung cấp
emailYesĐịa chỉ đang chờ xác minh
config_idYesUUID cấu hình email

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare non-read-only, non-idempotent, open-world, non-destructive behavior; the description adds a genuinely useful anti-hallucination constraint about sourcing the code. It does not disclose what verification actually changes, whether codes expire, or that repeat attempts may consume limited tries (consistent with idempotentHint=false).

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?

Two short, front-loaded sentences that pair the action with its constraint. The bilingual duplication mirrors the Vietnamese title and is consistent with the toolset, so it is not wasted text.

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?

There is no output schema, so the description should ideally state the outcome of successful verification, expected failure modes, and the resend alternative. The strongest element (never guess the code) is present, but the post-call picture is missing.

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 all three parameters are documented there, including the 6-digit pattern for code. The description only reiterates the origin of the code value, adding marginal semantics beyond the schema, so the baseline 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?

States a specific verb (verify) and resource (a recipient/email) and adds the essential qualifier that the 6-digit code is the one the user read from their inbox. It is distinguishable from siblings like monapay_resend_email_verification, though it does not name any sibling explicitly.

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?

Gives a clear operational rule for the critical precondition: the code must come from the user, never be guessed. It lacks routing guidance for the common adjacent case (code missing or expired -> use the resend tool), which is the main gap.

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

monapay_verify_signatureKiểm chữ ký webhook (offline)B
Read-onlyIdempotent

Tính và so chữ ký HMAC-SHA256 của một webhook MONA Pay từ raw body + timestamp + secret, không gọi mạng. / Verify a webhook signature locally.

ParametersJSON Schema
NameRequiredDescriptionDefault
secretYes
raw_bodyYes
signatureYes
timestampYes
tolerance_secNo
skip_time_checkNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive behavior, so the safety profile is covered. The description usefully adds that this is a pure local HMAC-SHA256 computation with no network call. It does not disclose the timestamp-tolerance checking that the tolerance_sec and skip_time_check parameters imply. Note a mild tension: openWorldHint=true against an explicitly offline/local operation, though this reads as a mis-tag rather than a functional contradiction.

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?

Two sentences, front-loaded with the core action and algorithm, with no filler. The bilingual format doubles length but serves its audience and stays tight.

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?

Shorter answer: with no output schema, the agent never learns what verification returns (boolean, match/mismatch string, or error) or how tolerance failures are surfaced, and 0% schema coverage leaves the two time-related parameters undefined. Those are meaningful gaps for a signature-verification tool.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the parameter burden. It names raw_body, timestamp, and secret as the computation inputs, but says nothing about signature (the value compared) and entirely omits tolerance_sec and skip_time_check, whose units, defaults, and effect are non-obvious. Half the parameters remain semantically unexplained.

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 gives a specific verb (compute/compare) and resource (HMAC-SHA256 webhook signature) plus the exact inputs used (raw body + timestamp + secret) and that it runs offline. It is far more specific than a tautology and an agent can tell what it does. It stops short of explicitly distinguishing itself from the sibling monapay_generate_webhook_snippet, so it isn't a full 5.

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 'không gọi mạng / locally' phrasing implies usage context (local verification without a callback), which is a reasonable hint. However, there is no explicit when-to-use / when-not-to-use guidance and no named alternative among the many monapay_* and webhook siblings. Usage remains implied rather than stated.

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

monapay_webhook_logsLịch sử gửi webhookC
Read-onlyIdempotent

Lịch sử từng lần gửi (HTTP code, thời gian phản hồi, nhãn lỗi). / Webhook delivery logs.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
statusNo
to_dateNo
from_dateNoYYYY-MM-DD

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds some value by listing returned fields (HTTP code, response time, error label), but omits pagination behavior, filtering semantics, and any auth requirements. With annotations doing the heavy lifting, a 3 is appropriate.

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 very short and front-loads the core concept ('history of each delivery'). The bilingual repetition (Vietnamese then English) is somewhat redundant, but the overall structure is efficient with no wasted sentences.

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?

Given 5 parameters, no output schema, and only 20% schema coverage, the description is insufficient. It mentions return fields but omits usage context, parameter meanings, pagination, and date-range behavior, leaving the agent with significant gaps for correct invocation.

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

Parameters2/5

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

Schema description coverage is only 20% (only from_date has a format hint), and the description provides zero information about the five input parameters (page, limit, status, to_date, from_date). It does not compensate for the low coverage, leaving filtering and pagination semantics undocumented.

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?

States a specific resource (webhook delivery logs) and enumerates return fields (HTTP code, response time, error label), which distinguishes it from sibling monapay_webhook_stats (aggregated stats) and monapay_list_webhooks (configuration list). No explicit sibling naming, but the scope is clear enough for an agent to differentiate.

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?

No when-to-use guidance, no exclusions, and no alternatives are mentioned. The description merely states what the tool is, leaving the agent to infer context from the name and siblings.

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

monapay_webhook_statsThống kê webhookB
Read-onlyIdempotent

Tỷ lệ thành công, P95, phân loại lỗi. / Webhook delivery stats.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds what metrics are returned, but no other behavioral traits like time range, scope, or rate limits are mentioned; with annotations present, a 3 is appropriate.

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 very short and front-loads the key metrics. The bilingual phrasing repeats the same meaning, which is slightly redundant but still efficient overall.

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?

Given the simple, parameterless nature of the tool and the presence of annotations covering safety, the description provides enough to understand what is returned. It omits time scope or default period, but that is a minor gap for a stats summary tool.

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?

There are no parameters, so the schema provides no parameter semantics. With zero parameters, the baseline is 4, and no further parameter detail is expected or needed.

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 names the resource (webhook) and the specific metrics returned (success rate, P95, error classification), making the tool's purpose clear. It distinguishes from siblings like monapay_webhook_logs or monapay_list_webhooks by being a stats summary, though it doesn't explicitly name alternatives.

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?

No guidance is given on when to use this tool versus alternatives such as monapay_webhook_logs or monapay_test_webhook. The description merely states what data is returned, leaving the agent to infer context.

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

monapay_whoamiKiểm tra kết nối MONA PayA
Read-onlyIdempotent

Xác nhận client credentials đang hoạt động, trả tên tài khoản và gói hiện tại. / Verify connection and return account name and plan.

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?

Annotations already declare that this is a read-only, idempotent, non-destructive open-world operation, so the safety profile is covered. The description adds that it validates client credentials and returns the account name and current plan, which is useful behavioral context, but it does not disclose authentication requirements beyond 'client credentials' or any rate-limit/response-shape details.

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 clauses in Vietnamese and English, front-loading the verification purpose and then the return values. Every sentence earns its place, with no redundant or padded language.

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 zero-parameter diagnostic tool with no output schema, the description is largely complete: it says what it verifies and what it returns. It could be slightly stronger by naming return fields more precisely or by noting that no input is required, but nothing critical is missing.

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 takes zero parameters, so there are no parameter semantics to explain. Per the rubric, a zero-parameter tool has a baseline of 4; the description does not need to compensate for any schema gaps.

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 action ('verify connection') and specific return values ('account name and plan'), so it is not a tautology. However, it does not differentiate this tool from related siblings such as monapay_me or cloud_whoami, so it falls short of the sibling-aware clarity that would earn a 5.

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 phrase 'Verify connection' implies the tool is used when a caller wants to check whether MONA Pay client credentials are working, but it does not explicitly state when to use this versus monapay_me or other diagnostics. No exclusions or alternative selection guidance are provided.

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

monapay_zalo_group_logsLịch sử gửi nhóm ZaloB
Read-onlyIdempotent

Tra lịch sử gửi vào nhóm Zalo, lọc trạng thái thành công hoặc thất bại.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
statusNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that this retrieves send history and supports status filtering, which is useful context beyond annotations, but it omits return format, pagination behavior, and any auth or rate-limit details.

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 concise sentence that front-loads the purpose and then states the filter capability. There is no filler or repetition, and every part of the sentence carries meaning.

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?

For a read tool with two parameters and no output schema, the description is incomplete: it does not mention the limit parameter, return format, or pagination. It covers only the main purpose and status filter, leaving an agent without enough context to call the tool optimally.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It explains the status filter (success or failure, corresponding to enum values 'ok' and 'failed') but completely omits the 'limit' parameter, leaving half the parameters undocumented in plain language.

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: 'Tra lịch sử gửi vào nhóm Zalo' (look up send history to Zalo groups), which is distinct from siblings like listing groups or testing sends. However, it does not explicitly name an alternative or clarify how it differs from other Zalo or log 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 when-to-use guidance, prerequisites, or alternatives. It only implies that the tool is for retrieving history, but does not say when to prefer it over monapay_list_zalo_groups, monapay_test_zalo_group, or other log tools.

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

vibecloud_affiliate_claimCông cụ MONA affiliate claimB

Alias tương thích của cloud_affiliate_claim. / Compatibility alias. Gắn mã giới thiệu vào tài khoản hiện tại trong thời hạn cho phép. / Claim a referral code for the current account.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false and destructiveHint=false, so the safety profile is covered structurally. The description adds the meaningful context that the code is attached to the current account and must be claimed 'within the allowed period' (thời hạn cho phép), hinting at a time-window constraint, but does not explain failure modes or what happens to an existing referral.

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

Conciseness3/5

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

The core content is short, but the bilingual repetition (Vietnamese alias line, then Vietnamese action line, then English action line) means the same information is stated two to three times. Front-loading the alias relationship is reasonable, but the redundancy costs efficiency.

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 one-parameter alias tool with annotations covering the mutation safety profile, the description is minimally adequate: it says what is claimed and by which account. It omits the code's origin/format and the outcome of a successful or failed claim, leaving some gaps an agent would want filled.

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 single 'code' parameter has 0% schema description coverage, so the schema only supplies type and length bounds (4-16). The description identifies it semantically as a referral code (mã giới thiệu) to attach, but adds no format, source, or validity detail beyond that minimal gloss.

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 gives a specific verb+resource ('Claim a referral code for the current account') and explicitly identifies itself as the compatibility alias of cloud_affiliate_claim, which is the key differentiator from its sibling. It is clear what the tool does; only the bilingual duplication dilutes it slightly.

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?

Calling it an 'alias tương thích / compatibility alias' of cloud_affiliate_claim implicitly tells the agent it is interchangeable with that tool, which is useful routing context. However, it never states when to prefer this prefixed variant over the unprefixed sibling, nor any prerequisites, so guidance is only implied.

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

vibecloud_affiliate_statsCông cụ MONA affiliate statsB
Read-onlyIdempotent

Alias tương thích của cloud_affiliate_stats. / Compatibility alias. Đọc thống kê, số dư có thể nhận và các hoa hồng gần nhất. / Read affiliate stats, payout availability and recent commissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
statusNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so safety is covered. The description adds only a light characterization of the data returned (stats, payout availability, commissions) with no extra behavioral context such as pagination, auth, or rate limits, making a 3 appropriate.

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

Conciseness3/5

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

Every meaning is stated twice (Vietnamese then English) and the alias framing is restated in both languages, which inflates length. The core content is front-loaded but the bilingual duplication wastes space.

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-required-param read tool with no output schema, the description names the main pieces of data returned and positions itself as an alias, which is largely sufficient; the undocumented parameters are the only real gap and annotations carry the safety profile.

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

Parameters2/5

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

Schema description coverage is 0% and the description mentions neither the 'limit' nor the 'status' parameter, leaving both undocumented. 'Recent commissions' only loosely implies a limit, and the status enum (pending/approved/paid/reversed/flagged) is never explained, so the description fails to compensate for the coverage gap.

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?

States a clear verb (Read / Đọc) and resource (affiliate stats), plus the specific data returned (payout availability, recent commissions). Naming it an alias of cloud_affiliate_stats usefully signals its relationship to that sibling, though it does not distinguish itself from the affiliate_claim sibling.

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 only says it is a 'compatibility alias' of cloud_affiliate_stats; it never states when to prefer this tool over cloud_affiliate_stats, cloud_affiliate_link, or cloud_affiliate_claim, nor any precondition for calling it.

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

vibecloud_agent_deployAlias cũ của cloud_agent_deployB

Alias tương thích; dùng cloud_agent_deploy cho tích hợp mới. sandbox=true: thử 0đ, không cần ví.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNosandbox=true: thử 0đ, không cần ví
templateYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false and destructiveHint=false, so the safety profile is covered. The description adds one piece of context the annotations don't: sandbox=true costs nothing and needs no wallet. Beyond that it says nothing about prerequisites or what the deploy actually changes, which is thin for a non-idempotent, open-world mutation.

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?

Two short clauses, front-loaded with the alias/routing information and the sandbox cost note. Nothing is padded, though the sandbox clause duplicates the schema description rather than adding to it.

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 low-complexity two-parameter alias with no output schema, the routing guidance plus the sandbox cost note is close to adequate. It still leaves open what template values are accepted, whether auth is required, and whether the alias behaves identically to cloud_agent_deploy — relevant for a non-idempotent write.

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

Parameters2/5

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

Schema description coverage is 50%: sandbox carries a schema description that is repeated verbatim in the tool description (no added value), while the required template parameter has no description in either place and only a regex pattern. The description does nothing to explain what a template value is or where to get one.

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 it is a backwards-compatible alias and names the canonical tool (cloud_agent_deploy), which tells an agent exactly what resource is being deployed and which sibling is the real entry point. It is slightly indirect — the deployment verb is only implied via the sibling reference rather than stated — 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?

"dùng cloud_agent_deploy cho tích hợp mới" explicitly routes new integrations to the canonical tool, implying this one is only for existing/legacy callers. That is a clear when-to-use/when-not-to-use rule, though it doesn't say whether the alias is deprecated or will eventually be removed.

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

vibecloud_app_createCông cụ MONA app createB

Alias tương thích của cloud_app_create. / Compatibility alias. App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. AI làm 99%: cloud_app_detect(local_dir) offline → cloud_app_host_list, cloud_prices/cloud_packages/cloud_plan_list và cloud_balance → cloud_app_create(local_dir, sandbox=true) nếu chưa có app host để ước tính chi phí giờ/gói → hỏi human một lần duyệt chi phí nếu chưa được duyệt → cloud_app_create(local_dir, sandbox=false) → poll tới done/succeeded → kiểm và trả URL. Cần DB/Supabase? cloud_base_create (beta) — chung account/ví MONA Cloud, khớp app deploy. Sau khi app có URL, CHỦ ĐỘNG hỏi tên miền riêng: human đã có domain → cloud_app_domain_add (CNAME); chưa có → cloud_domain_search gợi 3–5 đuôi (.vn trước nếu khách Việt) kèm giá VND, hỏi xác nhận chính tả + duyệt tiền → cloud_domain_buy (đã login) hoặc cloud_domain_reserve (chưa login: QR + claim_url) → cloud_domain_attach trỏ DNS + SSL. Human đăng ký MONA Pass bằng device flow một lần; hết credit 20k thì AI gọi cloud_topup và in QR (qr_ascii) ngay trong terminal, human chỉ quét bằng app ngân hàng; AI làm các bước còn lại. App git cloud_app_create(repo_url) đã live; không gọi agent_deploy cho deploy dự án. / Detect locally, estimate, obtain cost approval once, upload and deploy, create an optional Base, return URL, then attach an optional domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
envNo
nameNo
portNo
waitNo
branchNo
domainNo
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge
repo_urlNo
local_dirNo
build_typeNo
dockerfileNo
app_host_idNo
timeout_secNo
interval_secNo

TDQS

B3.3/5.0
Behavior4/5

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

Beyond the annotations (readOnly=false, openWorld=true, destructive=false), it discloses meaningful behavior: first app host takes ~2-3 minutes, subsequent deploys 10-20 seconds, sandbox=true incurs no charge and creates no real infrastructure, and the caller must poll until done/succeeded. It also notes the cost-approval gate and the cloud_topup QR flow when credit runs out.

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

Conciseness2/5

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

The text is a dense bilingual wall of run-on prose, with Vietnamese immediately echoed in English, that reads as a full product workflow rather than a tool definition. It is not front-loaded around the tool's own action and drifts far into sibling workflows (domains, top-up, Base) that belong elsewhere.

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?

For a 14-parameter mutation tool with no output schema and near-zero schema coverage, the description should pin down parameter meaning and the result contract; instead it describes an orchestration script. It is incomplete precisely where the structured data is weakest, despite being verbose where the agent needs least.

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

Parameters2/5

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

Schema description coverage is only 7% across 14 parameters, so the description carries the burden and largely fails it. It mentions local_dir, repo_url, sandbox and app_host_id in the workflow, but env, name, port, wait, branch, domain, build_type, dockerfile, timeout_sec and interval_sec are undocumented in both places.

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 opening line states it is a compatibility alias of cloud_app_create, and the body makes clear the operation is creating/hosting an app from a git repo or local directory and returning its URL. The verb+resource are identifiable, though the workflow narration buries them rather than leading with them.

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 real routing guidance: use cloud_app_detect first, try sandbox=true before sandbox=false for cost estimation, obtain human cost approval once, and explicitly 'không gọi agent_deploy cho deploy dự án' (do not call agent_deploy for project deploys). That is an explicit exclusion plus a named alternative sequence. It lacks a crisp when-not-to-use, but the context is well covered.

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

vibecloud_app_deleteCông cụ MONA app deleteB
DestructiveIdempotent

Alias tương thích của cloud_app_delete. / Compatibility alias. App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. Sau khi user duyệt xoá: xoá app/domain/A record; app host vẫn có thể tính phí. / Delete an approved app.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge

TDQS

B3.3/5.0
Behavior4/5

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

Goes beyond the annotations by disclosing what is destroyed (app, domain, A record) and a residual side effect ('app host may still be charged'), which the destructive/idempotent hints do not convey. The git-app timing sentence appears copied from a deploy tool and is irrelevant to deletion.

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

Conciseness3/5

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

The alias identification is front-loaded, but the entry interleaves three language variants with repeated phrasing and includes deploy-timing content unrelated to a delete operation, wasting space without adding clarity.

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 destructive, no-output-schema tool the annotations already cover the safety profile and the description adds destruction detail plus residual billing, which is useful. However, the undocumented app_id and the stray timing sentence leave the definition only adequate, not complete.

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

Parameters2/5

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

At 50% schema description coverage, app_id is undocumented in both schema and description, and the description says nothing about either parameter. The sandbox flag's meaning ('no charge') is only carried by the schema, so the description fails to compensate for the coverage gap.

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?

States a specific verb+resource ('Delete an approved app') and explicitly identifies itself as the compatibility alias of the sibling cloud_app_delete, so the agent can tell what it does and how it relates to the canonical tool. The bilingual repetition dilutes it slightly but intent 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 Guidelines3/5

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

The phrase 'Delete an approved app' and 'after user approves deletion' implies deletion is gated on prior approval, but it gives no explicit when-to-use/when-not guidance or routing rule versus cloud_app_delete beyond the alias note. Usage is largely inferred.

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

vibecloud_app_deployCông cụ MONA app deployA

Alias tương thích của cloud_app_deploy. / Compatibility alias. App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. App upload: local_dir đóng ZIP mới → upload → chờ job → deploy; bỏ local_dir để redeploy bản đã upload. / Redeploy uploaded source or a git app and poll.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNo
app_idYes
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge
local_dirNo
timeout_secNo
interval_secNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations declare the mutation profile (readOnly=false, destructive=false, idempotent=false, openWorld=true), which the description does not contradict. Beyond that, the description adds real behavioral context: first git host goes live in ~2–3 minutes, subsequent deploys 10–20 seconds, and the local_dir flow (zip → upload → wait job → deploy) is async and polled.

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

Conciseness3/5

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

The leading sentence defines the alias up front and the key constraints follow, which is good front-loading. However, every statement is duplicated in Vietnamese and English, roughly doubling the length, and the same alias/timing/upload facts are restated rather than compressed.

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 mutation tool with no output schema and only 17% schema coverage, the description covers the timing and async flow well but omits authentication/permission needs, failure/error behavior, and the meaning of the wait/timeout_sec/interval_sec polling parameters. Adequate but with clear gaps.

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 only 17% — just sandbox is documented — so the description carries most of the burden. It meaningfully explains local_dir (omitting it triggers a redeploy of the uploaded build) and implies wait/polling behavior, but app_id, wait, timeout_sec, and interval_sec remain unexplained in both schema and 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 states a specific verb+resource (deploy an app, redeploy uploaded source or a git app) and clarifies it is a compatibility alias of cloud_app_deploy. However, it does not differentiate why an agent should pick this alias over the identical sibling cloud_app_deploy, so sibling differentiation is weak.

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?

It gives one conditional rule — supply local_dir to zip/upload a new build, omit it to redeploy the already-uploaded source — which implies usage. But it never states when to use vibecloud_app_deploy versus cloud_app_deploy (the alias relationship is asserted, not operationalized), and there are no exclusions or prerequisites.

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

vibecloud_app_detectCông cụ MONA app detectA
Read-onlyIdempotent

Alias tương thích của cloud_app_detect. / Compatibility alias. Nhận diện Node/Next/Vite/Python/PHP/static, port, start, Dockerfile, build_type và tên biến .env.example; hoàn toàn offline, không thực thi code dự án. / Detect a local app without network.

ParametersJSON Schema
NameRequiredDescriptionDefault
local_dirYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false. The description adds two useful behavioral facts beyond that: it runs entirely offline and does not execute project code, plus it enumerates the detected attributes, giving the agent confidence about side-effect safety.

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?

Front-loads the alias relationship, then states detection scope and safety constraints in dense sentences with little filler. The bilingual duplication is deliberate for its audience, though it makes the description longer than a single-language equivalent.

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 read-only local detection tool, the description covers what is detected and confirms offline/non-executing behavior. It lacks explicit input-path semantics, but its enumeration of detection targets largely stands in for the missing output schema.

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

Parameters2/5

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

Schema description coverage is 0% for local_dir, and the description never names the parameter or specifies whether it is a directory path, absolute vs relative, or what a valid layout looks like. The phrase "local app" only faintly implies the input, so the description does almost nothing to compensate for the schema gap.

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?

States a specific verb and resource ("Detect a local app"), enumerates exactly what is detected (Node/Next/Vite/Python/PHP/static, port, start, Dockerfile, build_type, .env.example variables), and identifies itself as the compatibility alias of cloud_app_detect, which distinguishes it from unrelated siblings.

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?

Names the original tool it aliases (cloud_app_detect) and states the offline/non-executing context, but does not explicitly say when to choose this alias over cloud_app_detect or any other detection path, nor does it state any exclusion conditions. Usage is implied rather than spelled out.

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

vibecloud_app_domain_addCông cụ MONA app domain addA

Alias tương thích của cloud_app_domain_add. / Compatibility alias. App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. Thêm domain human ĐÃ có, trả hướng dẫn CNAME từ API; chờ DNS trước kiểm HTTPS. Human chưa có domain → dùng cloud_domain_search/cloud_domain_reserve/cloud_domain_buy rồi cloud_domain_attach (mua .vn/.com bằng VND ngay trong phiên). / Attach an existing custom domain; to buy one use cloud_domain_*.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYes
app_idYes
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge

TDQS

A3.5/5.0
Behavior4/5

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

Annotations declare the mutation profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), and the description adds real behavioral context beyond that: git apps are already live, first app host takes ~2-3 minutes vs 10-20 seconds for later deploys, the API returns CNAME instructions, and DNS must be awaited before HTTPS is checked. It does not describe failure modes or rollback, but it goes well past the structured hints.

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

Conciseness3/5

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

The alias statement is front-loaded, which is good, but every point is expressed twice (Vietnamese and English) and the deploy-timing detail is wedged between the routing guidance, making the text denser than needed. Nothing is grossly irrelevant, but it is not efficient.

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 mutating tool with no output schema, the description covers the workflow (attach existing domain, CNAME returned, wait for DNS) and routes buying to siblings, which is adequate. However it leaves the required host/app_id parameters unexplained and never states what the response contains beyond 'CNAME instructions', so it is only minimally complete.

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

Parameters2/5

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

Schema description coverage is only 33% — only 'sandbox' is documented — and the description does not explain 'host' or 'app_id' beyond the vague phrase 'app host'. With low coverage the description was expected to compensate for the two required parameters and does not, so it adds little meaning over the schema.

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 clear verb+resource ('Attach an existing custom domain') and identifies itself as the compatibility alias of cloud_app_domain_add, which lets an agent place it among the domain siblings. It is slightly muddied by the bilingual duplication and the interleaved deploy-timing text, but the core 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?

It explicitly routes the agent: if the human has no domain yet, use cloud_domain_search/cloud_domain_reserve/cloud_domain_buy followed by cloud_domain_attach, and it notes buying .vn/.com in-session with VND. That is concrete when-to-use-which guidance, though the boundary between this tool and cloud_domain_attach is stated only in passing.

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

vibecloud_app_env_setCông cụ MONA app env setA
Idempotent

Alias tương thích của cloud_app_env_set. / Compatibility alias. App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. Thay toàn bộ env sau khi được duyệt, gửi đầy đủ map cần giữ; không log secret. Gọi cloud_app_deploy sau đó để áp dụng. / Set app environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
envYes
app_idYes
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge

TDQS

A3.6/5.0
Behavior4/5

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

Adds genuinely useful context beyond annotations: the operation replaces the ENTIRE env (so the caller must resend every key to keep), secrets are not logged, and a follow-up deploy is needed. This is non-trivial disclosure not derivable from the readOnly/idempotent hints. There is a mild tension with destructiveHint=false, since a full overwrite can drop unlisted variables, but it reads as overwrite rather than deletion.

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

Conciseness3/5

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

The bilingual duplication inflates the text, and the 'App từ git đã live... 2–3 phút' timing sentence is tangential to a set-env operation. The actionable content (full replacement, no secret logging, deploy after) is present but not front-loaded.

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 mutation tool with no output schema, the description covers the essentials an agent needs: replace-all semantics, approval gating, secret handling, and the required follow-up call. Only the app_id parameter and error behavior remain unaddressed.

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 only 33%, and the description never names app_id or sandbox. It does clarify the semantics of `env` as a complete replacement map ('gửi đầy đủ map cần giữ'), which is valuable, but the remaining parameters go undocumented.

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?

States a clear verb+resource ('Set app environment') and identifies itself as a compatibility alias of cloud_app_env_set, which helps an agent map it to the canonical sibling. The purpose is discernible, though it is diluted by unrelated deploy-timing prose.

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?

Gives one concrete workflow cue: 'Gọi cloud_app_deploy sau đó để áp dụng' (call deploy afterward to apply), and implies approval is required. It does not compare against cloud_app_env_set or explain when to prefer the alias versus the canonical tool, leaving usage largely inferred.

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

vibecloud_app_getCông cụ MONA app getB
Read-onlyIdempotent

Alias tương thích của cloud_app_get. / Compatibility alias. App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. Đọc status, URL, lần deploy và app host. / Inspect app.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds provisioning timing context (first host ~2–3 min, subsequent deploys 10–20 s), which is genuinely beyond the annotations, though it is stated as a general app fact rather than a property of this read.

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

Conciseness2/5

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

The text is bilingual duplication separated by slashes, so every idea is stated twice ('Alias tương thích... / Compatibility alias', 'Đọc status... / Inspect app'). The core action is buried at the end rather than front-loaded, and the timing sentence sits awkwardly in the middle.

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 read-only inspect tool whose annotations carry the safety profile, the description is minimally adequate: it names the fields returned (status, URL, deploys, host) and flags the alias relationship. It does not explain the required app_id or how a 'not found / not yet live' state appears, leaving gaps for a 2-parameter tool.

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

Parameters2/5

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

Schema description coverage is 50%: the sandbox parameter is documented in the schema ('Sandbox, no charge'), but app_id is undocumented in both schema and description. The description adds no parameter meaning or format guidance, so there is no compensation for the gap.

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?

Identifies the tool as a compatibility alias of cloud_app_get and states its job: 'Inspect app' / reads status, URL, deploy count and app host. The verb+resource is clear enough to route an agent. It loses a point only because the title ('Công cụ MONA app get') and the fragmented bilingual phrasing dilute the statement.

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 'compatibility alias' note implies the tool is interchangeable with cloud_app_get, which is a useful routing hint, and the provisioning timing ('app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây') tells the agent when a status read is meaningful. However, there is no explicit when-to-use/when-not or condition distinguishing it from the cloud_app_get sibling.

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

vibecloud_app_host_listCông cụ MONA app host listB
Read-onlyIdempotent

Alias tương thích của cloud_app_host_list. / Compatibility alias. App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. Đọc app host; chưa có host thì sandbox cloud_app_create trước để ước tính. / List app hosts.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds deployment-timing context (first app host ~2-3 minutes, subsequent deploys 10-20 seconds), which is extra information but is about deploy latency rather than about the list operation itself, so it is only partially relevant.

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

Conciseness2/5

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

Every sentence is duplicated in Vietnamese and English, and the content order is scrambled — alias note, deployment timing, sandbox advice, then finally the actual 'list app hosts' purpose. The signal-to-noise ratio is poor and the key purpose is not front-loaded.

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 read-only, single-optional-param list tool with no output schema, the description covers the essentials: what it does, its alias relationship, and a fallback path when no hosts exist. It stops short of documenting what the returned host entries contain or how they relate to apps, leaving a small gap.

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% for the single optional 'sandbox' parameter, so the schema already explains it as 'Sandbox, no charge'. The description references sandbox usage only indirectly (via cloud_app_create) and adds no semantics beyond the schema, which is the expected baseline for full 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 states a specific verb+resource ('Đọc app host' / 'List app hosts') and clarifies its identity as the compatibility alias of cloud_app_host_list, which helps separate it from the other app siblings. However, the purpose statement is buried at the end of a jumbled bilingual block and competes with deployment-timing and sandboxing notes.

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?

It offers one conditional step — if no host exists yet, run sandbox cloud_app_create first to get an estimate — which is genuine routing guidance. But it never explains when to use this tool versus cloud_app_list or vibecloud_app_list, and the alias framing implies it is interchangeable with cloud_app_host_list without saying so explicitly.

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

vibecloud_app_listCông cụ MONA app listB
Read-onlyIdempotent

Alias tương thích của cloud_app_list. / Compatibility alias. App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. Liệt kê app trước khi tạo để tránh trùng. / List apps.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered by structured data. The description's timing content is about git app deploys rather than this list operation, so it adds little real behavioral context; return format and pagination are unaddressed.

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

Conciseness2/5

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

The text is bilingual with slash-separated duplication, and it embeds deployment-timing information that is irrelevant to a list tool. It is not front-loaded on the actual purpose and wastes space on off-topic content.

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, fully schema-covered, read-only list tool with no output schema, the description covers the minimum. But the inclusion of unrelated deploy timing leaves the definition feeling partially borrowed rather than purpose-built, and it omits any indication of what the list returns.

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% for the single 'sandbox' boolean, so the schema already carries the parameter meaning. The description adds no syntax or semantic detail beyond the schema, which matches the baseline of 3.

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 does state the core verb+resource ('Liệt kê app' / 'List apps') and identifies itself as a compatibility alias of cloud_app_list, which helps place it among siblings. However the deploy-timing content ('app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây') is unrelated noise that muddles the purpose statement.

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?

It offers one concrete usage cue: 'List apps before creating to avoid duplicates.' That is a real when-to-use hint, but it names no alternative (other than implying the cloud_app_list alias) and gives no 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.

vibecloud_app_logsCông cụ MONA app logsB
Read-onlyIdempotent

Alias tương thích của cloud_app_logs. / Compatibility alias. App từ git đã live: app host đầu tiên ~2–3 phút, deploy sau đó 10–20 giây. / Git apps are live. Đọc tối đa 500 dòng log; có thể chứa secret, không đưa nguyên log ra công khai. / Read deployment logs.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes
sandboxNoThử 0đ, không tạo hạ tầng thật / Sandbox, no charge
deploymentNo

TDQS

B3.3/5.0
Behavior4/5

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

Beyond the annotations (readOnly/idempotent/non-destructive), the description adds real behavioral context: a 500-line read cap, that logs may contain secrets and should not be published verbatim, and git-app live timing (~2-3 min for first host, 10-20s for later deploys). These are substantive disclosures the annotations do not cover.

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

Conciseness3/5

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

The content earns its place, but every sentence is delivered twice (Vietnamese then English), doubling the length without adding information. It is not bloated artificially, just redundant by format.

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 low-complexity read tool whose annotations already cover safety, the secrets warning and line limit are adequate. However, the two undescribed parameters and the incomplete alias relationship leave gaps an agent must guess at.

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

Parameters2/5

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

With only 33% schema coverage (only 'sandbox' is documented), the description must carry the burden for app_id and deployment, yet it never mentions any of the three parameters. No added meaning over the raw schema.

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 gives a clear verb+resource ('Read deployment logs') and explicitly frames the tool as a compatibility alias of the sibling cloud_app_logs. An agent can tell what it does, though the bilingual duplication muddies the front-loading.

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?

Calling it a 'compatibility alias' of cloud_app_logs implicitly tells the agent the two are interchangeable, but there is no explicit when-to-use-this-vs-the-other, no exclusions, and no prerequisites stated. Usage is only implied.

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

vibecloud_base_createCông cụ MONA base createB

Alias tương thích của cloud_base_create. / Compatibility alias. Ước tính, kiểm ví, tạo Base và poll job tới hoàn tất; sandbox chỉ trả ước tính. / Estimate, create and wait for the Base job. Base beta = thay Supabase, chung account/ví MONA Cloud. / Beta Supabase replacement on the shared MONA Cloud account and wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
cpuNo
ram_gbNo
disk_gbNo
sandboxNoThử 0đ, chỉ ước tính và không tạo hạ tầng thật / Sandbox estimate only
plan_codeNo
billing_modeNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare write (readOnlyHint=false), non-idempotent, non-destructive, open-world. The description adds genuinely useful behavior beyond that: the multi-step estimate/check/create/poll-to-completion flow and the sandbox-only-estimate mode. However it omits wallet/cost implications of the failed-wallet path, retry/duplicate semantics for a non-idempotent create, and auth requirements, so it is only partially transparent.

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

Conciseness3/5

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

It is reasonably front-loaded, leading with the alias relationship, but the three slash-separated bilingual segments repeat the same content and inflate length without adding distinct information. Adequately sized but not tight.

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 six-parameter, zero-required create tool with no output schema, the description conveys the overall operation and the sandbox caveat but leaves the resource-sizing parameters (cpu/ram/disk/plan/billing) and the wallet-charge/failure behavior unexplained. It is minimally sufficient, not complete.

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

Parameters2/5

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

Schema description coverage is only 17% — just the sandbox flag is documented in the schema. The description reinforces sandbox semantics ('only returns an estimate') but adds nothing about cpu, ram_gb, disk_gb, plan_code, or billing_mode, leaving five of six parameters with no meaning anywhere. It fails to compensate for the low 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 states a specific verb+resource (create a Base / Supabase replacement) and explicitly frames itself as the compatibility alias of cloud_base_create, which helps an agent disambiguate from the cloud_base_create sibling. It also sketches the sequence (estimate, wallet check, create, poll). It falls short of 5 because the alias relationship and the 'Base = Supabase replacement' framing are somewhat indirect rather than a crisp one-line purpose.

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?

It implies usage context by noting 'sandbox only returns an estimate' and that the operation polls a job to completion, but it never says when to pick this over cloud_base_create, cloud_db_create, or vibecloud_create_database, nor lists exclusions or prerequisites. Usage is implied rather than stated.

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

vibecloud_base_credentialsCông cụ MONA base credentialsB
Read-onlyIdempotent

Alias tương thích của cloud_base_credentials. / Compatibility alias. Đọc anon_key, service_key và db_url. Bí mật, không log; lưu thẳng vào secret store hoặc .env không commit. / Reveal credentials once and keep them secret. Base beta = thay Supabase, chung account/ví MONA Cloud. / Beta Supabase replacement on the shared MONA Cloud account and wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYes

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld, but the description adds the critical behavioral fact that the returned values are secrets that must not be logged and should go straight into a secret store or uncommitted .env. That is meaningful disclosure beyond the structured hints, and it does not contradict them.

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

Conciseness3/5

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

The alias identity is front-loaded, which is good, but the content is duplicated verbatim in Vietnamese and English, roughly doubling the length without adding information. The trailing 'shared MONA Cloud account and wallet' sentence is tangential to invoking the 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?

With no output schema, the description does cover the return payload (anon_key, service_key, db_url) and secret-handling, which is helpful. However it omits any meaning for the required base_id and gives no guidance on failure cases, leaving a real gap for a 1-param credential-reveal tool.

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

Parameters2/5

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

There is a single required parameter (base_id) with 0% schema description coverage and no enum, and the description never explains what base_id refers to or its format. With no schema-level documentation, the description is expected to compensate but instead says nothing about the parameter.

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 names the tool as a compatibility alias of cloud_base_credentials and states the specific resources it reads (anon_key, service_key, db_url), so an agent knows exactly what it does and can distinguish it from the real cloud_base_credentials. The 'Beta Supabase replacement' framing is extra context but the core verb+resource 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?

It implies usage via the alias relationship ('compatibility alias of cloud_base_credentials'), so an agent can infer it's interchangeable with the canonical tool, but there is no explicit statement of when to prefer this alias over cloud_base_credentials. The only concrete guidance is post-invocation handling (keep secret, store in secret store or uncommitted .env).

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

vibecloud_base_deleteCông cụ MONA base deleteB
DestructiveIdempotent

Alias tương thích của cloud_base_delete. / Compatibility alias. Xoá Base beta đã được người dùng duyệt. / Delete an approved Base. Base beta = thay Supabase, chung account/ví MONA Cloud. / Beta Supabase replacement on the shared MONA Cloud account and wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYes

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is carried by structured data. The description adds a real precondition beyond that: the Base must already be user-approved before deletion. It does not state irreversibility or wallet/account side-effects.

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

Conciseness3/5

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

The bilingual duplication roughly doubles the length without adding information, and 'Compatibility alias' is restated twice. The core fact is front-loaded, but the beta/Supabase explanation could be trimmed.

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 destructive tool the annotations cover the safety profile and the alias/approval note is useful, but with no output schema and an entirely undocumented parameter, the definition leaves an agent needing to infer base_id and the post-delete state.

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

Parameters2/5

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

One required parameter with 0% schema description coverage, so the schema carries no semantics at all. The description never explains what base_id is, its expected format, or how to obtain it, leaving the sole parameter effectively undocumented.

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?

States a specific verb (delete) and resource (an approved Base), and explicitly positions itself as a compatibility alias of cloud_base_delete, which helps with sibling disambiguation. The beta/Supabase explanation adds verbosity but the core action 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 Guidelines3/5

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

The phrase 'approved Base' implies a precondition (only approved bases are deletable), but there is no explicit when-to-use vs. when-not guidance and no statement about which of the two aliases (vibecloud_base_delete vs. cloud_base_delete) an agent should prefer.

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

vibecloud_base_getCông cụ MONA base getB
Read-onlyIdempotent

Alias tương thích của cloud_base_get. / Compatibility alias. Đọc trạng thái và URL của một Base beta. / Inspect a Base. Base beta = thay Supabase, chung account/ví MONA Cloud. / Beta Supabase replacement on the shared MONA Cloud account and wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
base_idYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds real context beyond that: it reveals the returned payload ('trạng thái và URL') and explains what a Base is (a beta Supabase replacement on the shared MONA Cloud account/wallet). It says nothing about permissions or failure behavior, so it is value-adding 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.

Conciseness3/5

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

The alias identification and the core verb are front-loaded, which is good. But the bilingual duplication states each fact twice ('Alias tương thích... / Compatibility alias.', 'Base beta = ... / Beta Supabase replacement ...'), consuming tokens without adding information.

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 read-only getter with one identifier parameter, rich annotations, and no output schema, the description covers purpose, the alias relationship, and domain context adequately. Only the meaning of base_id and any not-found/error behavior are left unstated.

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 0% and the single required base_id is undocumented in both schema and description. However, with only one self-evident identifier parameter, the omission is low-harm and the description is not actively misleading. It adds nothing beyond the name, so it stays at the baseline.

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 gives a specific verb and resource ('Inspect a Base' / 'Đọc trạng thái và URL của một Base beta') and identifies itself as the compatibility alias of cloud_base_get, which lets an agent place it in the large cloud_*/vibecloud_* family. It does not explicitly differentiate when to prefer this alias over cloud_base_get, but the alias relationship is stated.

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 is only implied: calling out that it is an alias of cloud_base_get hints you use this when the vibecloud_* naming is expected. There is no explicit when-to-use, when-not-to-use, or routing statement versus the canonical tool or cloud_base_list/cloud_base_delete.

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

vibecloud_base_listCông cụ MONA base listA
Read-onlyIdempotent

Alias tương thích của cloud_base_list. / Compatibility alias. Liệt kê Base beta của tài khoản hiện tại. / List Bases. Base beta = thay Supabase, chung account/ví MONA Cloud. / Beta Supabase replacement on the shared MONA Cloud account and wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety and repeatability profile is fully covered by structured data. The description adds useful domain context (shared MONA Cloud account/wallet, beta Supabase replacement) but says nothing about return shape, pagination, or auth beyond what annotations provide.

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

Conciseness3/5

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

Content is front-loaded with the alias relationship, but every sentence is duplicated in Vietnamese and English, roughly doubling the text without adding information. Each language version is brief, but the interleaved bilingual structure makes the description longer than it needs to be for a single reader.

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, read-only list tool with no output schema, the description supplies the essential context: what is listed, whose account, and what the resource conceptually is. Return format is not described, but for a simple list operation with read-only annotations this is a minor gap.

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 takes zero parameters and the schema is empty with additionalProperties=false, so there is nothing for the description to disambiguate. Baseline of 4 applies for a no-parameter tool; the description correctly implies the result is scoped to the current account implicitly.

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?

States a specific verb and resource ('Liệt kê Base beta của tài khoản hiện tại / List Bases') and explicitly differentiates itself from the sibling cloud_base_list by declaring it is the compatibility alias of it. It even clarifies the domain concept ('Base beta = Supabase replacement'), so an agent can tell it apart from cloud_base_get/cloud_base_create without opening a schema.

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 names cloud_base_list as the canonical tool this aliases, which implies interchangeable usage, but never states when to prefer this alias over the canonical name, nor any exclusions or prerequisites. Usage is only implied rather than instructed.

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

vibecloud_create_databaseAlias cũ của cloud_db_createB

Alias tương thích; dùng cloud_db_create cho tích hợp mới. sandbox=true: thử 0đ, không cần ví.

ParametersJSON Schema
NameRequiredDescriptionDefault
cpuNo
engineNomongodb
ram_gbNo
disk_gbNo
sandboxNosandbox=true: thử 0đ, không cần ví
app_nameYes
package_slugNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare non-readOnly, non-idempotent, non-destructive, openWorld behavior. The description adds a genuinely useful behavioral fact not in the schema annotations: sandbox=true is a free trial requiring no wallet. It stops short of covering creation side effects, auth, or provisioning time.

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?

Two compact clauses with no filler, and the alias/routing information is front-loaded ahead of the sandbox note. Efficient for what little it chooses to say, though it is arguably under-specified rather than concise.

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?

For a 7-parameter creation tool with no output schema and 14% schema coverage, the description leaves the agent without engine/CPU/RAM/disk/package semantics or any description of what is created. The alias routing and sandbox note are insufficient for correct invocation.

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

Parameters2/5

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

Schema description coverage is only 14% across 7 parameters, so the description must carry the burden. It explains only sandbox (and that text is duplicated from the schema), leaving app_name, engine, cpu, ram_gb, disk_gb, and package_slug entirely undocumented. It does not compensate for the coverage gap.

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

Purpose3/5

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

The description states the tool is a compatibility alias and directs callers to cloud_db_create, which differentiates it from its sibling. However, it never says what the operation actually does (create a database), so the purpose is only inferable from the name and the referenced sibling. Vague on the core verb+resource.

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 explicit routing guidance: use cloud_db_create for new integrations, implying this alias exists only for legacy compatibility. That is a clear when-to-use signal, though it does not spell out deprecation, removal timing, or any when-not conditions.

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

vibecloud_create_vpsAlias cũ của cloud_vps_createB

Alias tương thích; dùng cloud_vps_create cho tích hợp mới. sandbox=true: thử 0đ, không cần ví.

ParametersJSON Schema
NameRequiredDescriptionDefault
cpuNo
periodNo
ram_gbNo
disk_gbNo
sandboxNosandbox=true: thử 0đ, không cần ví
app_nameYes
plan_codeNo
billing_modeNo
package_slugNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare non-read-only, open-world, non-idempotent, non-destructive. The description adds that sandbox=true gives a free 0-cost trial without a wallet, which is useful behavioral context not in the annotations. However it doesn't mention provisioning latency, billing impact, or what happens on failure.

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 clauses, front-loaded with the key routing information (alias, use the replacement) followed by the sandbox hint. No waste.

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?

A VPS-provisioning tool with 9 parameters at 11% schema coverage, no output schema, and only a sandbox note in the description. Missing guidance on required app_name, plan/package selection, billing mode, and what the call returns. Inadequate for the complexity.

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

Parameters2/5

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

Schema description coverage is only 11% – six of nine parameters (cpu, ram_gb, disk_gb, app_name, plan_code, billing_mode, package_slug, period) have no descriptions. The description only covers sandbox, adding no meaning for the other parameters. With such low coverage the description should compensate but does not.

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

Purpose3/5

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

The description states this is a compatibility alias and points to the replacement tool 'cloud_vps_create'. It does not describe what creating a VPS actually does (provisions a virtual server with cpu/ram/disk), but for an alias tool the purpose is mainly to redirect callers. Adequate but thin on the actual resource action.

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?

Explicitly tells the agent to use cloud_vps_create for new integrations, implying this alias should only be used for legacy compatibility. The condition for using the alias itself isn't fully spelled out (when exactly must an old caller use this), but the primary routing guidance is clear.

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

vibecloud_credit_redeemCông cụ MONA credit redeemA

Alias tương thích của cloud_credit_redeem. / Compatibility alias. Dùng mã credit người dùng cung cấp sau khi họ đồng ý; không thử đoán mã. / Redeem an approved promotional credit code.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), so the bar is lower. The description adds that the code must be user-supplied and approved, but says nothing about what happens on an invalid/duplicate code or whether repeated redemption is rejected, leaving meaningful behavior undisclosed for a credit-mutating tool.

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 definition is short and front-loads the alias identity before the usage constraint. The bilingual duplication (Vietnamese and English restating the same content plus a redundant "Compatibility alias" gloss) costs a little without adding 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?

For a one-parameter tool with annotations and no output schema, the description covers purpose, provenance of the code, and a key guardrail. It is still incomplete on the outcome of the operation and on failure/duplicate-redemption handling, which matter for a financial credit action.

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 0% and the single `code` parameter carries only minLength/maxLength in the schema. The description partially compensates by explaining the value is a user-provided, pre-approved promotional credit code that must not be invented, but it adds no format, casing, or validity details.

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 gives a concrete verb+resource ("Redeem an approved promotional credit code") and explicitly identifies itself as the compatibility alias of cloud_credit_redeem, so an agent can tell what it does and how it relates to its near-identical sibling. It is not fully explicit about whether the alias behaves identically to the canonical tool, which keeps it from a 5.

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 states a clear precondition and anti-pattern: use the credit code the user provides after they consent, and do not attempt to guess the code. This is real routing guidance, but it never states when to prefer this alias over cloud_credit_redeem, so the alternative-selection case is left implicit.

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

vibecloud_invoice_listCông cụ MONA invoice listA
Read-onlyIdempotent

Alias tương thích của cloud_invoice_list. / Compatibility alias. Đọc hoá đơn hàng tháng của tài khoản. / List monthly invoices.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already cover read-only, idempotent, open-world, and non-destructive behavior. The description adds only that the scope is monthly account invoices; it does not add auth, pagination, rate-limit, or return-format details.

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 definition is short and front-loads the alias identity and purpose. The Vietnamese/English duplication adds some redundancy, but it remains compact.

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 no-parameter, read-only alias, the description supplies enough to identify what it does and that it is safe to call. Missing usage guidance and return-format notes are minor because annotations carry the safety profile and no output schema exists.

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?

There are no parameters (0 params), so the schema/description interaction is not applicable; the baseline for a parameterless tool is 4. The description does not need to clarify inputs.

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 ('List') and resource ('monthly invoices'), and identifies the tool as a compatibility alias of cloud_invoice_list. This lets an agent place it relative to the canonical sibling, though it does not explain why one would choose this alias over cloud_invoice_list.

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?

It labels itself a compatibility alias, which implies interchangeable use with cloud_invoice_list, but gives no explicit when-to-use, when-not-to-use, or prerequisites. Alternatives are not discussed beyond the alias reference.

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

vibecloud_invoice_pdfCông cụ MONA invoice pdfA
Read-onlyIdempotent

Alias tương thích của cloud_invoice_pdf. / Compatibility alias. Tải PDF hoá đơn vào file tạm riêng tư, trả path; sao chép ra nơi cần giữ trước khi hệ điều hành dọn. / Download invoice PDF to a private temporary file.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoice_idYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive. The description adds genuinely new behavioral context: the PDF lands in a private temporary file, the call returns a path, and the file is ephemeral and may be reaped by the OS. It does not cover auth/permission requirements or size limits, so it is not a 5.

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

Conciseness3/5

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

The alias statement and the temp-file caveat are front-loaded and earn their place, but every sentence is duplicated in Vietnamese and English, roughly doubling the payload for the same information. Efficient in content, wasteful in form.

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?

With no output schema, the description correctly explains the return value (a path) and its lifecycle, which is the key thing an agent needs. It leaves invoice_id sourcing and error/failure behavior undocumented, so for a required-parameter tool it is only minimally complete.

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

Parameters2/5

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

Schema description coverage is 0% for the single required parameter invoice_id, and the description never mentions it, its format, or where to obtain it. Despite the parameter being somewhat self-describing by name, the description does nothing to compensate for the total absence of schema documentation.

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?

States a specific verb and resource ('Tải PDF hoá đơn' / download invoice PDF) and explicitly identifies itself as the compatibility alias of cloud_invoice_pdf, which is present in the sibling list. An agent can immediately tell what it does and how it relates to the canonical tool.

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 alias framing tells the agent this is interchangeable with cloud_invoice_pdf, and it adds an operational caveat ('sao chép ra nơi cần giữ trước khi hệ điều hành dọn' / copy before the OS cleans up). It stops short of an explicit when-to-use/when-not rule or a prerequisite such as a prior invoice_list call.

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

vibecloud_job_statusAlias cũ của cloud_job_statusB
Read-onlyIdempotent

Alias tương thích; dùng cloud_job_status cho tích hợp mới. Job sandbox được tự nhận diện, không cần header.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNo
job_idYes
sandboxNosandbox=true: thử 0đ, không cần ví
timeout_secNo
interval_secNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, open-world, non-destructive behavior, so the safety profile is covered. The description adds one genuine behavioral fact — sandbox jobs are auto-detected and need no header — but says nothing about the blocking/polling semantics implied by wait (default true) with timeout_sec=180, which is the most consequential behavior for a status-check 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?

Two short sentences, zero filler, with the compatibility/routing guidance front-loaded ahead of the sandbox note. Every clause carries information an agent can act on.

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 5-parameter job-status tool with no output schema and only 20% parameter coverage, the description is adequate on routing but silent on what a status result contains and on the semantics of blocking (wait/timeout_sec/interval_sec). An agent can pick between the alias pair, but cannot fully predict call behavior.

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 only 20% (only 'sandbox' is documented), so the description must compensate for wait, timeout_sec, and interval_sec. It partially compensates by clarifying that sandbox detection is automatic, but leaves the polling/timeout parameters entirely unexplained in both schema and description.

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

Purpose3/5

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

The description identifies the tool only by reference to its canonical equivalent ('Alias tương thích' of cloud_job_status), never stating the verb+resource (e.g. 'returns the status of a cloud job') outright. An agent must infer the purpose from the tool name and the alias relationship. It does, however, make the sibling relationship explicit, which aids disambiguation.

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 directly routes the agent: use cloud_job_status for new integrations, implicitly meaning this alias is for legacy/compatibility callers. That is a concrete when-to-use-the-other-tool statement naming the alternative. It lacks an explicit 'use this when...' clause, so it stops short of a 5.

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

vibecloud_list_servicesAlias cũ của cloud_services_listA
Read-onlyIdempotent

Alias tương thích; dùng cloud_services_list cho tích hợp mới. sandbox=true gộp service thử 0đ, không cần header.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNosandbox=true: thử 0đ, không cần ví

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, open-world). The description adds behavioral context beyond them: sandbox=true includes 0đ trial services and no header is required, which tells the agent about auth behavior and result scoping.

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?

One front-loaded sentence states the alias relationship, the preferred alternative, and the sandbox behavior with no filler. It is tightly sized for a single-parameter alias 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 1-param read-only alias with full schema coverage and no output schema, the description covers what an agent needs: it is an alias, use the canonical tool instead, and what sandbox does. Nothing critical is missing.

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% and the single sandbox parameter is fully described in the schema itself. The description's 'sandbox=true gộp service thử 0đ' largely restates the schema text, adding little new meaning, so the baseline 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 and title explicitly frame this as a compatibility alias for cloud_services_list, which lets an agent place it relative to siblings without opening either schema. However it never directly states the underlying action (listing services); the reader infers it from the alias target.

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 explicit routing guidance: 'dùng cloud_services_list cho tích hợp mới' names the alternative and the condition (new integrations) that selects it. It stops short of stating when this alias should still be used, leaving the legacy-only case implicit.

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

vibecloud_packagesAlias cũ của cloud_packagesA
Read-onlyIdempotent

Alias tương thích; dùng cloud_packages cho tích hợp mới.

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?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds the alias/deprecation status, which is useful context, but discloses nothing about return shape or behavior. With annotations carrying the burden, a 3 is appropriate.

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 short sentence with the alias status and the recommended alternative front-loaded. No filler, every clause 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 zero-param alias whose annotations already cover the safety profile and with no output schema to explain, the description gives the agent everything needed to choose correctly. Minor gap: it never states what the tool returns.

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 takes zero parameters, so there is nothing for the description to clarify; the baseline for a no-param tool is 4.

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 explicitly states this is a compatibility alias of cloud_packages, which distinguishes it from its canonical sibling. It doesn't spell out what the tool actually returns (a package list), but the alias relationship is the defining purpose and it's stated plainly.

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?

"dùng cloud_packages cho tích hợp mới" directly routes the agent to the preferred alternative for new integrations, which is exactly the decision an agent faces when both tools appear. It leaves the 'use this one for existing/legacy integrations' side implied rather than explicit, so it falls just short of a 5.

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

vibecloud_plan_listCông cụ MONA plan listA
Read-onlyIdempotent

Alias tương thích của cloud_plan_list. / Compatibility alias. Bảng gói cùng giá tháng/năm; gợi ý gói rẻ nhất đủ CPU/RAM/đĩa yêu cầu, admin_only không tự chọn. Đọc trước khi duyệt chi phí. / List plans, prices and sizing recommendation.

ParametersJSON Schema
NameRequiredDescriptionDefault
cpuNo
ram_gbNo
disk_gbNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent and non-destructive, so the safety profile is covered. The description adds genuine behavior beyond that: it recommends the cheapest plan meeting the required CPU/RAM/disk and notes that admin_only plans are not auto-selected, which materially shapes what the agent gets back.

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?

Front-loaded with the alias identity and then the capability, with no filler sentences. The bilingual duplication is structural to this alias family rather than padding, though it does cost some density.

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 read-only list/recommendation tool with no output schema, the description covers purpose, the recommendation behavior, and the admin_only exclusion well enough to call correctly. Missing only finer points like units and fallback behavior when requirements are omitted.

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?

Schema coverage is 0%, so the description must carry parameter meaning, and it does: cpu/ram_gb/disk_gb are framed as minimum requirement thresholds that drive the 'cheapest sufficient plan' recommendation. Units and behavior for partial/absent inputs remain unexplained, keeping it short of a 5.

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?

States a specific verb and resource ('List plans, prices and sizing recommendation') and explicitly identifies itself as the compatibility alias of cloud_plan_list. The scope ('Bảng gói cùng giá tháng/năm') helps separate it from raw pricing siblings like cloud_prices, though the alias relationship makes cloud_plan_list a near-duplicate choice rather than a fully differentiated one.

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?

Provides one real usage cue: 'Đọc trước khi duyệt chi phí' (read before approving cost), which tells the agent this is a pre-approval lookup. However it never names when-not-to-use or how it differs in practice from cloud_prices/cloud_packages, leaving the alias choice to inference.

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

vibecloud_pricesAlias cũ của cloud_pricesA
Read-onlyIdempotent

Alias tương thích; dùng cloud_prices cho tích hợp mới.

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?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful deprecation/aliasing context that annotations cannot express, but says nothing about whether the alias is behaviorally identical, still maintained, or subject to removal, so it only partially earns credit above the annotation baseline.

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 short sentence, front-loading the alias relationship and ending with the actionable routing instruction. Every clause earns its place with no padding.

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-param, zero-output-schema alias whose annotations already establish the read-only safety profile, the description covers the essentials: what it is and where to go instead. Only a note on whether the alias remains permanently supported would make it fully complete.

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?

There are zero parameters, which is the baseline-4 case: no parameter semantics need explaining, and the description correctly doesn't invent any. It makes no misleading claims about inputs.

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 the tool is a compatibility alias and names its canonical counterpart cloud_prices, which lets an agent place it precisely against the many cloud_*/vibecloud_* siblings. It doesn't restate the underlying resource (pricing) directly, but the deprecation-alias framing 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?

It explicitly routes new integrations to cloud_prices, giving a clear alternative and an implied when-not-to-use. It stops short of stating the positive condition (e.g. 'only for existing legacy callers'), so the 'when to use this one' half is left to inference.

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

vibecloud_rebuildAlias cũ của cloud_service_rebuildA

Alias tương thích; dùng cloud_service_rebuild cho tích hợp mới. sandbox=true: thử 0đ, không cần ví.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNosandbox=true: thử 0đ, không cần ví
service_idYes

TDQS

A3.5/5.0
Behavior3/5

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

The annotations already disclose the safety profile (not read-only, not destructive, not idempotent, open-world). The description adds sandbox cost and wallet context, but it does not explain what rebuilding does to the service or what side effects to expect.

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 front-load the alias relationship and the replacement recommendation before the sandbox note. There is no wasted text.

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 an alias tool this is reasonably compact and routes the agent to the canonical sibling, but it omits what service_id represents and does not describe rebuild effects. With no output schema and a required parameter lacking description, more context would help.

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

Parameters2/5

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

The sandbox parameter is repeated verbatim from the schema rather than adding new meaning, and service_id is not described at all despite being required. With only 50% schema coverage, the description fails to compensate for the undocumented required parameter.

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 identifies the tool as a compatible alias and points to cloud_service_rebuild, while the name and title make the rebuild purpose inferable. It distinguishes itself from the sibling it aliases, though it never states the rebuild action directly.

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 explicitly directs new integrations to use cloud_service_rebuild, which makes the usage context of this alias clear. The implication is that this tool is for legacy compatibility only, but it does not spell out exclusions beyond that.

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

vibecloud_startAlias cũ của cloud_service_startB

Alias tương thích; dùng cloud_service_start cho tích hợp mới. sandbox=true: thử 0đ, không cần ví.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNosandbox=true: thử 0đ, không cần ví
service_idYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already establish the safety profile (not read-only, not idempotent, not destructive, openWorld). The description adds cost context — sandbox=true means a free trial with no wallet required — which is genuinely useful beyond the annotations, but it says nothing about state changes, billing after the trial, or response behavior.

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?

Two short clauses, front-loaded with the alias/deprecation note and the sandbox cost caveat. No filler, though it is terse to the point of omitting the actual operation.

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 thin deprecated alias with no output schema, the description covers the essentials (it's a legacy alias, direct new work elsewhere, free sandbox). It falls short on what starting a service actually entails and on the undocumented service_id parameter.

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

Parameters2/5

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

Schema coverage is only 50%: sandbox is documented in the schema while service_id is not. The description merely repeats the sandbox text verbatim from the schema and adds no meaning for either parameter, leaving service_id unexplained in both places.

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

Purpose3/5

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

The description only states that this is a compatibility alias of cloud_service_start; it never says what the operation actually does (start a service). An agent can infer the behavior transitively via the sibling it names, but the purpose is not stated directly in verb+resource form.

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 real routing guidance: use cloud_service_start for new integrations, implying this one is only for legacy compatibility. That is clear when-to-use context, though it does not state any exclusions or prerequisites for calling the alias itself.

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

vibecloud_stopAlias cũ của cloud_service_stopC
DestructiveIdempotent

Alias tương thích; dùng cloud_service_stop cho tích hợp mới.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNosandbox=true: thử 0đ, không cần ví
service_idYes

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare destructive=true, idempotent=true, readOnly=false, and openWorld=true. The description adds no behavioral context beyond calling itself an alias—no mention of side effects, authentication, or what stopping destroys. With safety annotations covering the profile, this contributes almost nothing.

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 a single sentence with no wasted words and front-loads both the alias nature and the alternative. It is appropriately sized for a compatibility alias, though it could afford one more clause about the actual operation.

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?

For a simple stop-alias with two parameters, the description omits the core action, parameter meanings, and any behavioral detail. Annotations help with the safety profile but not with invocation semantics. The definition is incomplete for an agent that has not already inspected the sibling cloud_service_stop.

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

Parameters2/5

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

Schema description coverage is 50%: sandbox is described in the schema, but service_id is not described anywhere. The description provides no parameter information at all, leaving the required service_id semantics undocumented and failing to compensate for the coverage gap.

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

Purpose3/5

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

The title identifies this as the old alias of cloud_service_stop and the description confirms it is a compatible alias. However, the description never states the actual operation (stopping a cloud service); it relies on the name and title to convey purpose. This is a vague purpose statement, though it does distinguish the tool's role as an alias.

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 explicitly directs new integrations to cloud_service_stop, giving a clear when-not-to-use-this signal. It does not state when to use this alias (legacy compatibility), but the alternative is named and the condition is clear.

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

vibecloud_subscription_listCông cụ MONA subscription listA
Read-onlyIdempotent

Alias tương thích của cloud_subscription_list. / Compatibility alias. Đọc các gói đang dùng, kỳ gia hạn và auto-renew. / List subscriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds that it surfaces active packages, renewal period and auto-renew status, which is mild content-level context, but says nothing about ordering, volume, or pagination behaviour beyond what the annotations give.

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

Conciseness3/5

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

It is short, but every idea is stated twice in Vietnamese and English, and the alias meta-note leads instead of the purpose. The duplication costs value without adding information.

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?

With zero parameters and no output schema, the description has to carry the return-value burden, and it does name the key fields (packages in use, renewal cycle, auto-renew). It is thin on scope (all subscriptions? ordering?) but sufficient for a parameterless list tool.

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 takes zero parameters, so the baseline for this dimension is 4. Nothing in the description misrepresents an input; there simply is nothing to document.

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?

States a specific verb and resource ('List subscriptions', 'Đọc các gói đang dùng') and names the fields returned (active packages, renewal period, auto-renew). The first sentence also declares it is a compatibility alias of cloud_subscription_list, which disambiguates it from that sibling, though the meta-framing crowds out the actual purpose.

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?

Calling it a 'compatibility alias' implies it is interchangeable with cloud_subscription_list, which is useful routing information. However there is no explicit when-to-use/when-not-to-use guidance or mention of any prerequisite or alternative beyond the alias equivalence.

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

vibecloud_subscription_updateCông cụ MONA subscription updateA
DestructiveIdempotent

Alias tương thích của cloud_subscription_update. / Compatibility alias. Đổi gói/chu kỳ/gia hạn sau khi đọc subscription và giá, ước tính rồi được duyệt. Upgrade tính prorate, downgrade kỳ sau. Huỷ: auto_renew=false, cancel_action=hourly|stop. / Update or cancel renewal.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNo
plan_codeNo
auto_renewNo
service_idYes
cancel_actionNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructive, idempotent and open-world behavior, but the description adds real value: upgrade is prorated, downgrade applies next period, and cancellation is expressed concretely as auto_renew=false with cancel_action. It does not describe what state is destroyed or the approval mechanics in detail, keeping it below 5.

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

Conciseness3/5

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

Content is dense and front-loaded with the alias statement, but the bilingual duplication means essentially every sentence appears twice, so some of the text does not add unique information. Structure is workable but not maximally efficient.

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 mutation tool with no output schema and 0% schema coverage, the description covers the key behavioral distinctions (upgrade vs downgrade billing, cancellation path) and the pre-requisite of reading subscription/price. It leaves the required service_id and the approval/response flow unspecified, so it is not fully complete.

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?

Schema description coverage is 0%, so the description must compensate, and it does for most parameters — it names plan/cycle, defines auto_renew=false for cancellation, and enumerates cancel_action=hourly|stop. Only the required service_id is left unexplained, which is the main gap.

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?

States a specific verb and resource — change plan/billing cycle/renewal or cancel a subscription — and identifies itself as a compatibility alias of cloud_subscription_update, which distinguishes it from sibling tools. The alias framing is prominent but the actual operation (update/cancel) 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?

Implies a workflow (read subscription and price, estimate, then approval) and describes the upgrade-prorated / downgrade-next-period rule plus cancel semantics, so usage context is present. However it never explicitly names when to prefer this over cloud_subscription_update or other tools, nor states exclusions.

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

Tool Schema Changelog

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

  1. 186 tool updatesv0.11.0
    • First observedagent_deploy
    • First observedagent_templates_get
    • First observedagent_templates_list
    • First observedcloud_affiliate_claim
    • First observedcloud_affiliate_link
    • First observedcloud_affiliate_stats
    • First observedcloud_agent_deploy
    • First observedcloud_app_create
    • First observedcloud_app_delete
    • First observedcloud_app_deploy
    • First observedcloud_app_detect
    • First observedcloud_app_domain_add
    • First observedcloud_app_env_set
    • First observedcloud_app_get
    • First observedcloud_app_host_list
    • First observedcloud_app_list
    • First observedcloud_app_logs
    • First observedcloud_balance
    • First observedcloud_base_create
    • First observedcloud_base_credentials
    • First observedcloud_base_delete
    • First observedcloud_base_get
    • First observedcloud_base_list
    • First observedcloud_budget_get
    • First observedcloud_budget_set
    • First observedcloud_credit_redeem
    • First observedcloud_db_create
    • First observedcloud_domain_attach
    • First observedcloud_domain_buy
    • First observedcloud_domain_claim
    • First observedcloud_domain_dns_add
    • First observedcloud_domain_dns_delete
    • First observedcloud_domain_dns_list
    • First observedcloud_domain_dns_update
    • First observedcloud_domain_health
    • First observedcloud_domain_list
    • First observedcloud_domain_ns_set
    • First observedcloud_domain_registrant_get
    • First observedcloud_domain_registrant_set
    • First observedcloud_domain_renew
    • First observedcloud_domain_reserve
    • First observedcloud_domain_reserve_release
    • First observedcloud_domain_reserve_status
    • First observedcloud_domain_search
    • First observedcloud_domain_suggest
    • First observedcloud_domain_tld_groups
    • First observedcloud_domain_tlds
    • First observedcloud_domain_verify_start
    • First observedcloud_domain_verify_status
    • First observedcloud_domain_wait
    • First observedcloud_domain_webhook_set
    • First observedcloud_invoice_list
    • First observedcloud_invoice_pdf
    • First observedcloud_job_status
    • First observedcloud_ledger
    • First observedcloud_link
    • First observedcloud_open_console
    • First observedcloud_packages
    • First observedcloud_plan_list
    • First observedcloud_prices
    • First observedcloud_service_rebuild
    • First observedcloud_service_start
    • First observedcloud_service_stop
    • First observedcloud_services
    • First observedcloud_services_list
    • First observedcloud_subscription_list
    • First observedcloud_subscription_update
    • First observedcloud_token_limit
    • First observedcloud_topup
    • First observedcloud_topup_status
    • First observedcloud_usage
    • First observedcloud_vps_create
    • First observedcloud_whoami
    • First observedmail_account
    • First observedmail_api_key_create
    • First observedmail_api_key_revoke
    • First observedmail_api_keys_list
    • First observedmail_domain_add
    • First observedmail_domain_cloudflare
    • First observedmail_domain_verify
    • First observedmail_domains_list
    • First observedmail_inbox_batch
    • First observedmail_inbox_create
    • First observedmail_inbox_delete
    • First observedmail_inbox_get
    • First observedmail_inbox_list
    • First observedmail_inbox_message
    • First observedmail_inbox_messages
    • First observedmail_inbox_reply
    • First observedmail_inbox_update
    • First observedmail_inbox_wait
    • First observedmail_list
    • First observedmail_plan_set
    • First observedmail_plans
    • First observedmail_send
    • First observedmail_stats
    • First observedmail_status
    • First observedmail_suppression_remove
    • First observedmail_suppressions_list
    • First observedmail_template_create
    • First observedmail_webhook_create
    • First observedmail_webhook_test
    • First observedmail_webhooks_list
    • First observedmonapay_cancel_checkout
    • First observedmonapay_cancel_qr
    • First observedmonapay_create_checkout
    • First observedmonapay_create_email_config
    • First observedmonapay_create_qr
    • First observedmonapay_create_webhook
    • First observedmonapay_create_zalo_group
    • First observedmonapay_delete_email_config
    • First observedmonapay_delete_webhook
    • First observedmonapay_delete_zalo_group
    • First observedmonapay_email_logs
    • First observedmonapay_email_stats
    • First observedmonapay_generate_key
    • First observedmonapay_generate_webhook_snippet
    • First observedmonapay_get_checkout
    • First observedmonapay_get_payment_profile
    • First observedmonapay_link
    • First observedmonapay_link_bank_start
    • First observedmonapay_link_bank_verify_otp
    • First observedmonapay_list_bank_accounts
    • First observedmonapay_list_checkouts
    • First observedmonapay_list_email_configs
    • First observedmonapay_list_email_suppressions
    • First observedmonapay_list_transactions
    • First observedmonapay_list_virtual_accounts
    • First observedmonapay_list_webhooks
    • First observedmonapay_list_zalo_groups
    • First observedmonapay_me
    • First observedmonapay_notification_register
    • First observedmonapay_notification_verify_otp
    • First observedmonapay_remove_email_suppression
    • First observedmonapay_resend_email_verification
    • First observedmonapay_retry_transaction
    • First observedmonapay_rotate_key
    • First observedmonapay_sandbox_transaction
    • First observedmonapay_set_payment_profile
    • First observedmonapay_test_email
    • First observedmonapay_test_webhook
    • First observedmonapay_test_zalo_group
    • First observedmonapay_update_email_config
    • First observedmonapay_update_webhook
    • First observedmonapay_update_zalo_group
    • First observedmonapay_verify_email
    • First observedmonapay_verify_signature
    • First observedmonapay_webhook_logs
    • First observedmonapay_webhook_stats
    • First observedmonapay_whoami
    • First observedmonapay_zalo_group_logs
    • First observedvibecloud_affiliate_claim
    • First observedvibecloud_affiliate_link
    • First observedvibecloud_affiliate_stats
    • First observedvibecloud_agent_deploy
    • First observedvibecloud_app_create
    • First observedvibecloud_app_delete
    • First observedvibecloud_app_deploy
    • First observedvibecloud_app_detect
    • First observedvibecloud_app_domain_add
    • First observedvibecloud_app_env_set
    • First observedvibecloud_app_get
    • First observedvibecloud_app_host_list
    • First observedvibecloud_app_list
    • First observedvibecloud_app_logs
    • First observedvibecloud_base_create
    • First observedvibecloud_base_credentials
    • First observedvibecloud_base_delete
    • First observedvibecloud_base_get
    • First observedvibecloud_base_list
    • First observedvibecloud_create_database
    • First observedvibecloud_create_vps
    • First observedvibecloud_credit_redeem
    • First observedvibecloud_invoice_list
    • First observedvibecloud_invoice_pdf
    • First observedvibecloud_job_status
    • First observedvibecloud_link
    • First observedvibecloud_list_services
    • First observedvibecloud_packages
    • First observedvibecloud_plan_list
    • First observedvibecloud_prices
    • First observedvibecloud_rebuild
    • First observedvibecloud_start
    • First observedvibecloud_stop
    • First observedvibecloud_subscription_list
    • First observedvibecloud_subscription_update

TDQS

C2.9/5.0

Scored across 186 tools

Disambiguation2/5

Multiple alias pairs (cloud_* vs vibecloud_*) and overlapping tools like cloud_services vs cloud_services_list, plus monapay_me/monapay_whoami/cloud_whoami create real confusion. Descriptions note aliases, but the surface still presents several tools that appear to do the same thing.

Naming Consistency4/5

Consistent snake_case with predictable prefix_action patterns across monapay_, cloud_, mail_, agent_, and vibecloud_ families. The mix of prefixes is domain-driven and readable, though the duplicate alias family adds minor redundancy.

Tool Count1/5

186 tools is far beyond a well-scoped server; the surface includes dozens of alias duplicates and multiple unrelated domains. This massive count makes discovery and selection impractical.

Completeness4/5

The toolset covers a broad range of domains: cloud compute, databases, domains, apps, billing, payments, email, inbox, and agents, with CRUD and lifecycle operations. Some gaps may exist (e.g. detailed cloud app config), but no obvious dead ends for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An all-in-one MCP server providing complete AI agent capabilities including file operations, code execution (Python/Node.js), one-click web deployment with wildcard domain support, Excel/CSV processing, and image generation in isolated multi-tenant workspaces.
    133
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for AgentPay — the payment gateway for autonomous AI agents. Fund a wallet once, give your agent the key, and it discovers, provisions, and pays for tool APIs on its own. One key, every tool.
    112 npm
    1
    MIT