Skip to main content
Glama
rsp2k
by rsp2k

๐ŸŒฉ๏ธ Vultr MCP

The Ultimate Model Context Protocol Server for Vultr Cloud Management

Transform your cloud infrastructure with natural language commands

Python 3.10+ PyPI version License: MIT MCP Compatible Downloads

๐Ÿš€ Quick Start โ€ข ๐Ÿ“– Documentation โ€ข ๐Ÿ› ๏ธ Features โ€ข ๐Ÿ’ก Examples โ€ข ๐Ÿค Contributing


๐ŸŽฏ What is Vultr MCP?

Vultr MCP is the most comprehensive Model Context Protocol server for Vultr cloud services, bringing 335+ management tools across 27 service modules to your fingertips. Manage your entire Vultr infrastructure through natural language conversations with Claude Code, Claude Desktop, or any MCP-compatible AI assistant.

โšก Why Choose Vultr MCP?

  • ๐ŸŽ›๏ธ Complete Control: Manage every aspect of your Vultr infrastructure

  • ๐Ÿง  AI-Native: Built specifically for natural language cloud management

  • ๐Ÿ” Smart Identifiers: Use human names instead of cryptic UUIDs

  • ๐Ÿš€ Enterprise Ready: Battle-tested with comprehensive error handling

  • ๐ŸŒ Full Coverage: From DNS to Kubernetes, databases to CDN

  • โœจ Beautiful CLI: Professional Rich UI with colors, tables, and real-time feedback


Related MCP server: CloudStack MCP Server

๐Ÿ› ๏ธ Features

๐ŸŒŸ Core Capabilities

๐ŸŽฏ Smart Management

  • ๐Ÿ”ค Human-readable identifiers

  • ๐Ÿ›ก๏ธ Intelligent validation

  • ๐Ÿ“Š Real-time analytics

  • ๐Ÿ”„ Bulk operations

โšก Developer Experience

  • ๐Ÿ Native Python API

  • ๐Ÿ–ฅ๏ธ Rich CLI interface

  • ๐Ÿ“š Comprehensive docs

  • ๐Ÿงช Full test coverage

๐ŸŽฏ Enterprise Features (v2.1.0)

๐ŸŽจ Beautiful CLI Interface

  • ๐ŸŒˆ Rich colors and professional tables

  • ๐Ÿ“Š Real-time performance metrics

  • ๐Ÿ”„ Loading spinners and progress bars

  • โœจ Branded panels and status indicators

๐Ÿ“ Structured Logging

  • ๐Ÿท๏ธ Contextual logging with service tags

  • โฑ๏ธ Request timing and performance data

  • ๐Ÿ” Debug-level API call tracing

  • ๐Ÿ“Š Error tracking with retry attempts

โšก Performance & Reliability

  • ๐Ÿ’พ Intelligent TTL-based caching (85%+ hit rate)

  • ๐Ÿ”„ Exponential backoff retry with jitter

  • ๐Ÿ“ˆ Real-time P95/P99 performance monitoring

  • ๐Ÿ›ก๏ธ Network timeout and error resilience

๐Ÿ”’ Security & Quality

  • ๐Ÿ›ก๏ธ Pre-commit hooks with 7 quality checks

  • ๐Ÿ” Bandit security scanning

  • ๐Ÿค– Dependabot automated updates

  • โšก Ruff lightning-fast linting

๐Ÿ—๏ธ Service Coverage (335+ Tools)

Service

Tools

Smart Identifiers

Instances

14

label, hostname

Bare Metal

18

label, hostname

Reserved IPs

11

IP address

SSH Keys

5

name

Snapshots

6

description

Backups

2

UUID

Regions

5

Region code

Plans

10

Plan ID

Service

Tools

Smart Identifiers

DNS Management

14

Domain name

VPCs & VPC 2.0

15

description

Load Balancers

16

name, label

CDN & Edge

15

Origin/CDN domain

Firewall

10

description

Service

Tools

Smart Identifiers

Managed Databases

41

name, label

Block Storage

12

label

Object Storage

12

name, label

Storage Gateways

14

name, label

Service

Tools

Smart Identifiers

Kubernetes

24

Cluster name/label

Container Registry

10

Registry name

Serverless Inference

10

Service name/label

Marketplace

11

App name

Service

Tools

Smart Identifiers

Billing & Account

12

Account info

Users & Subaccounts

23

Email, name

Startup Scripts

10

Script name

ISO Images

7

Filename

Operating Systems

8

OS name


๐Ÿš€ Quick Start

๐Ÿ“ฆ Installation

# ๐Ÿƒโ€โ™‚๏ธ Fast installation with uv (recommended)
uv add mcp-vultr

# ๐Ÿ“ฆ Traditional pip installation  
pip install mcp-vultr

โš™๏ธ Setup with Claude Code

# ๐Ÿ”‘ Set your Vultr API key
export VULTR_API_KEY="your-vultr-api-key"

# ๐Ÿ”Œ Add to Claude Code (one command!)
claude mcp add vultr vultr-mcp-server --env VULTR_API_KEY="${VULTR_API_KEY}"

๐ŸŽ‰ Start Managing!

# ๐Ÿš€ Launch the MCP server
vultr-mcp-server

That's it! You now have 335+ Vultr management tools available through natural language in Claude Code.

๐Ÿงฆ Proxy Support (optional)

Route every outbound Vultr API call through an HTTP or SOCKS5 proxy by setting VULTR_PROXY:

# ๐Ÿง… SOCKS5, resolving DNS proxy-side (socks5h)
export VULTR_PROXY="socks5h://127.0.0.1:1080"

# ๐Ÿ”’ SOCKS5 with credentials
export VULTR_PROXY="socks5://user:pass@bastion.internal:1080"

# ๐ŸŒ A plain HTTP proxy works too
export VULTR_PROXY="http://198.51.100.1:3128"

# ๐Ÿšซ Force a direct connection, ignoring ambient HTTP_PROXY/ALL_PROXY
export VULTR_PROXY="direct"

Handy with ssh -D 1080 bastion when the Vultr API is only reachable from an allowlisted network.

Value

Effect

socks5://host:port

SOCKS5, DNS resolved locally

socks5h://host:port

SOCKS5, DNS resolved by the proxy

http://host:port / https://host:port

Standard HTTP proxy

direct, none, off

Connect directly and ignore ambient proxy variables

unset

Fall back to ALL_PROXY / HTTPS_PROXY / HTTP_PROXY / NO_PROXY

VULTR_PROXY takes precedence over the ambient variables, so you can proxy this package without touching the rest of your shell. Proxy credentials are redacted from logs.


โœจ What's New in v2.1.0

๐ŸŽ‰ MAJOR ENTERPRISE UPGRADE - Complete transformation with professional-grade features:

๐ŸŽจ Beautiful CLI Interface

  • Rich Tables: Professional colored tables with borders and status indicators

  • Branded Panels: Stunning server startup with custom panels and emojis

  • Loading Feedback: Spinners, progress bars, and real-time status updates

  • Error Styling: Graceful error handling with contextual formatting

๐Ÿ“Š Performance Monitoring

  • Real-time Metrics: P95/P99 response times, cache hit rates, error tracking

  • Intelligent Caching: TTL-based caching with 85%+ hit rates for faster responses

  • System Monitoring: CPU, memory, network, and disk I/O tracking

  • Performance Tables: Beautiful metrics visualization with trend analysis

๐Ÿ“ Structured Logging

  • Context-Rich Logs: Service tags, request timing, and correlation IDs

  • Debug Tracing: Full API call tracing with request/response details

  • Error Tracking: Retry attempts, failure analysis, and recovery metrics

  • JSON Support: Machine-readable logs for log aggregation systems

๐Ÿ›ก๏ธ Enterprise Reliability

  • Exponential Backoff: Smart retry logic with jitter to prevent thundering herd

  • Network Resilience: Timeout protection and connection pooling

  • Error Recovery: Graceful degradation and automatic failover

  • Rate Limit Handling: Intelligent backoff when approaching API limits

๐Ÿ”’ Security & Quality

  • Pre-commit Hooks: Automated code quality checks on every commit

  • Security Scanning: Bandit security analysis and vulnerability detection

  • Dependency Management: Automated updates with Dependabot

  • Modern Tooling: Lightning-fast Ruff linting with comprehensive rule sets


๐Ÿ’ก Examples

๐Ÿ—ฃ๏ธ Natural Language Commands

๐Ÿง‘โ€๐Ÿ’ป "Create a web server instance called 'my-website' in New Jersey"
๐Ÿค– โœ… Created instance 'my-website' (Ubuntu 22.04, 1GB RAM) in ewr region

๐Ÿง‘โ€๐Ÿ’ป "Add a DNS record for blog.example.com pointing to my-website"  
๐Ÿค– โœ… Added A record: blog.example.com โ†’ 192.168.1.100 (TTL: 300)

๐Ÿง‘โ€๐Ÿ’ป "Scale my Kubernetes cluster to 5 nodes"
๐Ÿค– โœ… Scaled cluster 'production' node pool to 5 nodes

๐Ÿง‘โ€๐Ÿ’ป "Show me this month's billing breakdown by service"
๐Ÿค– ๐Ÿ“Š Monthly costs: Instances $45, Kubernetes $120, Storage $23...

๐Ÿ Python API

import asyncio
from mcp_vultr import VultrDNSClient, VultrDNSServer

async def deploy_website():
    """๐Ÿš€ Deploy a complete website infrastructure"""
    
    # High-level DNS client
    dns = VultrDNSClient("your-api-key")
    
    # Full API client with smart identifiers
    vultr = VultrDNSServer("your-api-key")
    
    # ๐ŸŒ Create domain and DNS records
    await dns.create_domain("mysite.com", "192.168.1.100") 
    await dns.add_a_record("mysite.com", "www", "192.168.1.100")
    await dns.add_mx_record("mysite.com", "@", "mail.mysite.com", 10)
    
    # ๐Ÿ–ฅ๏ธ Deploy instance with smart naming
    instance = await vultr.create_instance(
        region="ewr",
        plan="vc2-1c-1gb", 
        os_id=387,
        label="web-server",  # ๐Ÿท๏ธ Human-readable name!
        hostname="web.mysite.com"
    )
    
    # ๐Ÿ”ฅ Configure firewall by description
    firewall = await vultr.get_firewall_group("web-servers")
    
    # ๐Ÿ“Š Get real-time metrics
    stats = await vultr.get_instance_bandwidth("web-server")  # By name!
    
    print(f"โœ… Deployed {instance['label']} with {stats['incoming']}GB traffic")

asyncio.run(deploy_website())

๐Ÿ–ฅ๏ธ Enterprise CLI Experience

โœจ Beautiful Rich Interface with Professional Tables

# ๐ŸŒˆ Stunning domain overview with colors and status indicators
$ mcp-vultr domains list

                    Vultr DNS Domains (49 found)                     
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Domain                  โ”ƒ Created                   โ”ƒ DNSSEC      โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ api.mycompany.com       โ”‚ 2024-01-15T10:30:00+00:00 โ”‚ โœ… enabled  โ”‚
โ”‚ webapp.io               โ”‚ 2024-03-22T14:20:00+00:00 โ”‚ โŒ disabled โ”‚
โ”‚ blog.example.com        โ”‚ 2024-07-10T09:15:00+00:00 โ”‚ โœ… enabled  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

# ๐Ÿš€ Professional server startup with branded panels
$ mcp-vultr server
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Vultr MCP Server โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ ๐Ÿš€ Starting Vultr DNS MCP Server                                             โ”‚
โ”‚ ๐Ÿ”‘ API Key: your-key-abc123...                                               โ”‚
โ”‚ ๐Ÿ”„ Press Ctrl+C to stop                                                      โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

# ๐Ÿ—๏ธ Infrastructure management with smart names  
mcp-vultr instances create --label "api-server" --region ewr --plan vc2-2c-4gb
mcp-vultr instances start api-server                    # Start by name!
mcp-vultr instances attach-volume api-server db-storage # Attach by names!

# ๐ŸŒ DNS management with real-time feedback
mcp-vultr domains create api.mycompany.com 192.168.1.200
mcp-vultr records add api.mycompany.com A @ 192.168.1.200
mcp-vultr setup-website api.mycompany.com 192.168.1.200 --ssl

# ๐Ÿณ Kubernetes cluster management  
mcp-vultr k8s create production-cluster --region ewr --nodes 3
mcp-vultr k8s scale production-cluster --nodes 5       # Scale by name!
mcp-vultr k8s get-costs production-cluster             # Cost analysis!

๐Ÿ“Š Real-time Performance Monitoring & Structured Logging

# ๐Ÿ“ˆ Live performance metrics and cache statistics
[info] API request completed    method=GET response_time=0.63s status_code=200
[debug] Cache set              cache_type=TTLCache endpoint=/domains hit_rate=85.2%
[debug] API call recorded      cache_hit=False duration=0.63s success=True

# ๐Ÿ“Š Beautiful performance tables with P95/P99 metrics
                         API Performance Metrics                         
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Endpoint      โ”ƒ Requests โ”ƒ Avg Time โ”ƒ    P95 โ”ƒ Cache Hit โ”ƒ Error Rate โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ GET /domains  โ”‚    1,247 โ”‚   0.234s โ”‚ 0.456s โ”‚     85.2% โ”‚       0.1% โ”‚
โ”‚ GET /records  โ”‚    3,891 โ”‚   0.189s โ”‚ 0.312s โ”‚     92.1% โ”‚       0.3% โ”‚
โ”‚ POST /records โ”‚      456 โ”‚   0.567s โ”‚ 1.234s โ”‚      0.0% โ”‚       2.1% โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐ŸŽฏ Smart Identifier Resolution

Stop wrestling with UUIDs! Vultr MCP's killer feature is smart identifier resolution - use human-readable names instead of cryptic UUIDs across all services.

๐Ÿท๏ธ Before vs After

# ๐Ÿ˜ค The old way (UUIDs everywhere)
vultr instance stop 00000000-0000-0000-0000-000000000001
vultr firewall rule add 00000000-0000-0000-0000-000000000002 --port 443

# ๐ŸŽ‰ The Vultr MCP way (human names!)
mcp-vultr instances stop web-server  
mcp-vultr firewall rules add web-servers --port 443

๐Ÿง  Smart Resolution Across All Services

Service

Smart Identifier

Example

๐Ÿ–ฅ๏ธ Instances

label, hostname

web-server, api.company.com

๐Ÿ”‘ SSH Keys

name

laptop-key, ci-deploy-key

๐Ÿ”ฅ Firewall Groups

description

web-servers, database-tier

๐Ÿ“ธ Snapshots

description

backup-2024-01, pre-upgrade

๐ŸŒ Reserved IPs

IP address

192.168.1.100

๐Ÿณ Container Registries

name

my-app-registry

๐Ÿ’พ Block Storage

label

database-storage

๐ŸŒ VPCs

description

production-network

๐Ÿ“œ Startup Scripts

name

docker-setup

๐Ÿ–ฅ๏ธ Bare Metal

label, hostname

db-server-01

๐ŸŒ CDN Zones

Origin/CDN domain

cdn.mysite.com

โ˜ธ๏ธ Kubernetes

name, label

prod-cluster

โš–๏ธ Load Balancers

name, label

api-lb

๐Ÿ—„๏ธ Databases

name, label

postgres-main

๐Ÿ’Ž Object Storage

name, label

media-bucket

๐Ÿš€ Inference Services

name, label

ml-api

๐Ÿšช Storage Gateways

name, label

file-gateway

๐Ÿ‘ฅ Subaccounts

name, email

dev-team

๐Ÿ‘ค Users

Email address

admin@company.com


๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        ๐Ÿค– AI Assistant                          โ”‚
โ”‚                     (Claude Code/Desktop)                       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                           โ”‚ Natural Language Commands
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                   ๐Ÿ“ก Vultr MCP Server                           โ”‚
โ”‚                      (335+ Tools)                               โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  ๐ŸŒ DNS  ๐Ÿ–ฅ๏ธ Compute  ๐Ÿณ K8s  ๐Ÿ—„๏ธ DB  ๐Ÿ”ฅ Security  ๐Ÿ’พ Storage    โ”‚
โ”‚  ๐Ÿ“Š Analytics  ๐ŸŒ CDN  โš–๏ธ LB  ๐Ÿš€ Serverless  ๐Ÿ‘ฅ Users          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                           โ”‚ Smart API Calls
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      โ˜๏ธ Vultr Cloud API                         โ”‚
โ”‚              (Complete Infrastructure Management)                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“– Documentation

๐Ÿš€ Getting Started

๐Ÿ“š API Reference

๐ŸŽ“ Tutorials & Examples


๐Ÿ› ๏ธ Development

๐Ÿƒโ€โ™‚๏ธ Quick Setup

# ๐Ÿ“ฅ Clone the repository
git clone https://git.supported.systems/MCP/mcp-vultr.git
cd mcp-vultr

# โšก Install with uv (recommended)
uv sync --extra dev

# ๐Ÿงช Run tests (multiple performance modes)
make test-fast          # โšก Quick tests (30-60s)
make test-parallel      # ๐Ÿš€ Parallel execution (60-120s) 
make test-coverage      # ๐Ÿ“Š Full coverage (180-300s)

# ๐ŸŽฏ Targeted testing
make test-unit          # Unit tests only
make test-mcp           # MCP server tests
make test-error         # Error handling tests

# ๐Ÿ“ˆ Performance monitoring
python test_performance_benchmark.py

# ๐ŸŽจ Format code  
uv run black src tests && uv run isort src tests

# ๐Ÿ” Type checking
uv run mypy src

๐Ÿ“ฆ Build & Publish

# ๐Ÿ—๏ธ Build package
uv build

# โœ… Check integrity
uv run twine check dist/*

# ๐Ÿš€ Publish to PyPI
uv run twine upload dist/*

๐Ÿค Contributing

We โค๏ธ contributions! Whether it's:

  • ๐Ÿ› Bug Reports: Found an issue? Let us know!

  • โœจ Feature Requests: Have ideas? We want to hear them!

  • ๐Ÿ“ Documentation: Help make our docs even better

  • ๐Ÿงช Testing: Add tests, improve coverage

  • ๐Ÿ’ป Code: Submit PRs for new features or fixes

๐Ÿš€ How to Contribute

  1. ๐Ÿด Fork the repository

  2. ๐ŸŒฟ Create a feature branch (git checkout -b feature/amazing-feature)

  3. โœ๏ธ Make your changes

  4. โœ… Test everything (make test-parallel or make test-coverage)

  5. ๐Ÿ“ Commit your changes (git commit -m 'Add amazing feature')

  6. ๐Ÿ“ค Push to the branch (git push origin feature/amazing-feature)

  7. ๐ŸŽ‰ Open a Pull Request


๐Ÿ“Š Project Stats

Metric

Value

๐Ÿ› ๏ธ MCP Tools

335+

๐Ÿ“ฆ Service Modules

27

๐Ÿ Python Support

3.10+

๐Ÿ“ˆ Test Coverage

90%+

๐Ÿ“š Documentation

Comprehensive

โšก Performance

Production Ready


๐Ÿ™ Acknowledgments

  • ๐ŸŒฉ๏ธ Vultr for their comprehensive cloud API

  • ๐Ÿค– Anthropic for the Model Context Protocol specification

  • ๐Ÿ Python Community for amazing tools and libraries

  • ๐Ÿš€ FastMCP for the excellent MCP framework

  • ๐Ÿ‘ฅ Contributors who make this project amazing


๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


โญ Star us on GitLab if you find Vultr MCP useful!

Made with โค๏ธ for the cloud infrastructure community

๐Ÿš€ Get Started โ€ข ๐Ÿ“– Documentation โ€ข ๐Ÿ› Report Issues โ€ข ๐Ÿ’ฌ Discussions

Available Tools

316 tools
bare_metal_create_bare_metal_serverC

Create a new bare metal server.

Args: region: Region to deploy in plan: Bare metal plan ID os_id: Operating system ID iso_id: ISO ID for custom installation script_id: Startup script ID ssh_key_ids: List of SSH key IDs label: Server label tag: Server tag user_data: Cloud-init user data enable_ipv6: Enable IPv6 enable_private_network: Enable private network attach_private_network: Private network IDs to attach attach_vpc: VPC IDs to attach attach_vpc2: VPC 2.0 IDs to attach enable_ddos_protection: Enable DDoS protection hostname: Server hostname persistent_pxe: Enable persistent PXE

Returns: Created bare metal server details

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
planYes
labelNo
os_idNo
iso_idNo
regionYes
hostnameNo
script_idNo
user_dataNo
attach_vpcNo
attach_vpc2No
enable_ipv6No
ssh_key_idsNo
persistent_pxeNo
attach_private_networkNo
enable_ddos_protectionNo
enable_private_networkNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the tool creates a server and returns details, but doesn't disclose important behavioral traits like whether this is a long-running operation, whether it incurs costs, whether it requires prior setup (e.g., SSH keys, OS selection), or what happens on failure. The 'Returns' line is minimal and doesn't describe the response structure 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.

Conciseness3/5

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

The description is structured as a docstring with Args and Returns sections, which is readable and front-loaded with the purpose. However, the parameter list is long and repetitive, and the Returns section is a single vague line. It's not overly verbose, but it could be more concise by grouping related parameters or removing obvious ones.

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?

With 17 parameters, 0% schema coverage, no annotations, and an output schema present, the description is incomplete. It doesn't explain which parameters are required beyond the schema (region, plan), doesn't clarify optional parameter interactions, and doesn't describe the return value structure. The output schema exists but the description doesn't reference it or summarize what the created server details include.

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 lists all 17 parameters with one-line labels, which is helpful, but it doesn't explain relationships (e.g., os_id vs iso_id mutual exclusivity, attach_vpc vs attach_vpc2 differences, or how user_data relates to cloud-init). The labels are terse and don't add meaning beyond the parameter names themselves.

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

Purpose4/5

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

The description clearly states the tool creates a new bare metal server, which is a specific verb and resource. It distinguishes from siblings like bare_metal_update_bare_metal_server and bare_metal_delete_bare_metal_server by the create action, though it doesn't explicitly differentiate from instance_create or other create 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 to use this tool versus alternatives like instance_create or bare_metal_list_bare_metal_servers. It doesn't mention prerequisites, required permissions, or scenarios where this tool is preferred. The only context is the parameter list, which implies usage but doesn't state it.

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

bare_metal_delete_bare_metal_serverA

Delete a bare metal server. Smart identifier resolution: use server label, hostname, or UUID.

Args: server_identifier: The bare metal server label, hostname, or ID to delete

Returns: Success message

ParametersJSON Schema
NameRequiredDescriptionDefault
server_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the disclosure burden. It discloses the destructive action and the 'smart identifier resolution' behavior, which is useful. However, it does not state irreversibility, prerequisites, or what happens to associated resources, leaving some behavioral gaps for a deletion operation.

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 compact and front-loaded with the main action, followed by a useful identifier-resolution note and a clear Args/Returns structure. It is slightly padded by the return line, but overall 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 single-parameter delete tool with an output schema present, the description covers the core action and parameter semantics. It lacks notes on error behavior or destructive consequences, but given the tool's simplicity, it is sufficiently complete for an agent to invoke it correctly.

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

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 compensate. It does so well by explaining that server_identifier accepts a label, hostname, or UUID, adding meaningful information beyond the bare 'type: string' 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 clearly states the action ('Delete a bare metal server') with a specific verb and resource. It doesn't explicitly differentiate from sibling tools, but the name and scope are unambiguous, so an agent can identify what this tool does.

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: use this tool when you want to delete a bare metal server. There are no explicit when-to-use vs. alternative statements, exclusions, or prerequisites, but the operation is self-contained and there is no competing bare-metal delete sibling.

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

bare_metal_get_bare_metal_bandwidthA

Get bandwidth usage for a bare metal server. Smart identifier resolution: use server label, hostname, or UUID.

Args: server_identifier: The bare metal server label, hostname, or ID

Returns: Bandwidth usage information

ParametersJSON Schema
NameRequiredDescriptionDefault
server_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It adds useful context by explaining "Smart identifier resolution" and listing accepted identifier types (label, hostname, UUID), and it notes that the return value is bandwidth usage information. However, it does not disclose units, time ranges, authentication needs, or any side effects, though "Get" implies a read-only operation.

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 with the core action, followed by identifier resolution guidance and a Returns section. There is minor redundancy between the opening sentence and the Returns section, but overall every element 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 one-parameter read-style tool with an output schema present, the description covers the essential operational knowledge: what the tool does, what identifier forms are accepted, and what kind of result to expect. It does not describe bandwidth measurement period or units, but the output schema can carry that detail.

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

Parameters5/5

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

The schema only says server_identifier is a string, but the description adds rich meaning: it can be a server label, hostname, UUID, or ID. This directly compensates for the 0% schema description coverage and gives an agent enough information to supply a valid 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 states a specific verb and resource: "Get bandwidth usage for a bare metal server." It is clear enough to be distinguished from sibling tools like bare_metal_get_bare_metal_server or instance_get_bandwidth, though it does not explicitly name those alternatives. The additional detail about smart identifier resolution adds specificity without muddying the core 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?

No guidance is provided about when to use this tool versus alternatives such as instance_get_bandwidth or bare_metal_get_bare_metal_server. The description explains what identifiers can be passed, but not the conditions that would make this tool the right choice over its siblings.

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

bare_metal_get_bare_metal_neighborsA

Get neighbors (other servers on same physical host) for a bare metal server. Smart identifier resolution: use server label, hostname, or UUID.

Args: server_identifier: The bare metal server label, hostname, or ID

Returns: List of neighboring servers

ParametersJSON Schema
NameRequiredDescriptionDefault
server_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are present, so the description carries the full burden. It explicitly identifies the operation as non-mutating ('Get' and 'Returns'), clarifies available identifier forms ('server label, hostname, or UUID'), and describes the output shape. It does not mention error conditions or authorization, but for a simple read operation this is acceptable.

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 tightly formatted: a one-sentence purpose, a note on identifier resolution, an Args section, and a Returns section. No filler or redundancy. Every sentence adds useful 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 single-parameter read tool with output schema, the description covers the action, accepted parameter forms, and the nature of the return value. It does not state what happens on invalid/unknown identifiers or whether authentication is required, but these are minor gaps given the simplicity of the 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 description coverage is 0%, but the description compensates by explaining that server_identifier accepts a label, hostname, or UUID/ID, giving the agent concrete valid input types. This goes well beyond the bare 'string' type in the schema, though it lacks format examples or validation rules.

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?

Description states a specific verb ('Get'), a clear resource ('neighbors ... for a bare metal server'), and defines the concept immediately ('other servers on same physical host'). It is distinct from sibling tools like bare_metal_get_bare_metal_server or bare_metal_list_bare_metal_servers because it specifically targets physical-host neighbors.

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 purpose implies when to use it: when a user needs servers sharing the same physical host as a given bare metal server. It does not explicitly mention alternative tools or exclusions, but the specialized scope is clear enough to route an agent correctly among the bare_metal sibling set.

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

bare_metal_get_bare_metal_planC

Get details of a specific bare metal plan.

Args: plan_id: The plan ID

Returns: Bare metal plan details

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Get details' and 'Returns: Bare metal plan details', which is minimal. It does not mention whether the operation is read-only, requires specific permissions, or has any 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 description is very short and front-loaded with its purpose, with no unnecessary words. However, it is too terse to be genuinely helpful, sacrificing essential detail for brevity.

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 getter with an output schema, the description is incomplete. It does not explain what 'details' includes, how to find the plan_id, or why to choose this over the many related plan tools. Given the rich sibling context, more guidance is expected.

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 description repeats 'plan_id: The plan ID' which adds nothing beyond the input schema. With 0% schema description coverage, the description should compensate by explaining the format, source, or constraints of the plan ID, 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?

The description clearly states the tool retrieves details of a specific bare metal plan, using a specific verb ('Get') and resource. However, it does not explicitly distinguish itself from similar tools like plan_get_plan or bare_metal_list_bare_metal_plans, so it lacks 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 Guidelines2/5

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

No guidance is provided on when to use this tool versus listing or searching plans. It does not mention alternatives or any prerequisites, such as how to obtain the plan_id.

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

bare_metal_get_bare_metal_serverA

Get details of a specific bare metal server. Smart identifier resolution: use server label, hostname, or UUID.

Args: server_identifier: The bare metal server label, hostname, or ID

Returns: Bare metal server details

ParametersJSON Schema
NameRequiredDescriptionDefault
server_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must carry the burden of behavioral disclosure. It clearly indicates a read operation ('Get details'), which implies non-destructive behavior, but it does not explicitly state that it is read-only, nor does it mention any other behavioral traits like authentication, rate limits, or failure modes. It stays at the obvious level.

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 compact (three sentences), front-loads the main purpose, and cleanly separates Args and Returns. Every sentence earns its place with no fluff. It is structured for quick scanning.

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 get-by-identifier tool, the description covers the essential usage. Since an output schema is present, the return format is already defined, so the description isn't required to explain it. The identifier resolution guidance rounds out the context. The only minor gap is the lack of explicit differentiation from similar 'get' siblings, which is partially covered by purpose clarity.

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 schema provides only the type (string) for server_identifier with zero description coverage. The description compensates by explaining the accepted formats: label, hostname, or ID. This goes beyond the schema and tells the agent how to construct valid identifiers, adding meaningful value.

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 'Get details of a specific bare metal server', which is a clear verb+resource combination. It distinguishes itself from sibling list and summary tools by specifying 'specific' and 'details', making its 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 Guidelines3/5

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

It provides guidance on identifier resolution ('use server label, hostname, or UUID'), which is useful. However, it does not explicitly mention when to use this tool instead of alternatives like bare_metal_get_bare_metal_server_summary or bare_metal_get_bare_metal_bandwidth. The context implies the distinction but doesn't state it.

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

bare_metal_get_bare_metal_server_summaryA

Get a comprehensive summary of a bare metal server. Smart identifier resolution: use server label, hostname, or UUID.

Args: server_identifier: The bare metal server label, hostname, or ID

Returns: Comprehensive server summary including status, specs, and usage

ParametersJSON Schema
NameRequiredDescriptionDefault
server_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It conveys that the tool is a read-like get operation, resolves identifiers via label/hostname/UUID, and returns a summary, which is modestly useful. However, it does not explicitly state side effects or lack thereof, permissions or authentication expectations, error behavior, or ambiguity handling, leaving gaps for a tool with no 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 description is compact and front-loaded with the main action, and the Args/Returns format is easy to scan. It is slightly redundant because 'Smart identifier resolution: use server label, hostname, or UUID' is repeated in a different form under Args ('label, hostname, or ID'), but the overall size is appropriate.

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

Completeness3/5

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

The description covers the required parameter and gives a sense of the output content, and the presence of an output schema reduces the need to describe return format. It is not fully complete contextually because it fails to distinguish itself from the closely named sibling bare_metal_get_bare_metal_server or note when a user should prefer one type of full details instead of a summary.

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 input schema only defines server_identifier as an unadorned string, with 0% schema description coverage. The description adds meaningful semantics by saying the parameter can be a server label, hostname, or UUID/ID, which is essential for correct invocation. It loses a point because of a minor inconsistency: the description mentions 'UUID' in one place and 'ID' in another, and it does not detail resolution conflicts.

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 verb and resource: 'Get a comprehensive summary of a bare metal server.' It also specifies the content of that summary (status, specs, and usage). However, it does not explicitly differentiate itself from the similarly named sibling tool bare_metal_get_bare_metal_server, so an agent may still be uncertain which tool to select.

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 'Smart identifier resolution' note provides useful usage guidance: the tool accepts a label, hostname, or UUID, so an agent does not need to look up an ID first. There is no explicit guidance about when to choose this tool over the sibling bare_metal_get_bare_metal_server, bare_metal_get_bare_metal_bandwidth, or other bare-metal tools, so the guidance remains 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.

bare_metal_get_bare_metal_user_dataA

Get user data for a bare metal server. Smart identifier resolution: use server label, hostname, or UUID.

Args: server_identifier: The bare metal server label, hostname, or ID

Returns: User data information

ParametersJSON Schema
NameRequiredDescriptionDefault
server_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It adds the identifier-resolution behavior (label, hostname, or UUID), which is useful, but it does not disclose side-effect profile, error behavior, or what happens on invalid identifiers. The vague 'Returns: User data information' adds little.

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, front-loaded with the main purpose, and every section serves a purpose. The 'Returns: User data information' line is somewhat redundant with the first sentence and the existing output schema, but overall there is no wasted fluff.

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 read operation with an output schema, the description is minimally adequate: it states the resource, explains the parameter, and notes the return type. However, it lacks explicit differentiation from sibling bare-metal getters and provides limited behavioral or safety context, which is a gap given there are no annotations.

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

Parameters5/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 for the undocumented server_identifier parameter. It does so fully by explicitly listing accepted identifier forms: server label, hostname, or UUID. This adds real meaning beyond the raw string type 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 ('Get') and resource ('user data for a bare metal server'), making the tool's function immediately obvious. This clearly differentiates it from sibling tools like bare_metal_get_bare_metal_server and bare_metal_get_bare_metal_server_summary, which target different data.

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 implicitly clear: use this when you need user data for a bare metal server. However, the description does not explicitly say when to use this tool versus alternatives such as get_bare_metal_server or get_bare_metal_server_summary, nor does it mention exclusions.

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

bare_metal_list_bare_metal_plansC

List available bare metal plans.

Args: plan_type: Optional plan type filter

Returns: List of bare metal plans

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior1/5

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

With no annotations provided, the description must fully disclose behavioral traits. It only says 'List available bare metal plans' and 'Returns: List of bare metal plans,' which merely restates the function name and expected return without mentioning pagination, authentication, rate limiting, sorting, or any side effects. This adds no value beyond what the name implies.

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 concise, with a clear front-loaded purpose statement and a structured Args/Returns section. However, it is under-specified; the sentences are essentially tautological to the name and schema, providing little new information. It is efficient in length but lacks substantive 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?

Although an output schema exists (so return format is covered) and the tool is simple (one optional parameter), the description misses critical context: it does not differentiate from bare_metal_search_bare_metal_plans, does not explain what 'plan_type' values are acceptable, and never mentions any behavioral aspects. Given the rich sibling set and lack of annotations, this is incomplete for confident use.

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 input schema has 0% description coverage, so the description must compensate for undefined parameters. It explains plan_type as 'Optional plan type filter,' which is a minimal semantic improvement, but it does not specify allowed values, how filtering behaves, or the format of the filter. This slight clarification earns a 2, but it falls short of adequately describing 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 states a specific action and resource: 'List available bare metal plans.' It is clear and distinct from sibling tools like bare_metal_search_bare_metal_plans because 'list' indicates a broad enumeration whereas 'search' implies criteria. However, it does not explicitly contrast with similar plan-listing tools (e.g., plan_list_plans), so it relies on the name for differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as bare_metal_search_bare_metal_plans, plan_list_plans, or other filtered listers. It neither states the intended use case nor mentions exclusions or when not to use it, leaving the agent to infer context from the name alone.

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

bare_metal_list_bare_metal_serversA

List all bare metal servers.

Returns: List of bare metal servers with details

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

The description states a return behavior ('List of bare metal servers with details') and the verb 'List' implies a read-only operation. With no annotations provided, it adds little beyond this: no mention of pagination, authorization, or side-effect guarantees, but for a zero-parameter list tool the burden is modest.

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 compact and front-loaded. The first sentence states the action and scope; the second adds return-shape detail. There is no filler, and the structure is easily scannable.

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 listing operation with an output schema, 'List all bare metal servers' plus the return note is essentially complete. The only missing context is explicit guidance on sibling filter/list tools, which is already penalized in usage guidelines.

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, so the schema fully defines the input surface and the description needs no parameter explanation. Per the scoring convention for zero-parameter tools, this is a strong 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 uses a specific verb and resource: 'List all bare metal servers.' The 'all' makes scope explicit, but it does not explicitly distinguish this from sibling tools like bare_metal_list_bare_metal_servers_by_status or bare_metal_list_bare_metal_servers_by_region; the distinction is left to the name.

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

Usage Guidelines3/5

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

The word 'all' implies this is the unfiltered list variant, giving a minimal usage context. However, it does not name alternatives such as the by-status or by-region list tools, nor does it state when to prefer those over this one.

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

bare_metal_list_bare_metal_servers_by_regionA

List bare metal servers in a specific region.

Args: region: Region code (e.g., 'ewr', 'lax')

Returns: List of bare metal servers in the specified region

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

There are no annotations, so the description carries the burden of behavioral disclosure. It does state the operation is a list and that it returns a list of servers, which implies a read-only action. It does not mention pagination, ordering, failure behavior, or that only servers in the given region are returned, but for a simple list operation this is minimally adequate.

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, front-loaded with the core purpose, and uses a clear Args/Returns structure. The Returns section largely restates the first sentence, creating minor redundancy, but nothing is bloated or off-topic.

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 a single required parameter and an output schema present, the description is mostly sufficient for calling the tool correctly. It provides the region argument and what is returned, but it lacks any guidance about choosing this tool over sibling listing tools or about region code validation.

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%, but the description compensates by defining the sole parameter: 'Region code (e.g., 'ewr', 'lax')'. It adds practical meaning and examples beyond the bare schema property, though it could go further with a fuller list of valid region codes or a pointer to the regions 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 clearly states the action ('List') and resource ('bare metal servers') with a region scoping criterion, and it gives the region parameter meaning. It does not explicitly differentiate from sibling tools like bare_metal_list_bare_metal_servers or bare_metal_list_bare_metal_servers_by_status, so it misses the top score for 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 phrase 'in a specific region' implies the tool is for region-scoped listing, and the required region argument reinforces this. However, the description never explicitly says when not to use it or names alternatives such as bare_metal_list_bare_metal_servers for unfiltered listing.

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

bare_metal_list_bare_metal_servers_by_statusB

List bare metal servers by status.

Args: status: Server status to filter by (e.g., 'active', 'stopped', 'installing')

Returns: List of bare metal servers with the specified status

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it lists servers, which is a read operation, but does not mention whether it's read-only, any side effects, rate limits, or details like pagination, sorting, or return field scope. It is minimal and leaves many behavioral aspects undisclosed.

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 concise, with a clear structure: a one-line summary followed by Args and Returns sections. Every sentence serves a purpose, and the most critical information (what it does) is front-loaded. There is no redundancy or filler.

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 the tool's simplicity (one parameter, no nested objects), the description covers the essentials. The output schema is present (though not detailed in the prompt), and the description states it returns a list. However, it lacks details on pagination, maximum results, or any filters beyond status. For a simple filter tool, this is acceptable but not exhaustive, especially given the lack 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?

The schema provides only a string type with 0% description coverage, so the description must compensate. It does so effectively by explaining the parameter's meaning and giving concrete examples ('active', 'stopped', 'installing'). This adds significant value beyond the schema, clarifying what statuses are acceptable, though it doesn't specify case sensitivity or exact match behavior.

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

Purpose4/5

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

The description clearly states the action (list) and resource (bare metal servers) with a specific filter (by status). It distinguishes from the general list tool by emphasizing the status filter, though it doesn't explicitly name sibling tools. The purpose is unambiguous and easy to grasp.

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: when you need to list servers filtered by status. However, it does not explicitly state when to use this tool over alternatives like bare_metal_list_bare_metal_servers or bare_metal_list_bare_metal_servers_by_region, nor does it provide any exclusion criteria. The context is clear from the name but no explicit guidance is given.

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

bare_metal_reboot_bare_metal_serverA

Reboot a bare metal server. Smart identifier resolution: use server label, hostname, or UUID.

Args: server_identifier: The bare metal server label, hostname, or ID

Returns: Success message

ParametersJSON Schema
NameRequiredDescriptionDefault
server_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are present, so the description must carry the burden of behavioral disclosure. 'Reboot' implies a destructive/hard action that will stop and start the server, potentially causing downtime seriously. The description does not mention any side effects like data loss risk, downtime, or auth requirements. It also doesn't clarify if this is a graceful or forced reboot, which is important for an agent to assess impact.

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 conciseโ€”three short sentences, each carrying information. It fronts the main action, then the smart identifier resolution, and includes an args/returns structure. Every sentence earns its place without excess fluff.

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 the tool's simplicity (one parameter, no nested objects, has output schema), the description covers the essence. However, it lacks behavioral context such as whether the reboot is graceful or hard, potential downtime, or any prerequisites. With no annotations and an output schema present, the description is complete enough for basic use but leaves an agent without awareness of side effects or confirmation process.

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 schema description coverage is 0% for the single parameter 'server_identifier', so the description must compensate. The description explicitly explains that the parameter accepts a label, hostname, or ID, providing valuable semantics beyond the schema's bare 'string' type. This is a key addition for correct usage.

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

Purpose4/5

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

The description clearly states the action 'Reboot' and the resource 'bare metal server', and mentions smart identifier resolution which adds specificity. It distinguishes from siblings like bare_metal_start and bare_metal_stop by using 'reboot', but doesn't explicitly differentiate from bare_metal_reinstall, though the meaning is clear enough.

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

Usage Guidelines4/5

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

The description provides context on when to use this tool: when needing to reboot a bare metal server Seek is a candidate for. It also notes smart identifier resolution, which guides the user on acceptable identifier formats)Skip. However, it doesn't explicitly state when not to use it (e.g., for a full reinstall vs reboot) or mention alternatives, though the sibling list shows similar tools.

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

bare_metal_reinstall_bare_metal_serverB

Reinstall a bare metal server. Smart identifier resolution: use server label, hostname, or UUID.

Args: server_identifier: The bare metal server label, hostname, or ID hostname: New hostname for the server

Returns: Reinstall operation details

ParametersJSON Schema
NameRequiredDescriptionDefault
hostnameNo
server_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It says 'Reinstall' which implies a destructive operation, but it doesn't disclose that reinstalling will likely wipe data, require confirmation, or have irreversible effects. It also doesn't mention any prerequisites or side effects. The 'Returns' section is minimal and doesn't explain the operation's impact.

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 concise and front-loaded with the main action. The Args and Returns sections are clearly structured. It doesn't waste words, though it could add a bit more behavioral context without becoming verbose.

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 it's a destructive operation with no annotations, the description is incomplete. It doesn't mention that reinstalling will likely erase existing data, require an OS image, or have long-running implications. The output schema exists but the description doesn't explain what 'Reinstall operation details' means. For a destructive tool, more context is needed.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It does explain server_identifier as 'The bare metal server label, hostname, or ID' and hostname as 'New hostname for the server', which adds meaning beyond the raw schema. However, it doesn't clarify whether hostname is optional or what happens if omitted, though the schema shows default null. The description adds some value but not comprehensive.

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: 'Reinstall a bare metal server.' It also mentions smart identifier resolution, which adds clarity. However, it doesn't explicitly distinguish from sibling tools like bare_metal_reboot_bare_metal_server or instance_reinstall, though the resource and action are clear enough.

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 stating the action and parameters, but it doesn't explicitly say when to use this tool versus alternatives like bare_metal_reboot_bare_metal_server or bare_metal_update_bare_metal_server. It mentions smart identifier resolution, which is a usage hint, but no explicit 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.

bare_metal_search_bare_metal_plansA

Search bare metal plans by specifications.

Args: min_vcpus: Minimum number of vCPUs min_ram: Minimum RAM in GB min_disk: Minimum disk space in GB max_monthly_cost: Maximum monthly cost in USD

Returns: List of plans matching the criteria

ParametersJSON Schema
NameRequiredDescriptionDefault
min_ramNo
min_diskNo
min_vcpusNo
max_monthly_costNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It states that the tool returns a list of matching plans, which implies a read-only search. However, it does not explain whether filters are combined, whether all filters are optional, or what happens when no criteria are provided.

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 compact and well-structured: a one-line summary, a bullet-style Args list, and a Returns line. Every sentence earns its place, and the main purpose 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 low-complexity search tool with an output schema present, this description is reasonably complete: it names the resource, the filter parameters, their units, and the return type. It could be improved by clarifying optionality and filter combination behavior, but those are partially inferable from the schema.

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. It does so by defining all four parameters and adding meaningful units: vCPUs, RAM in GB, disk in GB, and cost in USD. It does not explicitly note that all parameters are optional, though the schema's null defaults convey that.

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

Purpose4/5

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

The description uses a specific verb and resource: 'Search bare metal plans by specifications.' It clearly communicates the tool's function and the four filtering dimensions. However, it does not explicitly differentiate itself from similar siblings like bare_metal_list_bare_metal_plans or plan_search_plans_by_specs, so it falls just 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 phrase 'by specifications' implies this tool is for spec-based filtering rather than plain listing, but there is no explicit when-to-use guidance, no exclusions, and no mention of alternative tools such as list/get plan operations. Usage context is only implied.

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

bare_metal_start_bare_metal_serverA

Start a bare metal server. Smart identifier resolution: use server label, hostname, or UUID.

Args: server_identifier: The bare metal server label, hostname, or ID

Returns: Success message

ParametersJSON Schema
NameRequiredDescriptionDefault
server_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the identifier resolution behaviors (label, hostname, UUID) and that it returns a success message, but does not mention any side effects (e.g., billing starts, requires server to be stopped), provisioning time, or error conditions. This is minimal but not misleading.

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 concise (about 5 lines) and front-loads the main action ('Start a bare metal server.'). It includes an 'Args' section and 'Returns' section, which are clearly structuredUTE. No irrelevant filler; every sentence serves a purpose.

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

Completeness4/5

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

For a simple single-parameter tool with an output schema, the description is nearly complete. It specifies the parameter semantics and the return type (success message). However, it could benefit from noting prerequisites like that the server must exist and be in a stopped state, and potential side effects (e.g., billing implications). This 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?

The schema only defines the parameter as a string with no description, and schema coverage is 0%. The description adds critical semantics by explaining that the parameter accepts label, hostname, or UUID, and names it 'server_identifier'. This is a significant addition, but there are no other parameters to elaborate on. Baseline for 0 params would be 4, but with 1 parameter it's slightly lower because more detail could be given on accepted formats.

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 ('Start') and resource ('bare metal server'), and clarifies that it targets bare metal servers as opposed to standard instances (sibling instance_start). It also specifies identifier resolution methods, distinguishing it from other lifecycle operations (stop, reboot, delete).

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 clearly indicates when to use this tool: to start a bare metal server, with flexible identifier types. It implies usage context but does not explicitly contrast with sibling tools like instance_start or bare_metal_reboot; however, the resource name makes the distinction clear.

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

bare_metal_stop_bare_metal_serverA

Stop a bare metal server. Smart identifier resolution: use server label, hostname, or UUID.

Args: server_identifier: The bare metal server label, hostname, or ID

Returns: Success message

ParametersJSON Schema
NameRequiredDescriptionDefault
server_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must carry the full burden. It adds useful behavioral context by explaining smart identifier resolution (label, hostname, or UUID) and noting the return value. However, it does not disclose the side effects of stopping (e.g., state change, reversibility via start, potential billing impact) or any error conditions. For a state-changing operation, this 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.

Conciseness5/5

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

The description is compact and front-loaded: the core purpose is the first sentence, followed by the key identifier-resolution behavior. The Args/Returns block is minimal and adds no fluff. Every sentence earns its place.

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

Completeness4/5

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

For a simple one-parameter operation with an output schema present, the description covers the essential information: what the tool does, what the input means, and what the return value looks like. The only gaps are edge-case behavior (e.g., already-stopped server) and prerequisites, but these are minor given the low complexity.

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. It meaningfully expands on the bare 'string' type by specifying the parameter accepts a label, hostname, or UUID. This gives an agent concrete guidance on what values to provide. It stops short of examples or format constraints, but is otherwise strong.

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 the exact action ('Stop a bare metal server') with a specific verb and resource, and the additional 'smart identifier resolution' detail clearly sets it apart from sibling lifecycle operations like start, reboot, and delete. 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 Guidelines3/5

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

The description implies the tool is used to power down a bare metal server, which is a distinct lifecycle operation among siblings. However, it does not explicitly say when to choose stop over reboot or delete, nor does it mention prerequisites or exclusions. Usage context is clear but not fully articulated.

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

bare_metal_update_bare_metal_serverB

Update a bare metal server. Smart identifier resolution: use server label, hostname, or UUID.

Args: server_identifier: The bare metal server label, hostname, or ID label: New label tag: New tag user_data: New user data enable_ddos_protection: Enable/disable DDoS protection

Returns: Updated bare metal server details

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
labelNo
user_dataNo
server_identifierYes
enable_ddos_protectionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It does disclose that the tool supports smart identifier resolution (label, hostname, or UUID), which is useful behavioral context. However, it doesn't disclose whether the update is partial or full (e.g., whether omitted fields are reset to defaults), whether DDoS protection changes require a reboot, or any side effects. The 'Returns: Updated bare metal server details' line is helpful but minimal.

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 compact and front-loaded with the core purpose. The Args section is a clean list, and the Returns line is useful. It earns its place without excessive verbosity. Minor deduction for not adding any usage guidance or behavioral nuance that would make it more valuable.

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

Completeness3/5

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

The tool has 5 parameters, no annotations, and an output schema exists. The description covers the parameters and return value, but it lacks context about partial updates, idempotency, or state requirements. For a mutation tool with no annotations, an agent would benefit from knowing whether this is a PATCH-like partial update or a PUT-like full replacement, and whether any fields are mutually exclusive. The output schema exists, so return details are covered, but behavioral context is incomplete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It does list each parameter with a brief semantic ('New label', 'New tag', 'New user data', 'Enable/disable DDoS protection'), which adds meaning beyond the raw schema. However, it doesn't explain nuances like whether 'tag' is a single tag or list, what format user_data should be in, or whether enable_ddos_protection is a toggle that requires other parameters. The parameter list is present but shallow.

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 and resource: 'Update a bare metal server.' It also lists the updatable fields (label, tag, user_data, enable_ddos_protection), which distinguishes it from sibling operations like create, delete, start, stop, reboot, and reinstall. However, it doesn't explicitly differentiate from other update tools in the sibling list (e.g., instance_update, block_storage_update), though the resource name in the tool name and description makes that clear enough.

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 naming the resource and the fields that can be updated, but it does not explicitly state when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., server must exist, server must be in a certain state) or when not to use it. The smart identifier resolution note is helpful for usage, but there's no explicit routing to alternatives.

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

billing_get_account_infoB

Get account information including billing details.

Returns: Account information and billing details

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It simply restates that account info and billing details are returned. It does not explicitly state that this is a read-only operation with no side effects, nor does it mention any authentication/account context or rate limits. The header "Returns:" implies a read operation, but little else 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.

Conciseness3/5

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

The description is short but redundant: "Get account information including billing details" and "Returns: Account information and billing details" say essentially the same thing. It is frontloaded but the extra sentence adds no value. It could be trimmed to a single sentence without losing 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?

With no parameters and an existing output schema, the description's load is small, but it still fails to provide the broader context that could resolve ambiguity among sibling billing tools. It doesn't say whose account is returned (e.g., current authenticated account), whether billing detail covers balance or history, or how this tool relates to other billing read tools. This is adequate for a trivial tool, but not fully self-contained.

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 and schema description coverage is 100%, so there are no parameter semantics to add. With 0 parameters, the baseline is 4. The description does not need to explain any input fields, and none are 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 states a specific verb and resource: "Get account information including billing details." This clearly conveys what the tool does. The name already carries an explicit billing scope, so the purpose is distinct from unrelated siblings, though the description itself doesn't explicitly differentiate it from billing_get_current_balance or similar billing read 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 about when to use this tool instead of the numerous sibling billing tools (e.g., billing_get_current_balance, billing_list_invoices, subaccount_get_balance_summary). No when-not-to-use conditions, alternatives, or selection criteria are mentioned, so an agent cannot confidently route between these related tools based on the description alone.

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

billing_get_cost_breakdown_by_serviceB

Get cost breakdown by service for the specified period.

Args: days: Number of days to analyze (default: 30)

Returns: Service-wise cost breakdown with percentages

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description mentions it returns 'Service-wise cost breakdown with percentages' but doesn't disclose whether this is a read-only operation, whether it aggregates data, what time period defaults apply, or any other behavioral traits. For a billing tool with no annotations, this is a significant gap.

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

Conciseness4/5

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

The description is concise and front-loaded with the main purpose. The Args and Returns sections are clearly structured and add useful information without excessive verbosity. It's appropriately sized for a simple one-parameter tool.

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

Completeness3/5

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

The tool has an output schema and only one optional parameter, so the description doesn't need to explain return values in detail. However, given the large number of billing sibling tools, the description could benefit from clarifying how this differs from billing_get_monthly_usage_summary or billing_analyze_spending_trends. The lack of behavioral context (e.g., whether this is read-only) is a 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 description coverage is 0%, so the description must compensate. The description does explain the 'days' parameter ('Number of days to analyze (default: 30)'), which matches the schema's default of 30. However, it doesn't add much beyond what the schema already shows, and there's no additional context about valid ranges or behavior for different values.

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

Purpose4/5

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

The description clearly states the tool's function: 'Get cost breakdown by service for the specified period.' This is a specific verb+resource combination that distinguishes it from other billing tools like billing_get_current_balance or billing_list_billing_history. However, it doesn't explicitly differentiate from sibling billing tools like billing_get_monthly_usage_summary, which could also provide cost breakdowns.

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 mentioning 'for the specified period' and the days parameter, but it doesn't explicitly state when to use this tool versus alternatives like billing_get_monthly_usage_summary or billing_analyze_spending_trends. There's no when/when-not guidance or mention of alternatives.

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

billing_get_current_balanceB

Get current account balance and payment information.

Returns: Current balance, pending charges, and payment history

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals the return contents (current balance, pending charges, payment history), which adds value. However, it does not mention side effects, authentication requirements, or limitations. Since this is a 'get' operation, read-only behavior is implied but not explicitly stated. The description adds some behavioral context but could be richer.

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 extremely concise: a single purpose sentence plus a short 'Returns' list. It is front-loaded with the main action, and every sentence earns its place. No fluff or redundant 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?

Given that an output schema exists (though not detailed here), the description need not enumerate all return fields, but it does list the key items (balance, pending charges, payment history). However, it lacks context about when to use this tool versus siblings, and does not mention any prerequisites or limitations. For a no-parameter read operation, it is mostly complete but would benefit from naming alternatives or clarifying the scope of 'payment information'.

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 schema coverage is trivially 100%. The description correctly does not attempt to explain parameters, as there are none. The mention of 'payment history' might imply a time scope, but that is not a parameter. Per the baseline for zero-parameter tools, this is adequate.

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

Purpose4/5

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

The description clearly states the tool's function: 'Get current account balance and payment information.' It identifies a specific resource (account balance) and the action (get), making the purpose unambiguous. However, it does not explicitly differentiate from sibling billing tools like billing_get_account_info or billing_list_billing_history, though the focus on 'current balance' and 'payment information' gives reasonable distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention sibling tools or conditions that would favor one billing endpoint over another. Given the large cluster of billing tools (e.g., billing_get_account_info, billing_get_payment_summary), the lack of usage direction is a significant gap.

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

billing_get_current_month_summaryB

Get current month usage and cost summary.

Returns: Current month usage summary with service breakdown

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It clearly implies a read operation ('Get'/'Returns') but does not explicitly disclose that it makes no changes, does not mention permissions or data freshness, and only describes the outcome without behavioral constraints. For zero-parameter read tool this is a modest but understandable gap.

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 compact and front-loaded; the first sentence states the action and the second formats the return label clearly. Minor redundancy between 'usage and cost summary' and 'usage summary with service breakdown' costs one point, but overall it uses no wasted 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?

Given zero parameters and an output schema that can carry return fields, the description is minimal yet adequate for a simple read-only call. The main remaining gap is that it does not position itself relative to the several near-duplicate billing summary siblings, so an agent could still pick the wrong tool without opening schemas or reading surrounding context.

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 zero parameters and an empty input schema, no parameter documentation is needed. The description adds no parameter-specific meaning, but the baseline for 0 params is 4, and there is nothing here that detracts from that.

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

Purpose4/5

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

The description uses a specific verb and resource ('Get current month usage and cost summary') and adds a return detail ('with service breakdown'). However, it does not distinguish itself from very similar siblings like billing_get_monthly_usage_summary or billing_get_last_month_summary, so it misses the top point for active differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to choose this tool over alternatives. There are many billing siblings (`billing_get_monthly_usage_summary`, `billing_get_last_month_summary`, `billing_get_cost_breakdown_by_service`, etc.) and the text never names them, states exclusions, or explains what makes this the right pick.

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

billing_get_invoiceB

Get details of a specific invoice.

Args: invoice_id: The invoice ID

Returns: Invoice details including line items

ParametersJSON Schema
NameRequiredDescriptionDefault
invoice_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states that it returns invoice details including line items, but does not mention authentication needs, error behavior, or an explicit read-only guarantee. The description mostly restates the tool's name and adds only minimal return information.

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 compact and well-structured with labeled Args and Returns sections. Every line adds information: the core action, the parameter meaning, and what the caller can expect back. There is no filler.

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 required parameter and an output schemaโ€”so the basics are present. However, it lacks usage guidance and behavioral context, which could lead an agent to confuse it with billing_list_invoice_items or to call it without understanding when it is the appropriate choice.

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

Parameters3/5

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

The input schema provides no parameter description (0% coverage), and the description supplies only 'The invoice ID' for invoice_id. This gives a minimal semantic anchor but does not explain where to obtain the ID or any expected format, so it only partially compensates for the 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 clearly states the action ('Get details') and the resource ('a specific invoice'), making it distinguishable from list-style billing tools. However, it does not explicitly differentiate itself from sibling tools like billing_list_invoices or billing_list_invoice_items, so it falls just short of full sibling distinction.

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 billing_list_invoices or billing_list_invoice_items. There are no prerequisites, exclusions, or explicit routing cues beyond the phrase 'specific invoice'.

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

billing_get_last_month_summaryB

Get last month usage and cost summary.

Returns: Last month usage summary with service breakdown

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description must carry the burden of behavioral disclosure. It only states that a summary is returned; it does not mention that this is a read-only call, how 'last month' is defined, what timezone or currency is used, or whether any authentication or account context is 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?

The description is short and front-loaded with the core purpose. The 'Returns' line adds the new detail 'with service breakdown', but it also repeats 'last month usage summary', creating slight redundancy rather than fully earning 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 zero-parameter tool with an output schema, the description is close to adequate: it states the resource and the returned breakdown. However, it leaves 'last month' ambiguous and gives no sense of how this tool relates to other billing summary tools, so an agent may still be unsure when to call 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 has zero parameters and the schema description coverage is 100%, so there are no undocumented parameters for the description to clarify. This earns the baseline score of 4 for a no-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 uses a specific verb and resource ('Get last month usage and cost summary') and adds that the result includes a service breakdown. It is clear about what the tool returns, though it doesn't explicitly distinguish itself from billing siblings like billing_get_current_month_summary or billing_get_monthly_usage_summary.

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 about when to use this tool versus nearby alternatives such as billing_get_current_month_summary, billing_get_cost_breakdown_by_service, or billing_list_billing_history. There are no exclusions, prerequisites, or decision rules to help an agent select it confidently.

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

billing_get_monthly_usage_summaryB

Get monthly usage and cost summary.

Args: year: Year (e.g., 2024) month: Month (1-12)

Returns: Monthly usage summary with service breakdown

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes
monthYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. It only says 'Get' which implies a read operation, but does not explicitly state it is read-only, nor does it mention any side effects, permissions, or limitations. The return format is partially described ('with service breakdown'), but the description lacks detail about what the summary includes (e.g., taxes, discounts) 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?

The description is concise with no fluff. The main purpose is front-loaded in the first sentence, followed by clear parameter and return sections. It wastes no words and is easy to scan. It could be more descriptive, but it is appropriately sized for a simple getter 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, and the output schema exists, so return values are covered by the schema. However, the description lacks usage context, such as when to use this tool versus other billing summaries (e.g., current month, last month, or listing history). It also does not mention any limitations or assumptions (e.g., only for past months). While not incomplete for basic use, it leaves room for an agent to mis-select among the many billing siblings.

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 input schema provides only types and requirement, with zero description coverage. The description adds meaning by giving an example for year ('e.g., 2024') and a range for month (1-12). This clarifies acceptable values and expected format, which is essential for correct invocation. It does not fully explain the meaning of 'usage summary', but the parameters themselves are well documented.

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

Purpose4/5

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

The description clearly states it retrieves a monthly usage and cost summary, with a specific verb and resource. The parameters (year, month) indicate a specific time period, which distinguishes it from sibling tools like billing_get_current_month_summary or billing_get_last_month_summary, though it doesn't explicitly name them. 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 Guidelines2/5

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

The description provides no guidance on when to use this tool versus other billing tools like billing_get_current_month_summary or billing_list_billing_history. There are no explicit usage conditions, alternatives, or exclusions. The parameters imply it's for a specific month, but this is not stated explicitly.

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

billing_get_payment_summaryC

Get payment summary and account status.

Returns: Payment summary with account status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool returns a payment summary and account status, but it does not describe any behavioral details such as whether it reflects current or historical data, whether it aggregates across subaccounts, or what the response structure contains. The output schema exists but the description adds minimal 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.

Conciseness3/5

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

The description is short and front-loaded, but it wastes a line by repeating 'Payment summary with account status' in a Returns block that adds no new information. It could be a single sentence without the redundant return 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 zero-parameter read tool with an output schema, the description is minimally adequate. However, given the large billing sibling family, it would benefit from clarifying what distinguishes this summary from billing_get_current_balance, billing_get_monthly_usage_summary, and billing_get_account_info. The output schema covers return values, so the main gap is differentiation.

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 there is no parameter semantics burden. The description correctly implies a no-input read operation. Baseline 4 is appropriate for a zero-parameter tool.

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 clear verb and resource: 'Get payment summary and account status.' It is distinguishable from billing_get_current_balance and billing_get_monthly_usage_summary by name, but the description does not explicitly differentiate it from those siblings. The repeated 'Returns: Payment summary with account status' adds no new information.

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 like billing_get_current_balance, billing_get_monthly_usage_summary, or billing_get_account_info. The description simply restates the function without context or exclusions.

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

billing_list_billing_historyB

List billing history for the specified number of days.

Args: days: Number of days to include (default: 30) per_page: Number of items per page (default: 25)

Returns: Billing history with transaction details

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
per_pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It does disclose the return shape ('Billing history with transaction details') and implies a read-only operation via 'List', but it does not explicitly confirm no side effects, pagination behavior, or date-window semantics. This is adequate for a simple read tool but not rich.

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

Conciseness5/5

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

The description is compact and well-organized, with a clear one-sentence purpose followed by labeled Args and Returns sections. There is no filler or redundant explanation.

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, has an output schema, and only two optional parameters, so the description covers core invocation needs. However, it lacks guidance on selecting this tool among related billing siblings and gives no detail on pagination or date-range edge cases, leaving some context 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?

Schema description coverage is 0%, so the description must compensate. It does explain both parameters meaningfully: 'days: Number of days to include' and 'per_page: Number of items per page', and it restates defaults. This adds semantic value beyond the bare schema, though it does not provide deeper constraints.

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 and resource: 'List billing history for the specified number of days.' It specifies the scope (days) and hints at the content ('transaction details'), but it does not explicitly distinguish the tool from sibling billing tools such as billing_list_invoices or billing_list_invoice_items.

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 alternatives. Among the many billing siblings, several list-oriented tools exist, and the description does not state what makes billing history the right choice, nor does it mention any exclusions or alternative tools.

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

billing_list_invoice_itemsB

List items in a specific invoice.

Args: invoice_id: The invoice ID per_page: Number of items per page (default: 25)

Returns: Invoice line items with details

ParametersJSON Schema
NameRequiredDescriptionDefault
per_pageNo
invoice_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only says 'Returns: Invoice line items with details' and implies read-only behavior via 'List', but it doesn't disclose pagination behavior, ordering, rate limits, or what 'details' includes.

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 concise with three clear sections (purpose, args, returns). Every sentence adds information, and the primary purpose is front-loaded. No filler or redundancy.

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 operation with one required parameter and an output schema present, the description covers the essential inputs and return type. It lacks notes on edge cases or how to obtain the invoice ID, but it is adequate for basic invocation.

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 Args section provides meaning beyond the schema: `invoice_id` is identified as an ID and `per_page` is explained with its default value of 25. Since the schema has 0% description coverage, this textual clarification is valuable, though `invoice_id` is somewhat self-evident.

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 action ('List') and resource ('items in a specific invoice'), which distinguishes it from sibling `billing_list_invoices` (lists invoices, not line items). However, it doesn't explicitly differentiate from `billing_get_invoice`, which might also return line items, so it's not perfect.

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 like `billing_get_invoice` or `billing_list_invoices`. The description doesn't mention how to obtain the invoice ID or whether this is the preferred way to access detailed line items.

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

billing_list_invoicesC

List all invoices.

Args: per_page: Number of items per page (default: 25)

Returns: List of invoices with pagination info

ParametersJSON Schema
NameRequiredDescriptionDefault
per_pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It only states that the tool lists invoices and returns pagination info; it does not mention authentication, scope of 'all' (account-wide, project-wide, etc.), allowed statuses, or error behavior. For a billing-sensitive read operation, this is a meaningful gap.

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

Conciseness5/5

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

The description is tight and well-structured, front-loading the action and then using a clean Args/Returns layout. Every sentence earns its place with no filler or repetition.

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 the large sibling set and the existence of confusingly similar billing tools (billing_list_billing_history, billing_get_invoice, billing_list_invoice_items), the description fails to situate this tool among its alternatives. It also leaves pagination mechanics vague (e.g., how a caller obtains subsequent pages), so the agent cannot fully predict how to use the result.

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

Parameters3/5

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

The schema provides no description for per_page, so the description's 'Number of items per page (default: 25)' adds the core semantic meaning. However, it largely restates the schema default and does not explain null behavior or any constraints, so it only partially compensates for the 0% 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 states a specific verb and resource ('List all invoices') that is immediately understandable. It does not, however, distinguish itself from closely related billing siblings like billing_get_invoice or billing_list_billing_history, so it stops short of full clarity.

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 billing_list_billing_history, billing_get_invoice, or billing_list_invoice_items. The description gives no context about what distinguishes 'invoices' from other billing artifacts, and it offers no exclusions or alternative routing.

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

block_storage_attachA

Attach block storage volume to an instance.

Smart identifier resolution: Use volume label/ID and instance label/hostname/ID.

Args: volume_identifier: Volume label or ID to attach instance_identifier: Instance label, hostname, or ID to attach to ctx: FastMCP context for resource change notifications live: Whether to attach without rebooting the instance (default: True)

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
liveNo
volume_identifierYes
instance_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses smart identifier resolution and the live flag's reboot semantics, but it omits mutation caveats (e.g., detaching from a previous instance, region requirements, permission needs). It says 'Returns: Success confirmation' but doesn't describe 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 one-liner is front-loaded and the Args/Returns sections are logically structured with no filler. Slight redundancy exists because the Args section repeats schema property names, and ctx is extraneous, but overall the description is tight and scannable.

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?

Adequate for a simple attach operation: it covers identifier resolution, the live parameter, and return confirmation. Missing context like whether the volume must be unattached, whether a reboot is required when live=false, and whether the volume/instance must be in the same region leaves gaps for an agent making real-world decisions.

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. It does, by explaining that volume_identifier accepts label/ID and instance_identifier accepts label/hostname/ID, and by documenting the live default. However, it lists ctx, which is absent from the schema, and doesn't clarify types or constraints beyond identifier forms.

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 opening line 'Attach block storage volume to an instance' states a specific verb and both resource types, immediately distinguishing it from sibling tools like block_storage_detach, block_storage_create, and block_storage_list_* operations. No ambiguity about what this tool 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 explains the action but gives no when-to-use guidance, no prerequisites (e.g., volume must be unattached, instance must be running), and no alternatives or exclusions. An agent must infer when to choose this over the many sibling storage operations.

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

block_storage_createA

Create a new block storage volume.

Args: region: Region code where the volume will be created (e.g., "ewr", "lax", "fra") size_gb: Size in GB (10-40000 depending on block_type) ctx: FastMCP context for resource change notifications label: Optional label for the volume (recommended for easy identification) block_type: Optional block storage type (affects size limits and performance)

Returns: Created volume information including ID, cost, and configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNo
regionYes
size_gbYes
block_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are present, so the description must carry the behavioral burden. It does disclose that it creates a persistent volume and describes size limits, optional block_type effects, and the presence of a context object. However, it fails to state billing/cost implications, permission requirements, idempotency, or that the created volume will initially be unattached.

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 efficiently formatted with a clear one-line purpose, then Args and Returns sections. Every sentence adds information about a parameter or result; no padding 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 an output schema available, the returns summary is a bonus rather than a necessity. The main gaps are the lack of valid values for block_type and the lack of guidance about when it is required. The description is sufficient but not comprehensive enough for an agent to safely validate all invocation choices from free text alone.

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 input schema has 0% description coverage, but the description adds useful meaning for every schema parameter: region examples, size range (10-40000 GB), optional label recommendation, and block_type effect. It does not enumerate possible block_type values or region code options, but the coverage is robust compared to the schema 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 opens with a specific verb and resource: 'Create a new block storage volume.' It is immediately distinct from siblings like block_storage_delete, block_storage_attach, and object_storage_create by naming the exact resource type and action.

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 does not state when to use this tool versus alternatives, nor does it mention the follow-up lifecycle (e.g., attach to a server, then delete). It gives no guidance on when to choose block storage over object storage, and no prerequisites or exclusions.

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

block_storage_deleteB

Delete a block storage volume.

Smart identifier resolution: Use volume label or ID.

Args: volume_identifier: Volume label or ID to delete ctx: FastMCP context for resource change notifications

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
volume_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses deletion and return values, but does not state that deletion is permanent, what happens if the volume is attached to an instance, or whether confirmation is required. This is a significant gap for a destructive operation.

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, with a clear first sentence followed by args and returns. The only structural flaw is listing ctx as an argument even though the schema does not include 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 single-parameter tool with an output schema, the basics are covered: what it deletes, how to identify the volume, and that it returns confirmation. But the absence of behavioral warnings and any route to alternative tools leaves it merely adequate rather than 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?

With 0% schema coverage, the description compensates by explaining that volume_identifier accepts 'Volume label or ID.' This is the key detail an agent needs. However, it also lists a ctx argument that is absent from the input schema, causing slight ambiguity.

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 'Delete a block storage volume,' naming a specific verb and resource. This clearly separates it from sibling operations like block_storage_attach, block_storage_detach, and block_storage_update.

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 choose this over alternatives such as block_storage_detach, nor any mention of prerequisites like listing volumes first. The 'smart identifier resolution' note explains how to identify a volume, not when deletion is appropriate.

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

block_storage_detachA

Detach block storage volume from its instance.

Smart identifier resolution: Use volume label or ID.

Args: volume_identifier: Volume label or ID to detach ctx: FastMCP context for resource change notifications live: Whether to detach without rebooting the instance (default: True)

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
liveNo
volume_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the burden for behavioral disclosure. It usefully explains the 'live' parameter and states that a success confirmation is returned, but it omits side effects, permission requirements, or consequences of detaching a mounted volume. The information provided is helpful but not comprehensive for a mutating operation.

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 compact, clearly structured with Args and Returns sections, and front-loads the core purpose. Every sentence contributes useful information without 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?

The tool has a mutable effect, no annotations, and only two parameters, yet the description omits preconditions like the volume needing to be attached. It covers return behavior and identifier resolution, but an agent would still lack awareness of potential side effects or safety considerations.

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 input schema only defines bare types, so the description adds meaningful semantics: volume_identifier accepts a label or ID, and live controls whether detaching happens without rebooting. It even documents ctx for notifications, though ctx is absent from the schema. This offsets the 0% schema description coverage well.

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 precise verb and resource: 'Detach block storage volume from its instance.' This clearly distinguishes the tool from siblings like block_storage_attach and block_storage_delete. The extra 'Smart identifier resolution' note further clarifies the operational 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 the tool is for detaching a volume from an instance but gives no explicit guidance on when to choose it over alternatives or what prerequisites exist. It does not mention when not to use it, such as if the volume is not attached or if data safety requires additional steps.

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

block_storage_get_mounting_instructionsA

Get instructions for mounting a block storage volume on Linux.

Smart identifier resolution: Use volume label or ID.

Args: volume_identifier: Volume label or ID

Returns: Step-by-step mounting instructions and commands

ParametersJSON Schema
NameRequiredDescriptionDefault
volume_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It does explain that the tool returns step-by-step instructions and commands and that identifier resolution accepts label or ID. It does not explicitly state that the operation is read-only/non-mutating or describe error behavior if the volume is not found.

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, front-loaded with the main purpose, and organized into clear Args/Returns sections. Minor redundancy exists because 'volume label or ID' is essentially stated twice, but there is no filler or irrelevant content.

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, read-oriented tool with an output schema present, the description covers the essential invocation details: what the parameter accepts and what kind of result to expect. It could mention edge cases or prerequisites more explicitly, but the tool is simple enough that 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 schema only declares volume_identifier as a string with zero parameter documentation, so the description must compensate. It does, by specifying that the value can be either a volume label or an ID, which is essential semantic information 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 clearly states the action: retrieve mounting instructions for a block storage volume on Linux. It names a specific resource and platform, and the verb 'Get' makes the operation's nature clear. It does not explicitly differentiate itself from the similar sibling storage_gateway_get_mount_instructions, 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?

The phrase 'Use volume label or ID' gives concrete guidance on how to supply the identifier, which is useful. However, there is no explicit statement about when to choose this tool over alternatives like storage_gateway_get_mount_instructions, and no exclusion or 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.

block_storage_get_volume_statusA

Get comprehensive status information for a block storage volume.

Smart identifier resolution: Use volume label or ID.

Args: volume_identifier: Volume label or ID

Returns: Detailed status including attachment, usage, and cost information

ParametersJSON Schema
NameRequiredDescriptionDefault
volume_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Despite no annotations, the description adds that it returns attachment, usage, and cost details, and that identifier resolution is smart (label or ID). It does not explicitly state read-only side effects, permissions, or error handling. The 'Get' prefix implies a safe read, but more disclosure would benefit an agent with no annotation safety information.

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 short and well-structured: purpose first, followed by smart resolution note, then organized Args and Returns sections. Every sentence earns its place. No unnecessary details or repetition.

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 an output schema present, the description doesn't need to itemize every return field; it still lists attachment, usage, and cost as examples. It covers purpose, parameter semantics, and a sensible scope. It doesn't mention error handling or how to distinguish between ID types, but this is acceptable for a one-parameter getter.

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 schema coverage at 0% and only a bare type string, the description adds essential semantics: volume_identifier can be a label or ID, and resolution is automatic. This compensates for a completely undocumented schema property. It could include more detail like example formats, but the added meaning is sufficient for a single-param tool.

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 action โ€” 'Get comprehensive status information for a block storage volume' โ€” with a clear resource. 'Smart identifier resolution' further clarifies that the volume can be referenced by label or ID, distinguishing it from listing or mutation tools. Sibling tools like block_storage_list_by_region or block_storage_create are obviously different in intent.

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

Usage Guidelines3/5

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

The description implies the tool is for retrieving status of a single volume, but it does not explicitly contrast it with alternatives like block_storage_list_by_region or mounting instructions. Nothing states when to choose this over another block_storage getter. Usage context is 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.

block_storage_list_attachedA

List all attached block storage volumes with instance information.

Returns: List of volumes that are currently attached to instances

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

There are no annotations, so the description carries the burden of disclosing behavior. 'List' implies a read-only operation, but this is never stated explicitly. The description adds that it returns volumes 'currently attached' and includes instance information, giving some context. However, it omits key behavioral details like pagination, potential rate limits, or permissions required. A 3 is appropriate for a simple list operation with no 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 two tight sentences with no filler. It clearly states the primary action and the expected return without redundant phrasing. Every word 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-parameter list tool with an output schema (which presumably documents the return structure), the description is largely sufficient. It states the scope ('all attached volumes') and the inclusion of instance information. The only missing elements are explicit mention that the operation is read-only and a pointer to the sibling tool for unattached volumes, but these are minor given the simplicity of the 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 has zero parameters, and the schema is empty, so there is nothing to document. According to the rubric, a baseline of 4 is justified for 0-parameter tools. The description does not need to add anything beyond confirming no inputs are required, which is implicitly clear from the empty 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 ('List') and resource ('attached block storage volumes') with added detail ('with instance information'). The name and description clearly differentiate from the sibling block_storage_list_unattached, leaving no ambiguity about what this tool returns.

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 does not provide any explicit guidance on when to use this tool versus alternatives. It does not mention that block_storage_list_unattached exists for the complementary use case, nor does it provide any context about filtering or scope. An agent must infer usage from the name alone.

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

block_storage_list_by_regionA

List block storage volumes in a specific region.

Args: region: Region code to filter by (e.g., "ewr", "lax", "fra")

Returns: List of volumes in the specified region

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description must carry the behavioral disclosure burden. It states it will return a list of volumes in the region, which clearly implies a read-only list operation. However, it does not explicitly say the operation has no side effects, nor does it cover pagination or error behavior. For a simple list tool, the core intent is conveyed, but many behavioral details are left unstated.

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 compact: a single sentence for the purpose, followed by structured Args and Returns sections. There is no filler, and the structure makes the parameter meaning and return value easy to scan. It could be even more succinct, but it already 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 one-parameter tool, the description covers the primary operation, the parameter meaning including examples, and the return value. An output schema is present, so the Returns description is sufficient. Minor gaps exist (e.g., pagination, behavior when region is invalid), but the overall context is enough for a confident invocation.

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

Parameters5/5

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

The input schema only declares 'region' as a string, with no description (0% schema coverage). The tool description fully compensates by explaining the parameter as 'Region code to filter by' and listing concrete examples ('ewr', 'lax', 'fra'), which gives the agent the necessary semantic context to supply a valid value.

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 'List block storage volumes in a specific region,' clearly identifying the action (list), resource (block storage volumes), and scope (region). This differentiates it from sibling tools like block_storage_list_unattached and block_storage_list_attached, which filter by attachment state instead of region.

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 about when to use this tool versus alternatives. It does not mention block_storage_list_unattached, block_storage_list_attached, or any other list variants, and gives no context about when region-based filtering is the correct choice. Usage guidance is left entirely implicit.

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

block_storage_list_unattachedA

List all unattached block storage volumes.

Returns: List of volumes that are not currently attached to any instance

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It clearly states the operation (list) and the return value (list of unattached volumes), but does not mention pagination, scope (e.g., region), or any side-effect profile. For a simple read-only list, this is acceptable but not rich.

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

Conciseness5/5

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

The description is two short sentences, front-loaded with the core purpose, and includes a return type. No wasted words.

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

Completeness4/5

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

For a zero-parameter list operation, the description covers the essential return shapelocked on completeness. It does not explicitly mention pagination or the geographic scope of 'all,' which could matter in a multi-region block storage API, but the output schema and simplicity reduce that 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 has zero parameters)Skip baseline is 4 for no parameters. The description adds no parameter information, but there are no parameters to document.

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

Purpose5/5

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

The description states a specific verb and resource: 'List all unattached block storage volumes.' It clearly distinguishes itself from the sibling block_storage_list_attached by the 'unattached' qualifier, so an agent can tell them apart without inspecting 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 implies usage for unattached volumes, but does not explicitly state when to use this tool versus block_storage_list_attached or block_storage_list_by_region. The distinction is inferable from the name and context, but no exclusions or alternatives are named.

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

block_storage_updateA

Update block storage volume configuration.

Smart identifier resolution: Use volume label or ID.

Args: volume_identifier: Volume label or ID to update ctx: FastMCP context for resource change notifications size_gb: New size in GB (can only increase, not decrease) label: New label for the volume

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNo
size_gbNo
volume_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description must disclose behavior itself. It clearly states the constraint that 'size can only increase, not decrease', which is critical behavioral information, and mentions that it returns a success confirmation. However, it does not disclose potential side effects, permissions needed, or what happens to the volume during the update (e.g., downtime).

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 concise, with a summary and an args list. It is front-loaded with the purpose. Every sentence serves a purpose, though the 'Smart identifier resolution' line could be integrated into the parameter description. The structure is clear and avoids 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?

Given the tool's complexity (3 params, all optional except one), the description covers the parameters well and mentions the return type. However, it lacks context on when to use this tool versus sibling tools like block_storage_attach or block_storage_create, and does not explain any prerequisites or effects beyond the size constraint. The output schema exists but is not described, so the description's mention of 'Success confirmation' is minimal.

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 explain the parameters. It does so for all three: volume_identifier with 'Volume label or ID', size_gb with 'New size in GB (can only increase, not decrease)', and label with 'New label'. This adds meaning beyond the schema, which only provides types and optionality. The descriptor for volume_identifier is helpful in explaining smart identifier resolution.

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

Purpose5/5

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

The description clearly states 'Update block storage volume configuration' using specific verbs and resources. It also lists the updatable fields (size, label), and it distinguishes itself from sibling tools like block_storage_delete, block_storage_attach by focusing on configuration updates. The smart identifier resolution note clarifies the accepted input.

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 explains the purpose and the parameters but does not explicitly state when to use this tool versus alternatives. There is no mention of prerequisites, such as whether the volume must be unattached, or when to use block_storage_create or delete. The 'smart identifier resolution' gives context but not usage guidance.

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

cdn_analyze_cdn_performanceB

Analyze CDN zone performance over the specified period. Smart identifier resolution: use origin domain, CDN domain, or UUID.

Args: zone_identifier: The CDN zone origin domain, CDN domain, or ID days: Number of days to analyze (default: 7)

Returns: Performance analysis including cache hit ratio, bandwidth usage, and recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
zone_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the full burden. It discloses the analysis nature (implying read-only) and the 'Smart identifier resolution' behavior, plus the return fields. However, it does not explicitly state that it is non-destructive, does not mention authentication requirements, or any other side effects. This is a moderate level of transparency.

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 concise and well-structured, with a clear summary, an argument list, and a return section. The main purpose is front-loaded. It is not overly verbose, and each sentence adds value.

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 that an output schema exists, the return details are covered. The description covers the parameters and the 'Smart identifier resolution' feature. It does not mention prerequisites or error conditions, and it lacks explicit differentiation from similar CDN analysis tools, but the essential information for calling the tool is 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 description coverage is 0%, so the description must compensate. It explains zone_identifier: 'use origin domain, CDN domain, or UUID' and days: 'Number of days to analyze (default: 7)'. This adds meaning beyond the schema, which only has type and default. However, it does not elaborate on edge cases or format constraints, so it is good but not exhaustive.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Analyze CDN zone performance over the specified period.' This is a specific verb and resource. However, it does not differentiate from sibling tools like cdn_get_cdn_zone_stats, which also provides performance-related data, so it lacks explicit differentiation.

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 cdn_get_cdn_zone_stats or cdn_get_cdn_zone_logs. The description mentions 'Smart identifier resolution' but that pertains to parameter input, not usage context. There is no when-to-use or 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.

cdn_create_cdn_ssl_certificateA

Upload SSL certificate for a CDN zone. Smart identifier resolution: use origin domain, CDN domain, or UUID.

Args: zone_identifier: The CDN zone origin domain, CDN domain, or ID certificate: SSL certificate content (PEM format) private_key: Private key content (PEM format) certificate_chain: Certificate chain (optional, PEM format)

Returns: SSL certificate details

ParametersJSON Schema
NameRequiredDescriptionDefault
certificateYes
private_keyYes
zone_identifierYes
certificate_chainNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the operation (upload), the accepted formats (PEM), and the smart identifier resolution behavior. However, it doesn't disclose whether this overwrites an existing certificate, whether the certificate is validated before upload, or any rate limits or auth requirements. The 'Returns' section is minimal.

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 compact and front-loaded with the core purpose. The Args section is clearly structured and each parameter gets a line. The 'Smart identifier resolution' note is useful and placed early. Minor redundancy: 'Returns: SSL certificate details' is vague and adds little, but overall it's 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?

The tool has an output schema, so return values are covered elsewhere. The description covers the main inputs and the identifier flexibility. However, for a mutation tool with no annotations, it doesn't mention whether the upload replaces an existing certificate, whether the zone must already exist, or what happens if the certificate is invalid. These are meaningful gaps for an agent deciding to call this 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 description coverage is 0%, so the description must compensate. It does: it explains that zone_identifier accepts origin domain, CDN domain, or UUID, and it specifies PEM format for certificate and private_key, and notes certificate_chain is optional. This adds real meaning beyond the bare schema types. It loses a point because it doesn't explain what 'certificate chain' means or how the chain should be ordered.

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: 'Upload SSL certificate for a CDN zone.' It clearly distinguishes this from sibling tools like cdn_get_cdn_ssl_certificate and cdn_delete_cdn_ssl_certificate. However, it doesn't explicitly contrast with those siblings, so it loses a point for not naming the alternative.

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: it's for uploading an SSL certificate to a CDN zone, and the 'Smart identifier resolution' note explains how to identify the zone. But it doesn't explicitly state when to use this tool versus alternatives like cdn_get_cdn_ssl_certificate or cdn_delete_cdn_ssl_certificate, nor does it mention prerequisites like having a zone already created.

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

cdn_create_cdn_zoneB

Create a new CDN zone.

Args: origin_domain: Origin domain for the CDN origin_scheme: Origin scheme (http or https) cors_policy: CORS policy configuration gzip_compression: Enable gzip compression block_ai_bots: Block AI/crawler bots block_bad_bots: Block known bad bots block_ip_addresses: List of IP addresses to block regions: List of regions to enable CDN in

Returns: Created CDN zone details

ParametersJSON Schema
NameRequiredDescriptionDefault
regionsNo
cors_policyNo
block_ai_botsNo
origin_domainYes
origin_schemeNohttps
block_bad_botsNo
gzip_compressionNo
block_ip_addressesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Create a new CDN zone' and lists parameters. It does not mention side effects (e.g., whether existing zones are affected), idempotency, authentication/authorization requirements, rate limits, or any failure modes. This is a significant gap for a creation 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 description is well-structured with an 'Args' section followed by 'Returns', and the action sentence is front-loaded. It is concise with no fluff. While it could be slightly shorter, it efficiently conveys the essential information without 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?

The description includes a 'Returns' section and the output schema exists, so return values are covered. However, it omits behavioral context such as prerequisites (e.g., the origin domain must be valid and accessible), any limitations on the number of zones, and potential error conditions. For an 8-parameter creation tool with no annotations, this is only partially 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 lists all 8 parameters with brief one-line meanings (e.g., 'origin_scheme: Origin scheme (http or https)'), which adds some semantic value. However, it lacks details on formats, allowed values beyond the scheme hint, relationships between parameters, or defaults. It does not fully compensate for the schema's lack of descriptions.

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

Purpose5/5

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

The description clearly states the verb 'Create' and the resource 'CDN zone', distinguishing it from siblings like cdn_update_cdn_zone, cdn_delete_cdn_zone, and cdn_list_cdn_zones. The parameter list enumerates the configurable properties, making the purpose unambiguous.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus alternatives. It does not state prerequisites (e.g., need an origin domain), conditions that favor it over other creation tools, or scenarios where it should not be used. The verb 'create' implies the obvious use case, but no context or exclusions are provided.

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

cdn_delete_cdn_ssl_certificateA

Remove SSL certificate from a CDN zone. Smart identifier resolution: use origin domain, CDN domain, or UUID.

Args: zone_identifier: The CDN zone origin domain, CDN domain, or ID

Returns: Success message

ParametersJSON Schema
NameRequiredDescriptionDefault
zone_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that the certificate is removed and that a success message is returned, but it does not mention consequences such as HTTPS being disabled, reversibility, prerequisites, or any side effects on the CDN zone.

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 brief and well-structured, with the core action front-loaded followed by essential argument and return information. There is no filler or redundant content.

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 deletion tool, the description covers the action, the accepted identifier formats, and the expected return. An output schema exists, so detailed return-value documentation is not necessary. The main missing piece is behavioral caveats, which is already reflected in the behavioral transparency score.

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

Parameters5/5

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

The input schema only defines zone_identifier as a string. The description adds meaningful semantics by specifying that it accepts an origin domain, CDN domain, or ID, fully compensating for the schema's lack of description.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Remove SSL certificate from a CDN zone.' This clearly distinguishes the tool from related CDN operations like creating or retrieving SSL certificates and deleting the zone itself.

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

Usage Guidelines4/5

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

The description provides concrete context for using the tool by explaining that the zone_identifier can be an origin domain, CDN domain, or UUID. It does not explicitly name alternatives or say when not to use the tool, but the operation is specific enough that this is not a major gap.

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

cdn_delete_cdn_zoneA

Delete a CDN zone. Smart identifier resolution: use origin domain, CDN domain, or UUID.

Args: zone_identifier: The CDN zone origin domain, CDN domain, or ID to delete

Returns: Success message

ParametersJSON Schema
NameRequiredDescriptionDefault
zone_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden by itself. It names the destroyed resource and the success response, and it usefully discloses that zone_identifier can be an origin domain, CDN domain, or UUID; however, it does not warn that deletion is likely permanent or describe effects on related resources.

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 compact and front-loaded, with no filler. The 'Smart identifier resolution' note earns its place, and the Args/Returns layout makes the single parameter and outcome immediately 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 one-parameter destructive tool, the identifier semantics and success return are covered, and an output schema exists for return details. But the absence of any safety or consequence disclosure, combined with no annotations, leaves the definition incomplete for an agent that must decide whether deletion is appropriate.

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

Parameters5/5

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

The input schema only declares zone_identifier as a string with 0% description coverage. The description compensates fully by defining the three accepted identifier forms (origin domain, CDN domain, or ID), which is exactly the semantic information needed to call the tool correctly.

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 'Delete a CDN zone,' a specific verb and resource that clearly states the operation. It is easily distinguished from sibling CDN tools such as cdn_purge_cdn_zone or cdn_update_cdn_zone because only this tool deletes the zone itself.

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

Usage Guidelines3/5

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

The intended trigger is implied by 'Delete a CDN zone': an agent should call this when a CDN zone needs to be removed. However, it does not explicitly state when not to use it or point to alternatives, such as using cdn_purge_cdn_zone when only cached content needs clearing.

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

cdn_get_cdn_available_regionsB

Get list of available CDN regions.

Returns: List of available CDN regions with details

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states the operation is to 'Get list', which implies a read-only action, and mentions 'with details' for the return. However, it doesn't explicitly state that it has no side effects, requires no permissions, or that it's non-destructive. For a zero-parameter getter, the transparency is adequate but minimal.

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 concise, with only two sentences. The first sentence states the purpose; the second sentence about returns is redundant given the output schema exists but is harmless. It is appropriately sized and front-loaded, with no 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?

Given the simplistic nature (no parameters, no annotations, output schema present), the description is functional but lacks guidance on when to use it relative to sibling tools like cdn_list_cdn_zones or region_list. It doesn't mention any limitations or special cases, which could be needed for full completeness, though the operation itself 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?

The tool has zero parameters, so the baseline is 4. The description correctly omits parameter details since there are none, and the input schema confirms this. No additional semantics 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 clearly states the verb ('Get') and resource ('list of available CDN regions'), which is specific and distinguishes it from CDN zone tools like cdn_list_cdn_zones. However, it does not explicitly differentiate from broader region tools like region_list, which could cause ambiguity. It's clear but not fully differentiated.

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 such as region_list or cdn_list_cdn_zones. There is no mention of prerequisites, scenarios, or exclusions. The description is purely declarative without contextual usage advice.

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

cdn_get_cdn_ssl_certificateA

Get SSL certificate information for a CDN zone. Smart identifier resolution: use origin domain, CDN domain, or UUID.

Args: zone_identifier: The CDN zone origin domain, CDN domain, or ID

Returns: SSL certificate information including expiry and status

ParametersJSON Schema
NameRequiredDescriptionDefault
zone_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations exist, so description carries burden. It discloses that identifier resolution is smart (origin domain, CDN domain, or UUID), which is useful behavior. However, it doesn't disclose return format fully enough beyond saying 'including expiry and status' โ€“ no mention of potential errors or authentication 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?

Concise and well-structured: short opening sentence, then a 'Smart identifier resolution' label, Args, and Returns sections. No fluff, each sentence contributes. Slightly could be more compact but overall 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?

Given it has an output schema (though not shown), the description doesn't need to explain return values in detail beyond key info. It's a single-parameter tool, so relatively simple. Missing guidance on pagination, error handling, or permission requirements, but those are not critical for a simple get operation. Adequate for the tool's complexity.

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

Parameters3/5

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

Schema coverage is 0%, so description must compensate. The description explains the parameter accepts multiple forms (origin domain, CDN domain, or ID), adding meaning beyond the bare schema. However, it doesn't detail exact format expectations or give examples. Baseline 3 because it 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?

Clearly states it retrieves SSL certificate information for a CDN zone, specifying the resource and action. It distinguishes from sibling tools by focusing on SSL certificate retrieval, but does not explicitly contrast with cdn_get_cdn_zone which might be similar.

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?

Provides guidance on when to use: when needing SSL certificate info. It doesn't explicitly mention when not to use or alternatives, but the context (CDN domain) is clear. No mention of prerequisites or conditions.

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

cdn_get_cdn_zoneA

Get details of a specific CDN zone. Smart identifier resolution: use origin domain, CDN domain, or UUID.

Args: zone_identifier: The CDN zone origin domain, CDN domain, or ID

Returns: CDN zone details

ParametersJSON Schema
NameRequiredDescriptionDefault
zone_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations are absent, so the description carries the full burden. It discloses the smart identifier resolution behavior, which is useful. However, it does not explicitly state that this is a read-only operation, what happens on unknown identifiers, or any additional side effects. The description adds some value but leaves gaps.

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

Conciseness5/5

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

The description is concise and front-loaded: the first sentence states the purpose, the second explains the identifier flexibility, and the Args/Returns sections are minimal. Every sentence earns its place with no redundant content.

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 getter with an output schema, this description is largely complete. It covers the main nuance (identifier resolution) and the output schema handles return details. It could mention that the operation is read-only, but the 'get' verb and 'details' make that implicit. Minor gaps in error behavior are acceptable given the low complexity.

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

Parameters5/5

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

Schema description coverage is 0%, so this description is the sole explanation for zone_identifier. It clearly documents that the parameter can be an origin domain, CDN domain, or UUID, providing critical semantics far beyond the schema's plain 'string' type.

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

Purpose5/5

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

The description clearly states 'Get details of a specific CDN zone' with a specific verb and resource. It also adds the smart identifier resolution, which distinguishes this from siblings like cdn_get_cdn_zone_summary or cdn_get_cdn_zone_stats by emphasizing detailed zone information.

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

Usage Guidelines4/5

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

The description gives clear context: it retrieves details of a specific CDN zone, and it explains the acceptable identifier formats (origin domain, CDN domain, UUID). However, it does not explicitly say when to prefer this over sibling getters such as cdn_get_cdn_zone_summary, leaving some ambiguity in tool selection.

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

cdn_get_cdn_zone_logsA

Get access logs for a CDN zone. Smart identifier resolution: use origin domain, CDN domain, or UUID.

Args: zone_identifier: The CDN zone origin domain, CDN domain, or ID start_date: Start date for logs (ISO format: YYYY-MM-DD) end_date: End date for logs (ISO format: YYYY-MM-DD) per_page: Number of items per page (default: 25)

Returns: CDN zone access logs with request details

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNo
per_pageNo
start_dateNo
zone_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose the flexible identifier resolution behavior and states the return value ('CDN zone access logs with request details'), but it omits other behavioral details such as whether logs are delayed, any rate limits, date-range constraints, or timezone handling.

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 well-organized with a one-line purpose, a helpful resolution note, and a clean Args/Returns layout. It is concise, though 'use origin domain, CDN domain, or UUID' is partly redundant with the zone_identifier parameter description.

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

Completeness3/5

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

For a simple read-only log retrieval tool with one required parameter and an output schema, the description covers the essential parameter semantics. It is less complete on usage differentiation, optionality of dates, and edge-case behavior, but it does not leave an agent without enough to make a reasonable call.

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. It explains that zone_identifier accepts 'origin domain, CDN domain, or ID', specifies ISO date formats, and clarifies per_page as 'Number of items per page (default: 25)'.

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

Purpose4/5

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

The description clearly states the action and resource: 'Get access logs for a CDN zone.' This is specific enough to distinguish it from most tools, though it does not explicitly contrast it with related siblings like cdn_get_cdn_zone_stats or cdn_get_cdn_zone_summary.

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 intended use is implied by its name and opening line, and the 'Smart identifier resolution' note gives useful context for identifying the zone. However, there is no explicit guidance on when to choose this tool over sibling CDN tools or what conditions make it inappropriate.

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

cdn_get_cdn_zone_statsB

Get statistics for a CDN zone. Smart identifier resolution: use origin domain, CDN domain, or UUID.

Args: zone_identifier: The CDN zone origin domain, CDN domain, or ID

Returns: CDN zone statistics including bandwidth, requests, and cache hit ratio

ParametersJSON Schema
NameRequiredDescriptionDefault
zone_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the burden of explaining behavior. It discloses 'smart identifier resolution' and the returned metrics, which is useful context. However, it does not explicitly state that this is a read-only operation, nor does it mention auth requirements or potential errors. The behavior is implied by 'Get statistics' but not fully 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?

The description is compact and well-organized, with a one-line summary followed by labeled Args and Returns sections. There is minor redundancy between the opening sentence and the Returns line, but overall every sentence adds value and the essential 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 simple one-parameter get-stats tool, the description covers the critical aspects: what the tool does, how to identify the zone, and what the response includes. The presence of an output schema further supports the return-value expectations. Missing details like error handling, permissions, or metric time ranges are minor given the tool's simplicity.

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 schema provides only a generic string property, making the description essential. The Args section clarifies that zone_identifier accepts an origin domain, CDN domain, or ID, adding significant meaning beyond the schema. This compensates well for the 0% schema description 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?

States a specific verb and resource: 'Get statistics for a CDN zone'. It also lists the returned metrics (bandwidth, requests, cache hit ratio), which distinguishes it from related CDN tools like cdn_get_cdn_zone or cdn_get_cdn_zone_logs. However, it does not explicitly differentiate from cdn_get_cdn_zone_summary, which may overlap in 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?

The description explains how to specify the zone (origin domain, CDN domain, or ID) but gives no guidance on when to choose this tool over cdn_get_cdn_zone_summary, cdn_get_cdn_zone_logs, or cdn_analyze_cdn_performance. No alternative tools are named and no context is provided for when this stats retrieval is preferable.

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

cdn_get_cdn_zone_summaryA

Get a comprehensive summary of a CDN zone. Smart identifier resolution: use origin domain, CDN domain, or UUID.

Args: zone_identifier: The CDN zone origin domain, CDN domain, or ID

Returns: Comprehensive CDN zone summary including configuration, stats, and SSL info

ParametersJSON Schema
NameRequiredDescriptionDefault
zone_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing behavior. It does reveal that the tool accepts three identifier formats and returns a summary of configuration, stats, and SSL info. However, it does not explicitly state that this is read-only, what happens on invalid identifiers, or whether any side effects occur. For a getter, the read-only nature is implied but not explicit.

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 compact and well-structured with a one-line summary, a usage note, and clear Args/Returns sections. Each part adds useful information; the only minor issue is slight redundancy between 'Get a comprehensive summary' and the Returns clause, but it does not hurt 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 one-parameter getter with an output schema, the description covers the identifier formats and the general contents of the response. It is incomplete only in not distinguishing this from closely related CDN summary/stats tools, and in not mentioning error behavior. Given the low complexity, this is a minor gap.

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

Parameters5/5

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

The schema only provides a generic string type with 0% description coverage, but the description fully compensates by specifying that zone_identifier accepts an origin domain, CDN domain, or ID. This tells an agent exactly what values are valid, which is high-value semantic information.

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

Purpose4/5

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

The description uses a specific verb ('Get') and resource ('CDN zone'), and further clarifies the scope with 'comprehensive summary... including configuration, stats, and SSL info'. It does not explicitly name sibling tools like cdn_get_cdn_zone or cdn_get_cdn_zone_stats, so it stops short of full differentiation.

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 about when to prefer this tool over cdn_get_cdn_zone or cdn_get_cdn_zone_stats. The only usage note, 'Smart identifier resolution: use origin domain, CDN domain, or UUID', addresses parameter flexibility, not selection among alternatives. This provides no guidance for choosing the right sibling.

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

cdn_list_cdn_zonesA

List all CDN zones.

Returns: List of CDN zones with details

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action and a vague return type, without mentioning pagination, filtering, rate limits, or the scope of 'all' (e.g., account-wide vs. project-specific). This is minimal disclosure for a listing operation.

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 extremely concise, consisting of two short sentences. The primary action is front-loaded, and there is no wasted wording. It achieves maximum conciseness for the information it conveys.

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 the tool has no parameters and an output schema exists (which handles return structure), the description's brevity is somewhat acceptable. However, it lacks important context about the scope of the list (e.g., does it include zones across all projects or only the current context?). Without such clarifications, the agent might make incorrect assumptions, 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.

Parameters4/5

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

The tool has 0 parameters, and the schema coverage is 100% (empty schema). Per the baseline rule for 0 parameters, a score of 4 is appropriate. The description does not need to add parameter details since there are none, and it does not introduce any ambiguity.

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

Purpose5/5

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

The description clearly states the action (List) and resource (CDN zones), and the word 'all' differentiates it from cdn_get_cdn_zone which retrieves a specific zone. An agent can immediately understand it returns the full collection.

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 siblings like cdn_get_cdn_zone or cdn_get_cdn_zone_summary. It does not mention any prerequisites, alternatives, or exclusions, leaving the agent to infer the appropriate context from the name alone.

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

cdn_purge_cdn_zoneA

Purge all cached content from a CDN zone. Smart identifier resolution: use origin domain, CDN domain, or UUID.

Args: zone_identifier: The CDN zone origin domain, CDN domain, or ID

Returns: Purge operation details

ParametersJSON Schema
NameRequiredDescriptionDefault
zone_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It identifies the operation as a purge (which implies destructiveness) but does not warn about irreversibility, scope (all edge nodes), potential rate limits, or any side effects. It also does not clarify what 'Purge operation details' means in terms of response structure, leaving the agent without critical safety information for a destructive action.

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 concise and front-loaded with the primary action. It uses a clear structure with 'Args' and 'Returns' sections, making it easy for an agent to parse. Every sentence serves a purpose without 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 single-parameter tool, the description is fairly complete, but it omits key context such as whether the purge is reversible, if there are any delays or propagation times, and it only vaguely describes the return value as 'Purge operation details.' Given the destructive nature, more explicit warnings and response format expectations would improve completeness.

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

Parameters5/5

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

The schema only specifies a string type for zone_identifier with zero coverage, but the description adds substantial meaning by explaining that it can be an origin domain, CDN domain, or UUID. This fully compensates for the schema's lack of detail and gives the agent precise instructions on what values are acceptable.

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

Purpose5/5

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

The description clearly states the action ('Purge all cached content from a CDN zone') with a specific verb and resource. It is unambiguous and distinct from sibling tools like cdn_get_cdn_zone or cdn_create_cdn_zone, making its purpose immediately recognizable.

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 stating the tool's function, but it does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusion scenarios. Since it is the only purge tool among siblings, the context is implicit rather than explicit.

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

cdn_setup_cdn_for_websiteA

Set up a CDN zone with optimal settings for a website.

Args: origin_domain: Origin domain for the website enable_security: Enable bot blocking and security features enable_compression: Enable gzip compression regions: List of regions to enable (if not specified, uses global)

Returns: Created CDN zone with setup details and next steps

ParametersJSON Schema
NameRequiredDescriptionDefault
regionsNo
origin_domainYes
enable_securityNo
enable_compressionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must carry the burden of behavioral disclosure. It states that it creates a CDN zone and returns setup details, but it does not disclose side effects like cost, whether it modifies existing zones, or any prerequisites. The 'optimal settings' are not defined, leaving some ambiguity. However, it is a create operation, so the core behavior is clear.

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

Conciseness5/5

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

The description is compact: one sentence for purpose, a brief args list, and a returns line. It is front-loaded with the primary action and wastes no words. The structure is clean and scannable.

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 presence of an output schema means return details are covered, and the parameter explanations are solid. However, it omits contextual details such as whether the zone will be provisioned immediately, any region constraints, or whether it overwrites an existing zone. For a setup tool with multiple siblings, a bit more context about the setup process would be valuable.

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

Parameters5/5

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

The description explains each parameter's purpose (origin domain, security, compression, regions) and even notes the default for regions (global). The schema has 0% description coverage, so these explanations add critical meaning that the schema alone lacks. This is comprehensive and goes beyond the bare 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 ('Set up') and resource ('CDN zone') with a clear scope ('for a website'), and the name 'cdn_setup_cdn_for_website' distinguishes it from simpler siblings like cdn_create_cdn_zone or dns_setup_website. The purpose is immediately clear and unambiguous.

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

Usage Guidelines3/5

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

The description implies usage for website CDN setup with 'optimal settings', but it does not explicitly contrast with alternatives or state when not to use it. Siblings like cdn_create_cdn_zone exist, but there is no guidance on which to choose, leaving the agent to infer based on the name and description.

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

cdn_update_cdn_zoneA

Update a CDN zone configuration. Smart identifier resolution: use origin domain, CDN domain, or UUID.

Args: zone_identifier: The CDN zone origin domain, CDN domain, or ID cors_policy: CORS policy configuration gzip_compression: Enable gzip compression block_ai_bots: Block AI/crawler bots block_bad_bots: Block known bad bots block_ip_addresses: List of IP addresses to block regions: List of regions to enable CDN in

Returns: Updated CDN zone details

ParametersJSON Schema
NameRequiredDescriptionDefault
regionsNo
cors_policyNo
block_ai_botsNo
block_bad_botsNo
zone_identifierYes
gzip_compressionNo
block_ip_addressesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It does disclose the smart identifier resolution (a useful behavioral trait) and mentions that a return value is the updated zone details. However, it does not state whether the update is partial or full replacement, what happens to unspecified fields, or any side effects or permission requirements. This leaves important operational ambiguity for a 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?

The description is well-structured with a summary sentence, an Args block, and a Returns line. It is concise with no filler or repetition. The front-loaded purpose and clear parameter list help an agent quickly scan and understand the tool. It could be slightly tighter by avoiding redundant phrases like 'CORS policy configuration', but overall it is 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?

Given the tool has 7 parameters, no annotations, and an output schema is indicated but not shown, the description covers the basic purpose and each parameter's role. It misses critical operational details like whether the update is incremental or replaces the whole configuration, whether the zone must already exist, and what errors or validations occur. For a moderately complex mutation tool, this is a noticeable gap but not fatal.

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. The Args section gives one-line explanations for all 7 parameters, clarifying the zone_identifier flexibility (origin domain, CDN domain, or ID) and the meaning of booleans and lists (e.g., 'Block AI/crawler bots', 'List of IP addresses to block'). This adds meaning beyond the raw schema names, though it stops short of providing formats or detailed value constraints.

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: 'Update a CDN zone configuration.' It differentiates from sibling CDN tools (create, delete, list, purge) by focusing on updating an existing zone, and adds a 'Smart identifier resolution' detail that clarifies how the zone is identified. However, the phrase 'CDN zone configuration' is somewhat generic without the Args list, so it does not fully match the precision of the best examples.

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

Usage Guidelines3/5

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

The description implies use when modifying an existing CDN zone, and the smart identifier resolution gives guidance on accepted inputs for zone_identifier. It does not explicitly state when to use this tool over alternatives like cdn_create_cdn_zone or cdn_purge_cdn_zone, nor mention prerequisites or exclusions. There is enough context for an agent to infer the primary use case, but no explicit routing.

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

collection_add_resource_to_collectionB

Add a Vultr resource to a service collection.

Args: collection_id: ID of the service collection resource_type: Type of resource (instance, domain, etc.) resource_id: Vultr resource ID ctx: FastMCP context for resource change notifications resource_name: Human-readable name for the resource tags: Optional tags for the resource metadata: Additional metadata for the resource

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
metadataNo
resource_idYes
collection_idYes
resource_nameNo
resource_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits itself. It lists parameters and returns but omits any side effects, idempotency, permission requirements, or failure behavior. The mention of 'ctx: FastMCP context for resource change notifications' hints at notifications but doesn't elaborate. This is insufficient for a mutation 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 description is well-structured with 'Args' and 'Returns' sections, making it easy to scan. It is not overly verbose and front-loads the core action. The parameter list is clear, though it could be slightly more concise by removing the redundant 'ctx' line.

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 that an output schema exists, return details are not required. However, the tool is a mutation with six parameters and no annotations. The description lacks crucial context such as prerequisites (does the collection need to exist?), idempotency (what if the resource is already in the collection?), and any constraints on resource_type. This is incomplete for safe and correct usage.

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 has 0% description coverage, so the description carries the full burden. It provides brief meanings for each parameter, including examples for resource_type (instance, domain, etc.). However, it includes 'ctx' which is not in the schema, and does not give constraints or formats. It adds some value but not enough to fully 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?

The description clearly states the action: 'Add a Vultr resource to a service collection.' This specifies the verb (add), the resource (Vultr resource), and the target (service collection), which distinguishes it from sibling tools like collection_remove_resource_from_collection or collection_create_collection.

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 alternatives. The description does not mention any conditions, prerequisites, or exclusions, nor does it reference sibling tools. An agent is left to infer that this is the tool for adding resources, but there's no explicit direction.

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

collection_create_collectionA

Create a new service collection.

Args: name: Name for the service collection project: Project name to group collections environment: Environment (development, testing, staging, production, or custom) ctx: FastMCP context for resource change notifications description: Optional description region: Vultr region for resources tags: Optional tags for organization created_by: User who created the collection

Returns: Created service collection details

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
tagsNo
regionNo
projectYes
created_byNo
descriptionNo
environmentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description must carry the burden of behavior, and it does state the action (creates), the return value, and the context notification behavior via ctx. However, it says nothing about permissions, idempotency, duplicate handling, or side effects beyond the creation, so transparency is adequate but shallow.

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 and organized as a terse Args/Returns list with no filler. The ctx entry adds minor noise, but each other line has a purpose and the overall length is appropriate for a 7-parameter 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?

Together with the input schema it covers all callable parameters, requiredness is left to the schema, and the return behavior is stated. It does not explain when a project must pre-exist or how this tool relates to sibling collection operations, but for a create action with an output schema this is close to 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?

Every schema parameter (name, project, environment, description, region, tags, created_by) is given a short semantic gloss, and environment is expanded with allowed values. The main flaw is that 'ctx' appears in Args but is absent from the input schema, which could lead an agent to pass an unsupported parameter.

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 ('Create'), a specific resource ('service collection'), and the fact that it produces a new collection. The 'new' and 'service collection' wording reduces ambiguity against the sibling delete/update/resource-add collection operations, so an agent can tell it apart without opening any 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 intended use is only implied by the verb 'Create'โ€”an agent can infer to call it when creating a new service collection. It does not explicitly say when not to use it, nor does it contrast it with sibling tools like collection_add_resource_to_collection or collection_delete_collection.

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

collection_delete_collectionB

Delete a service collection.

Args: collection_id: ID of the collection to delete ctx: FastMCP context for resource change notifications force: Force deletion even if collection has resources

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNo
collection_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions force deletion and a success confirmation, but it does not warn that deletion is irreversible, what happens to the collection's resources when force is false, or what side effects may occur.

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 compact and front-loaded with the core purpose. The Args/Returns structure is scannable, and there is little wasted text, though including ctx (which is absent from the input schema) slightly muddies the parameter list.

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 destructive delete with an output schema, the description covers the essential parameters and force behavior. However, with no annotations, it should more directly state irreversibility and the default behavior when the collection contains resources.

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: it explains collection_id, force, and even mentions ctx for resource change notifications. Each schema parameter receives some semantic meaning beyond its bare name and type.

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 and resource: 'Delete a service collection.' It is distinct from sibling operations like collection_remove_resource_from_collection, though it does not explicitly name or contrast those alternatives. 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 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 removing a resource from a collection first. The force parameter implies a conditional path, but there is no explicit 'when to use' or '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.

collection_list_collections_by_projectC

List service collections for a specific project.

Args: project: Project name to filter by environment: Optional environment filter

Returns: List of matching service collections

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYes
environmentNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the operation is a list (read-only) and mentions filtering, but it does not disclose pagination, sorting, default behavior without environment, or any side effects. The term 'service collections' is not defined, and the return format is only vaguely indicated.

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 concise, with a brief purpose statement and a simple Args/Returns section. It is front-loaded with the main purpose. However, it includes a docstring-style format that is slightly verbose for an MCP description, and the Returns line adds little detail.

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 the tool's low complexity (simple list operation) and the presence of an output schema, the description provides adequate information for an agent to know the basic purpose and parameters. However, the lack of usage guidelines, clarification of 'service collections', and behavioral details like pagination leave notable gaps, though not severe for a straightforward list 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?

Schema description coverage is 0%, so the schema provides zero documentation for the parameters. The description adds some meaning by explaining 'project' as 'Project name to filter by' and 'environment' as 'Optional environment filter', but it is minimal and does not detail expected formats, case sensitivity, or relationship between parameters. Baseline for 0 params is 4, but with 2 params, a 3 is fair.

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 ('List') and resource ('service collections') with a specific filter ('for a specific project'). It is distinct from the sibling 'collection_create_collection' and other collection tools, but it does not explicitly name a sibling to differentiate from, so a perfect score is not warranted.

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 minimal usage context (filtering by project and optional environment) but does not explain when to use this tool versus other collection tools, such as collection_add_resource_to_collection or collection_list_collections (if it exists). No explicit exclusions or alternatives are provided.

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

collection_promote_collection_environmentB

Promote a service collection to a different environment.

Args: collection_id: ID of the collection to promote target_environment: Target environment (development, testing, staging, production) ctx: FastMCP context for resource change notifications copy_resources: Whether to copy resources to new environment workflow_triggers: Whether to trigger promotion workflows

Returns: Details of the promotion operation

ParametersJSON Schema
NameRequiredDescriptionDefault
collection_idYes
copy_resourcesNo
workflow_triggersNo
target_environmentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It fails to mention side effects (e.g., whether the original collection is modified or destroyed), permissions required, reversibility, or the exact meaning of 'promotion'. The inclusion of a 'ctx' parameter not present in the schema adds confusion rather than clarity.

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 purpose and uses a structured Args/Returns format. However, it includes the extraneous 'ctx' parameter and some redundancy in the Args block, making it slightly less concise than ideal.

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 promotion operation with no annotations and no output schema, the description is incomplete. It doesn't explain what happens to the source collection, whether promotion is destructive, what 'copy_resources' actually does beyond copying, or any prerequisites. The return value is only vaguely described as 'details of the promotion operation'.

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 is the only source of parameter meaning. It explains each schema parameter (collection_id, target_environment, copy_resources, workflow_triggers) but introduces an undocumented 'ctx' parameter, which could mislead an agent into passing it. The description of target_environment with allowed values is helpful, but the extra param and vague descriptions of booleans reduce its value.

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

Purpose5/5

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

The description clearly states the verb 'Promote' and the resource 'service collection' to a different environment, making the action specific and distinguishable from sibling tools like collection_delete_collection or collection_create_collection.

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 stating the action, but provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It doesn't mention that this is for moving collections between environments or that it's the only way to do so.

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

collection_remove_resource_from_collectionA

Remove a resource from a service collection.

Args: collection_id: ID of the service collection resource_type: Type of resource to remove resource_id: Vultr resource ID to remove ctx: FastMCP context for resource change notifications

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
resource_idYes
collection_idYes
resource_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does state that the operation removes a resource and returns success confirmation, and it mentions FastMCP change notifications. However, it does not disclose error behavior, idempotency, permission requirements, or clarify that the underlying resource itself is not deleted.

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 compact and front-loaded with a clear purpose sentence followed by an Args/Returns structure. The mention of ctx is slightly distracting because it is not present in the input schema, but overall the definition is tight and skimmable.

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 and has an output schema, so return-value details are covered. Still, with no annotations and zero schema descriptions, the description omits valid resource_type values, prerequisites, and edge-case behavior, making it moderately complete but not fully self-sufficient.

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 adds one-line meanings for each parameter, with 'Vultr resource ID' giving useful domain context for resource_id. However, resource_type is only restated as 'Type of resource to remove' with no allowed values, examples, or relationship to resource_id, leaving a notable 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?

The description states a specific action ('Remove a resource from a service collection') with a clear verb and resource. It also differentiates cleanly from the sibling tool collection_add_resource_to_collection by making the removal direction explicit.

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

Usage Guidelines3/5

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

The description implies the primary use case but gives no explicit when-to-use or when-not-to-use guidance. It does not mention alternatives or conditions, such as using this tool when the resource should remain intact but simply be unassociated versus deleting the collection entirely.

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

collection_update_collection_permissionsC

Update permissions for a service collection.

Args: collection_id: ID of the service collection user_id: User ID to grant/revoke permissions permission_level: Permission level (owner, editor, viewer) ctx: FastMCP context for resource change notifications action: Action to take (add, remove)

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoadd
user_idYes
collection_idYes
permission_levelYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions 'ctx: FastMCP context for resource change notifications', which hints at side effects (notifications), but doesn't disclose whether permissions are replaced or merged, whether 'remove' on a non-existent permission errors, or whether the operation is idempotent. The 'Returns: Success confirmation' is minimal and doesn't describe failure modes or partial success 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 description is compact and front-loaded with the core purpose, but the Args/Returns format is boilerplate and includes 'ctx' which is an implementation detail (FastMCP context) that an agent doesn't need to know to call the tool. The structure is acceptable but not exemplary.

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 annotations and no output schema details, the description is incomplete. It doesn't explain the effect of 'add' vs 'remove' on existing permissions, whether the operation is additive or replaces all permissions, or what 'Success confirmation' actually contains. The output schema exists but the description doesn't reference it, and the return value description is vague.

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 lists all four parameters with brief explanations, but the explanations are thin: 'permission_level' says '(owner, editor, viewer)' but doesn't specify allowed values or whether they're case-sensitive; 'action' says '(add, remove)' but doesn't explain the default behavior or what happens if omitted. The description adds some meaning beyond the bare schema, but not enough to fully compensate for zero 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 states a specific verb ('Update') and resource ('permissions for a service collection'), which clearly distinguishes it from sibling tools like collection_create_collection or collection_add_resource_to_collection. It doesn't explicitly name a sibling alternative, but the resource+action combination 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 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. It doesn't mention prerequisites (e.g., collection must exist, user must exist), nor does it explain when to use 'add' vs 'remove' actions. The context is implied by the name and description, but there's no explicit when-to-use or 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.

db_analyze_database_migration_statusC

Get enhanced migration status analysis with recommendations.

Args: database_id: The database ID or label

Returns: Detailed migration analysis with troubleshooting recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior. It states it returns 'detailed analysis with troubleshooting recommendations', which implies a read-only analysis, but does not explain side effects (if any), data dependencies, or limitations. It lacks detail on what 'enhanced' means or how it differs from a basic status check.

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 brief, with three sections: purpose, Args, Returns. It is front-loaded with the main purpose and stays within 15 words of prose. No filler or 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?

Given the tool only takes one parameter and has an output schema (which presumably describes the returns), the description is mostly sufficient. However, with no annotations, it lacks critical context about whether the operation is safe (read-only) and when to use it over siblings, leaving some 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%, so the description must compensate. It defines 'database_id' as 'The database ID or label', which adds a minor clarification (label) but does not explain the format, scope, or how to find it. The parameter is simple, so this is minimal 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 says it provides 'enhanced migration status analysis with recommendations', which clearly indicates it goes beyond basic status, and the tool name specifies 'database migration status'. It is distinct from siblings like 'db_get_migration_status' and 'db_start_migration', though it doesn't explicitly contrast 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 Guidelines2/5

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

The description does not state when to use this tool versus other migration tools (e.g., db_get_migration_status, db_start_migration). It implies usage for checking status but offers no context, prerequisites, or exclusions.

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

db_analyze_database_performanceA

Analyze database performance and provide optimization recommendations.

Args: database_id: The database ID or label (e.g., "my-mysql-db" or UUID)

Returns: Performance analysis with health score and optimization recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden for behavioral traits. It does disclose that the tool returns a 'performance analysis with health score and optimization recommendations,' which clarifies the output shape. However, it does not mention whether the analysis is read-only, whether it may impact database performance, or if any special permissions are required. The verb 'analyze' implies non-destructive, but this is not made explicit.

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 compact and front-loaded with the purpose statement, followed by clearly labeled Args and Returns sections. Every sentence adds valueโ€”no filler or redundant restating of the tool name. It is appropriately sized for a single-parameter analysis 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?

The description is sufficient for an agent to call the tool correctly: it names the operation, the parameter, and summarizes the return. Since an output schema exists, the description need not detail the return structure. Missing guidance on when to use it (vs alternatives) and any behavioral caveats (read-only, permissions) leaves slight gaps, but for a simple analysis tool it is nearly 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. It does this by explaining the lone parameter: 'database_id: The database ID or label (e.g., 'my-mysql-db' or UUID)'. This adds context beyond the raw schema (string, required) with an example and clarifies what kind of value is accepted. It fully covers the required parameter.

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: 'Analyze database performance' followed by 'provide optimization recommendations.' This clearly distinguishes it from siblings like db_get_usage (retrieving usage metrics) and db_analyze_database_migration_status (analyzing migration status). The description is unambiguous about the tool's core function.

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 about when to choose this tool over other db_* analysis tools. There's no mention of alternatives, exclusions, or context like 'use when your database is running slowly' or 'for performance optimization recommendations.' The agent must infer usage purely from the name and generic wording, which is inadequate given many sibling database tools.

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

db_createA

Create a new managed database.

Args: database_engine: Database engine (mysql, pg, valkey, kafka) database_engine_version: Engine version (MySQL: 8, PostgreSQL: 13-17, Valkey: 7, Kafka: 3.8) region: Region code (e.g., 'ewr', 'lax') plan: Plan ID (e.g., 'vultr-dbaas-hobbyist-cc-1-25-1') label: User-supplied label for the database tag: Optional tag for the database vpc_id: VPC ID to deploy in (or 'new' for new VPC) trusted_ips: List of IP addresses allowed to access (CIDR notation) mysql_sql_modes: MySQL SQL modes to enable (MySQL only) mysql_require_primary_key: Require primary key for tables (MySQL only) mysql_slow_query_log: Enable slow query logging (MySQL only) valkey_eviction_policy: Data eviction policy (Valkey only) kafka_rest_enabled: Enable Kafka REST support (Kafka only, business+ plans) kafka_schema_registry_enabled: Enable Schema Registry (Kafka only, business+ plans) kafka_connect_enabled: Enable Kafka Connect (Kafka only, business+ plans)

Returns: Created database information

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
planYes
labelYes
regionYes
vpc_idNo
trusted_ipsNo
database_engineYes
mysql_sql_modesNo
kafka_rest_enabledNo
mysql_slow_query_logNo
kafka_connect_enabledNo
valkey_eviction_policyNo
database_engine_versionYes
mysql_require_primary_keyNo
kafka_schema_registry_enabledNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must carry full behavioral disclosure. It identifies this as a creation (mutation) operation, but does not mention potential costs, irreversibility, required permissions, or whether the creation is synchronous. It does note engine-specific settings (e.g., 'business+ plans' for Kafka), but that is more parameter constraint than behavioral consequence. An agent would not know the impact of this action beyond 'it creates something.'

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 parameter list that is necessary for 15 parameters, and each line is concise and directly informative. The main action sentence is front-loaded. While long, it is not verboseโ€”every line adds value. The structure is similar to a docstring, which is efficient for such a parameter-heavy 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?

Given the tool's complexity and the presence of an output schema, the description covers parameter syntax well. However, it lacks contextual completeness regarding when to use it, what plans are valid for which engines, region availability, or billing implications. It mentions 'business+ plans' for Kafka features, which is a start, but doesn't guide the agent on high-level decision-making or prerequisites. For a high-impact creation operation, more context would be beneficial.

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

Parameters5/5

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

Schema description coverage is 0%, but the description provides extensive parameter semantics. It gives example values for each parameter (e.g., 'ewr', 'lax' for region; 'vultr-dbaas-hobbyist-cc-1-25-1' for plan), explains the meaning (e.g., trusted_ips as CIDR notation), and clearly marks engine-specific constraints (MySQL only, Valkey only, Kafka only). This fully compensates for the lack of schema descriptions and adds meaning beyond the raw types.

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 clear verb+resource: 'Create a new managed database.' It distinguishes from sibling tools like db_delete and db_create_read_replica by specifying 'new' and 'managed', leaving no ambiguity about its role. The name already signals the primary creation operation, and the description reinforces that.

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 explicit guidance on when to use this tool versus alternatives such as db_create_read_replica or db_fork_database. It does not mention exclusions, prerequisites, or situational context. The parameter list hints at engine-specific options, but there is no guidance on choosing this over other creation-related tools.

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

db_create_connection_poolA

Create a new connection pool.

Args: database_id: The database ID or label name: Connection pool name database: Target logical database name username: Database username for the pool mode: Pool mode (session, transaction, statement) size: Pool size (number of connections)

Returns: Created connection pool information

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
nameYes
sizeYes
databaseYes
usernameYes
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden, but it only says 'Create a new connection pool' and 'Returns: Created connection pool information.' It does not disclose side effects, required permissions, idempotency, or failure conditions, which are important for a mutation operation.

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 appropriately brief, starts with the purpose, and uses clean Args/Returns sections. Every line contributes useful information 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?

With an output schema present and all parameters well described, the agent has enough to make the call. However, it lacks usage context, prerequisites (e.g., existing database and user), and any note on size limits or naming constraints, 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.

Parameters5/5

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

Schema description coverage is 0%, yet the description documents all six parameters with clear meanings, including the allowed mode values 'session, transaction, statement.' This fully compensates for the silent schema and enables correct invocation.

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 'Create a new connection pool,' which specifies a clear verb and resource. It distinguishes itself from sibling tools like db_create and db_create_read_replica by explicitly targeting connection pools.

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 alternatives such as db_list_connection_pools, db_update_connection_pool, or db_delete_connection_pool. The description does not mention any prerequisites or conditions, so an agent is left to infer the appropriate context.

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

db_create_kafka_topicA

Create a Kafka topic (Kafka databases only).

Args: database_id: The Kafka database ID or label name: Topic name partitions: Number of partitions replication: Replication factor retention_hours: Retention time in hours retention_bytes: Retention size in bytes

Returns: Created topic information

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
partitionsNo
database_idYes
replicationNo
retention_bytesNo
retention_hoursNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are present, so the description carries the disclosure burden. It clearly labels the operation as creating a resource and notes the return value, which is adequate. However, it does not mention likely failure modes, such as the topic already existing, required permissions, or whether any side effects occur beyond adding the topic to the Kafka database.

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 compact and well-structured: one purpose sentence followed by a clean Args list and a Returns line. It front-loads the core meaning and avoids unnecessary prose, schema type repetition, or filler. Every section serves a clear purpose.

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 six parameters, no annotations, and an existing output schema, the description covers all parameter semantics, states the Kafka-only constraint, and notes the return value. It leaves out default-value discussion, validation ranges, and error behavior, but those are partially covered by the schema and do not prevent an agent from making a correct call.

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 compensates by listing all six parameters with brief meanings. It adds useful context beyond the raw schema, particularly that database_id accepts a Kafka database ID or label and that retention values are in hours and bytes. Some entries are near-tautological ('partitions: Number of partitions'), but the parameter list is sufficient to map arguments to their roles.

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 and resource: 'Create a Kafka topic,' and immediately qualifies the scope with '(Kafka databases only).' This clearly distinguishes it from generic db_create and other database sub-resource creators like db_create_user or db_create_read_replica without requiring the agent to inspect 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 Guidelines3/5

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

The 'Kafka databases only' parenthetical provides a clear exclusion, warning agents not to use this tool for non-Kafka databases. However, it does not explicitly contrast this tool with related Kafka topic siblings such as db_list_kafka_topics, db_get_kafka_topic, db_update_kafka_topic, or db_delete_kafka_topic. When to prefer this over those alternatives 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.

db_create_logical_databaseB

Create a new logical database within a managed database instance.

Args: database_id: The database ID or label name: Name for the new logical database

Returns: Created logical database information

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states that the tool creates a logical database and returns its information, but it does not mention permissions, naming constraints, idempotency, failure behavior, or any side effects on the parent managed database instance. This is a notable gap for a mutating create operation.

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 concise and well-structured: a clear one-sentence purpose followed by compact Args and Returns sections. There is no filler, and the core action is 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 simple two-scalar-parameter tool with an output schema, the essentials are present: purpose, parameter meanings, and return behavior. However, because it is a mutating operation with no annotations and no usage guidance, an agent still lacks context about prerequisites, constraints, and side effects, making it only minimally 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?

Despite 0% schema description coverage, the description provides meaningful glosses for both required parameters. Describing database_id as 'The database ID or label' is genuinely useful for invocation, though the definition of name is somewhat self-evident. It compensates for the schema's lack of semantic detail, though not richly.

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: 'Create a new logical database within a managed database instance.' This clearly identifies the verb and resource, and the phrase 'within a managed database instance' helps distinguish it from tools like db_create. However, it does not explicitly name or contrast sibling tools, 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 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 db_create, db_create_read_replica, or db_create_connection_pool. There are no usage conditions, exclusions, or explicit context cues beyond the tool name itself.

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

db_create_read_replicaC

Create a read replica of a database.

Args: database_id: The source database ID or label label: Label for the read replica region: Region for the read replica plan: Plan ID for the read replica

Returns: Information about the created read replica

ParametersJSON Schema
NameRequiredDescriptionDefault
planYes
labelYes
regionYes
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the operation (create) and lists parameters, but does not disclose side effects, cost implications, replication lag behavior, whether the source database is affected, or any constraints (e.g., region must match source, plan compatibility). For a mutation tool with zero annotation coverage, this is a significant gap.

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

Conciseness4/5

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

The description is compact and front-loaded with the core purpose. The Args/Returns structure is scannable and each line earns its place. It could be slightly more concise by dropping the 'Returns' section since an output schema exists, but it is not bloated.

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?

The tool has an output schema, so return values are covered. However, with no annotations, no parameter enums, and 0% schema description coverage, the description must provide more context about prerequisites, constraints, and side effects. It does not mention that the source database must exist, whether the replica is created asynchronously, or any region/plan compatibility rules. For a create operation with four required parameters, this is incomplete.

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 lists the four parameters with one-line meanings ('The source database ID or label', 'Label for the read replica', etc.), which adds some value beyond the bare schema. However, it doesn't explain formats, constraints, or how to obtain valid values (e.g., where to find plan IDs, region names). The coverage is minimal and leaves the agent guessing about valid 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 and resource: 'Create a read replica of a database.' This clearly distinguishes it from sibling tools like db_create, db_fork_database, and db_promote_read_replica. However, it doesn't explicitly name those siblings or contrast itself with them, 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?

The description implies usage context: it is for creating a read replica, which is distinct from creating a database (db_create), forking (db_fork_database), or promoting a replica (db_promote_read_replica). But it provides no explicit guidance on when to choose this tool over alternatives, no prerequisites (e.g., source database must exist), and no exclusions. The context is clear enough to infer, but not explicitly stated.

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

db_create_userA

Create a new database user.

Args: database_id: The database ID or label username: Username for the new user password: Password (auto-generated if not provided) encryption: Password encryption type (MySQL: caching_sha2_password, mysql_native_password) access_level: Permission level (Kafka: admin, read, write, readwrite)

Returns: Created user information

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordNo
usernameYes
encryptionNo
database_idYes
access_levelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal some behavior: password is auto-generated if not provided, encryption types are MySQL-specific, access levels are Kafka-specific. However, it omits critical behaviors such as what happens if the user already exists, whether database_id must reference an existing database, required permissions to execute the operation, and any side effects beyond creation. The description is functional but not fully transparent.

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

Conciseness5/5

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

The description is exceptionally concise and well-structured. It starts with a one-line purpose, followed by a clearly labeled 'Args' section listing each parameter with a brief explanation, and ends with a 'Returns' section. There is no fluff or redundancy; every line contributes to the tool's understanding.

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

Completeness4/5

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

The description covers all parameters, explains defaults and valid values, and indicates the return type. It also implies multi-database support by mentioning MySQL and Kafka specifics. However, it lacks prerequisites (e.g., database must exist), error conditions, and any notes on idempotency or concurrency. Given the tool's simplicity and the presence of an output schema (not shown), the description is fairly complete but could benefit from a few more context notes.

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 schema has zero description coverage, so the description must compensate. It provides meaningful explanations for all five parameters: database_id ('ID or label'), username, password (with auto-generation default), encryption (with valid MySQL values), and access_level (with valid Kafka values). This adds significant value over the raw schema, though it could be more explicit about parameter formats or constraints (e.g., length limits, allowed characters).

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 and resource: 'Create a new database user.' It also lists the exact parameters, making the purpose unambiguous. While it doesn't explicitly differentiate from sibling tools like db_update_user or db_delete_user, the name and description together are sufficient for an agent to know it creates a user, not modifies or deletes 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?

The description implies when to use the tool (when you need to create a database user) but provides no explicit alternatives or exclusions. It does not mention, for example, that this tool is for creating users on existing databases, or that it should not be used for updating or deleting users. The parameter details (password auto-generation, encryption types, access levels) give some context, but there is no direct guidance on selecting this over related tools.

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

db_deleteA

Delete a managed database.

Args: database_id: The database ID or label (e.g., "my-mysql-db" or UUID)

Returns: Status message confirming deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. The description only states that it returns a status message, but does not mention the destructive nature (irreversible), potential impact on associated resources (like backups or replicas), or whether confirmation is required. Deleting a managed database is a significant action that warrants more transparency.

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 concise and well-structured: a one-line summary followed by clear sections for args and returns. Every sentence earns its place, and the format is easy to scan. It is not overly verbose.

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 with one parameter, but it is destructive and has no annotations. The output schema exists, which partially covers return value expectationsholistically, but the description lacks details about side effects, prerequisites, and idempotency. For a simple tool, it's adequate but could be more complete for a high-risk operation.

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 schema provides only the parameter name and type with no description (0% coverage). The description adds valuable context by stating the parameter can be a database ID or label, and gives an example (e.g., 'my-mysql-db' or UUID). This helps the agent understand what to pass, which is not evident from the schema 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 clearly states the action ('Delete a managed database') and identifies the resource ('managed database'), which distinguishes it from sibling tools like db_delete_logical_database or db_delete_user. Although it doesn't explicitly name these siblings, the phrase 'managed database' is specific enough to avoid confusion with other delete operations.

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 makes it clear when to use this tool (when deleting a managed database), but it does not provide any guidance on when not to use it or mention alternatives. For example, it doesn't note that deleting a logical database or a user should use different tools. Given the large list of siblings, some exclusionary guidance would be helpful.

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

db_delete_connection_poolB

Delete a connection pool.

Args: database_id: The database ID or label pool_name: The connection pool name to delete

Returns: Status message confirming deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
pool_nameYes
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations are absent, so the description carries the burden. It states the operation is destructive ('Delete') and discloses that it returns a status message confirming deletion. It does not, however, disclose any side effects or caveats (e.g., impact on active connections), which would strengthen transparency.

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 appropriately short and front-loaded with the core purpose. The Args section is mostly a restatement of the schema, but it adds small clarifications, and there is no unnecessary filler.

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 output schema exists and the description confirms the return value, and both required parameters are adequately documented. However, for a destructive operation with no annotations, a short note on what deletion of a pool entails would make the description 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?

With 0% schema description coverage, the description compensates by explaining that database_id is 'The database ID or label' and pool_name is 'The connection pool name to delete,' adding meaning beyond the bare string types in the input 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 ('Delete a connection pool'), making the action unambiguous and distinguishable from sibling delete operations like db_delete and db_delete_user. It adds only slightly to the tool name, but it clearly specifies the object of deletion.

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, no prerequisites (e.g., the pool must exist), and no mention of exclusions or preconditions. The intended use is only implied by the word 'delete'.

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

db_delete_kafka_topicB

Delete a Kafka topic.

Args: database_id: The Kafka database ID or label topic_name: The topic name to delete

Returns: Status message confirming deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
topic_nameYes
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose irreversible data loss, permission requirements, and potential cascading effects. It only states 'Delete a Kafka topic' and describes the return message, which is insufficient for a destructive operation.

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 plus a compact Args/Returns block. Every sentence has a purpose, no fluff, and the key action 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 two-parameter delete with an output schema, the description covers the inputs and output to an acceptable degree. It is short but complete enough for the minimal call, though it lacks risk and permission 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?

With 0% schema description coverage, the description must define parameters. It adds minor value by saying 'database_id' is an ID or label, but it does not provide formats, constraints, or look-up context. The parameter docs are just one line each and do not fully compensate for the missing 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 ('Delete') and resource ('Kafka topic'), and the tool name clearly distinguishes it from sibling db_delete and other db_delete_* tools. 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 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 db_delete or other Kafka topic operations, no prerequisites, and no warning about the destructive nature. An agent receives no contextual cues to choose this tool appropriately.

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

db_delete_logical_databaseB

Delete a logical database.

Args: database_id: The database ID or label db_name: The logical database name to delete

Returns: Status message confirming deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of disclosing behavioral consequences. It only says 'Delete' and 'Returns: Status message confirming deletion'; it does not state whether the deletion is permanent, whether it destroys associated data, requires specific permissions, or affects the containing database.

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 compact and well organized, with a one-line purpose, an Args list, and a Returns clause. Every sentence earns its place and no filler or redundant detail is present.

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

Completeness3/5

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

For a simple two-parameter delete operation, the description covers the basic action, the required parameters, and the return value. However, it lacks important context such as the parent/child relationship between `database_id` and `db_name`, and it does not disclose irreversible data-loss implications, making it minimally viable but incomplete.

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

Parameters3/5

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

With 0% schema description coverage, the Args section adds helpful meaning: `database_id` accepts 'ID or label' and `db_name` is identified as the logical database name to delete. However, it does not clarify the relationship between the two parameters or what kind of database ID `database_id` refers to, leaving a meaningful 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 clear action ('Delete a logical database') and names the specific resource, so an agent knows what operation is being exposed. The term 'logical database' gives some distinction from the sibling `db_delete`, but the description does not explicitly contrast the two, leaving a minor 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 `db_delete` or `db_create_logical_database`. There are no exclusions, prerequisites, or conditions stated, so an agent must infer usage solely from the tool name and the generic delete sentence.

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

db_delete_userA

Delete a database user.

Args: database_id: The database ID or label username: The username to delete

Returns: Status message confirming deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description must carry the behavioral burden. It only says 'Delete' and mentions a status message; it does not disclose whether deletion is permanent, whether it affects active connections or dependent objects, or what permissions are required. For a destructive operation this is a noticeable gap.

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

Conciseness5/5

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

The description is tight and front-loaded: one purpose sentence, then a clean Args section, then a Returns note. No filler or repetition of schema types, and every line 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 two-parameter deletion tool this is mostly sufficient: both params are explained and a return value is described. However, it lacks usage context, behavioral caveats, and any mention of failure modes or side effects, so it is not fully complete even for a simple 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 description coverage is 0%, but the description defines both parameters: database_id as 'The database ID or label' and username as 'The username to delete.' This adds meaning beyond the bare string types in the schema, though the definitions are minimal.

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: 'Delete a database user.' This clearly distinguishes it from nearby siblings like db_delete (deletes a database) and user_delete (deletes an account), while aligning with db_create_user/db_update_user in the same family.

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

Usage Guidelines3/5

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

The intended use is implied by the name and first line, but there is no explicit guidance on when to choose this tool over alternatives, no prerequisites, and no exclusions. It is adequate for a straightforward deletion but leaves 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.

db_fork_databaseB

Fork a database to create a copy.

Args: database_id: The source database ID or label label: Label for the forked database region: Region for the new database plan: Plan ID for the new database vpc_id: VPC ID for the new database

Returns: Information about the forked database

ParametersJSON Schema
NameRequiredDescriptionDefault
planYes
labelYes
regionYes
vpc_idNo
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must carry the behavioral burden. It only states the action and return type, without disclosing side effects such as data copying semantics, asynchronous behavior, cost implications, or prerequisites. It does not warn that this creates a new resource that may incur charges, nor does it clarify whether the source is left untouched. This is a significant gap for a mutation-like operation.

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 compact and well-structured, with a clear purpose statement followed by an Args list and a Returns line. Each parameter gets a single concise line, and there is no fluff. The structure front-loads the main purpose and is easy to scan.

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 database operation, the description lacks essential context such as whether the source must exist, whether the copy is immediate or asynchronous, any region/plan availability constraints, or whether the operation is reversible. It mentions the return value but does not describe the output schema (though that exists separately). The description is insufficient for an agent to safely invoke this tool without additional assumptions.

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. It provides a brief explanation for each of the five parameters (database_id, label, region, plan, vpc_id), which adds meaning beyond the raw schema types. However, it lacks format hints or examples, and does not clarify how to obtain valid values for region or plan. It covers all parameters adequately but not exhaustively.

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

Purpose4/5

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

The description clearly states the verb 'Fork' and the resource 'database to create a copy', which distinguishes it from simple creation or deletion. It doesn't explicitly differentiate from similar siblings like db_create_read_replica, but the purpose is unambiguous. It avoids tautology and gives a specific action.

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 provided on when to use this tool versus alternatives such as db_create or db_create_read_replica. The description does not mention when a fork is appropriate or when to prefer other database creation methods. This leaves the agent without decision criteria for tool selection.

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

db_get_connection_poolB

Get information about a connection pool.

Args: database_id: The database ID or label pool_name: The connection pool name

Returns: Connection pool information

ParametersJSON Schema
NameRequiredDescriptionDefault
pool_nameYes
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the tool 'gets' information, implying a read operation, but does not mention permissions, side effects, rate limits, or the nature of the returned data beyond a vague 'connection pool information'. This is minimal disclosure for a tool with no annotation support.

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 concise and well-structured with clear 'Args:' and 'Returns:' sections. It avoids unnecessary fluff and conveys the essential purpose and parameters in a compact format. The structure aids readability and quick comprehension.

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 get tool with two parameters, the description covers the basics but leaves gaps. It does not specify what 'connection pool information' includes (e.g., configuration, usage stats, status), though the presence of an output schema (per context) mitigates this. It also lacks any mention of prerequisites or error conditions. The description is adequate but not comprehensive.

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

Parameters3/5

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

Schema description coverage is 0%, so the description is the only source of parameter meaning. It provides brief explanations: 'database_id: The database ID or label' and 'pool_name: The connection pool name'. This adds some semantic value beyond the schema's bare type declarations, though the explanations are shallow and lack examples or format details.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('Get') and resource ('information about a connection pool'). It is not a tautology and effectively distinguishes this from siblings like db_list_connection_pools (which lists pools) and db_create_connection_pool (which creates pools). An agent can immediately understand what this tool 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 provides no guidance on when to use this tool versus alternatives. It does not mention exclusions or conditions that would select this over db_list_connection_pools or other related tools. The use case (fetching details for a specific pool) is implied by the parameters but never explicitly stated.

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

db_get_kafka_topicB

Get information about a Kafka topic.

Args: database_id: The Kafka database ID or label topic_name: The topic name

Returns: Kafka topic information

ParametersJSON Schema
NameRequiredDescriptionDefault
topic_nameYes
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It implies a read-only operation but never explicitly states that it is non-mutating, nor does it mention any potential side effects, authentication requirements, or error conditions. For a get operation lacking annotation coverage, this is a significant omission.

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 concise and well-structured with an Args/Returns format, containing no extraneous information. Every sentence contributes to explaining the tool's basic operation and parameters.

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?

Although an output schema exists (reducing the need to explain return types), the description fails to provide usage guidance or behavioral transparency, both critical for a tool with no annotations. It gives a minimal overview but leaves an agent without enough context to decide when to call it or what to expect behaviorally beyond a simple 'get'.

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 description adds some meaning beyond the schema by clarifying that database_id accepts 'the Kafka database ID or label' and that topic_name is 'the topic name'. However, it does not specify data formats, constraints, or how to construct the ID/label, leaving room for ambiguity with a 0% schema coverage.

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 clear verb ('Get information about') and a specific resource ('a Kafka topic'), making it distinct from siblings like db_list_kafka_topics (which lists all topics) and db_create_kafka_topic. The purpose is unambiguous and immediately differentiates it from neighboring 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?

No guidance is provided on when to use this tool versus alternatives. For instance, it does not mention that db_list_kafka_topics should be used to retrieve all topics, nor does it provide any context about prerequisites or typical scenarios. An agent must infer its usage from the name alone.

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

db_get_logical_databaseB

Get information about a logical database.

Args: database_id: The database ID or label db_name: The logical database name

Returns: Logical database information

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states the action and parameters; it does not explicitly confirm this is a read-only operation, mention authentication requirements, rate limits, or any side effects. It also doesn't describe the return format (though an output schema exists). The description adds little beyond the basic 'get' semantics.

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 extremely concise and well-structured, with a clear purpose statement followed by Args and Returns sections. It is front-loaded and contains no unnecessary words. This is appropriately sized for a simple get 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?

Given the tool's simplicity and the presence of an output schema, the description covers the basic inputs and purpose. However, it fails to explain the relationship between database_id and db_name, or why both are required. It also doesn't mention any special cases or error conditions. For a straightforward get, this is adequate but leaves some ambiguity for the agent.

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

Parameters3/5

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

The description provides brief parameter semantics: 'database_id: The database ID or label' clarifies that this can be an ID or a label, and 'db_name: The logical database name' essentially restates the parameter name. Since the schema has no descriptions (coverage 0%), these minimal details add some value, but they don't explain why both parameters are required or their relationship. This is acceptable but not rich.

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 pair: 'Get information about a logical database.' This distinguishes it from siblings like db_list_databases (listing) and db_create_logical_database (creation). However, it doesn't specify what kind of information is returned beyond the generic 'logical database information,' which is slightly vague but acceptable for a get 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?

No explicit usage guidance is provided. The description does not mention when to use this tool instead of alternatives like db_list_databases or db_get_usage, nor does it state prerequisites or exclusions. The usage context is only implied by the tool name and the action 'get.'

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

db_get_maintenance_updatesC

Get available maintenance updates for a database.

Args: database_id: The database ID or label

Returns: List of available maintenance updates

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool returns a list of available maintenance updates, but doesn't state whether this is a read-only operation, whether it requires special permissions, whether it triggers any side effects, or what the output structure looks like. The description is minimal and doesn't add behavioral context beyond the basic return type.

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 with the main purpose. The Args/Returns structure is clear and scannable. It earns its place with no filler, though it could add a bit more context without becoming bloated.

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 one-parameter read tool, the description is mostly adequate, but with no annotations and no output schema details, an agent doesn't know what the returned list looks like, whether the operation is safe, or how to interpret the results. The sibling context (db_start_maintenance, db_get_migration_status) suggests this is part of a maintenance workflow, but the description doesn't explain that relationship.

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 does explain that database_id is 'The database ID or label', which adds a small amount of meaning beyond the schema's bare string type. However, it doesn't clarify the format of the ID/label, how to find it, or any constraints (e.g., must be a UUID vs a name).

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 ('Get') and resource ('available maintenance updates for a database'), which clearly distinguishes it from sibling tools like db_start_maintenance or db_list_backups. It doesn't explicitly name a sibling alternative, but the resource and action are specific enough to identify the tool's 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?

The description implies usage context: call this when you need to see available maintenance updates before starting maintenance. However, it doesn't explicitly state when to use this vs alternatives like db_start_maintenance or db_get_migration_status, nor does it mention any prerequisites (e.g., database must exist).

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

db_get_migration_statusB

Get the status of an ongoing database migration.

Args: database_id: The database ID or label

Returns: Migration status information

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations exist, so the description carries the full burden of disclosing side effects and edge cases. It only states what is returned and does not address whether the call is read-only, what happens when no migration is ongoing, or how to interpret statuses.

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 definition is compact and front-loaded: one purpose sentence, then Args and Returns sections. No unnecessary detail or repetition of schema 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 one-parameter read-style tool with an output schema, the basics are covered. But with no annotations and a highly similar sibling (db_analyze_database_migration_status), the lack of edge-case/error context and explicit sibling boundary leaves the description only partially 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 schema only declares database_id as a string, while the description's Args section explains that it can be a database ID or label, adding real selection guidance. For a one-parameter tool with 0% schema coverage, this compensates for the structured schema's silence, though it remains minimal.

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 lead sentence names a specific action ('Get') and resource ('status of an ongoing database migration'), so an agent knows what the tool does. However, it does not distinguish itself from the sibling db_analyze_database_migration_status, which could plausibly be chosen for the same task.

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 qualifier 'ongoing' implies this tool is for monitoring an in-progress migration, giving a weak but real usage signal. There is no explicit when-to-use or when-not-to-use guidance, and no mention of alternatives such as db_start_migration, db_stop_migration, or db_analyze_database_migration_status.

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

db_get_usageB

Get database usage statistics (CPU, memory, disk).

Args: database_id: The database ID or label (e.g., "my-mysql-db" or UUID)

Returns: Usage information including CPU, memory, and disk statistics

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states the tool retrieves usage statistics but does not indicate whether it is read-only, what happens if the database does not exist, or any authentication or permission requirements. For a simple retrieval tool, it would benefit from noting that it only reads data.

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 concise and well-structured, using Args/Returns format. It avoids redundancy and provides the essential information in a scannable way. A minor improvement would be to separate the prose summary from the argument details, but it is 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?

The tool is simple, and the presence of an output schema (though not shown) covers return details. However, the description does not clarify how this differs from db_analyze_database_performance or other db-related tools, and it does not mention potential rate limits or data freshness. It is adequate but leaves some gaps for a tool with many siblings.

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?

Despite 0% schema description coverage, the description clearly explains the 'database_id' parameter with an example and acceptable formats ('my-mysql-db' or UUID). This adds meaning beyond the schema, which only specifies type string. The single parameter is well-documented, warranting a high score.

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

Purpose4/5

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

The description clearly states the action (Get) and resource (database usage statistics) with specific metrics (CPU, memory, disk). It is distinct from many siblings, but it does not differentiate from the similar-sounding db_analyze_database_performance, leaving ambiguity. The verb-resource combination is specific enough for a high score, but lack of sibling differentiation prevents 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?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or comparison to related tools like db_analyze_database_performance. The agent must infer usage solely from the name and description, which is insufficient.

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

db_get_userA

Get information about a specific database user.

Args: database_id: The database ID or label username: The username to get information for

Returns: User information including permissions

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full disclosure burden. 'Get information' clearly signals a read-only operation and the Returns line indicates the expected output. However, it does not mention error behavior, permission requirements, or side-effect absence; acceptable for a simple getter but not rich disclosure.

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 compact, front-loaded with the core purpose, and uses clear Args/Returns sections. Every sentence earns its place without redundancy or fluff.

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 operation with an output schema present and only two parameters, the description covers the essential semantics. It explains what the tool returns, including permissions. Minor gaps are the lack of explicit alternative routing and behavioral caveats, but these do not seriously hinder correct invocation.

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 add meaning to the bare parameter names. It does: database_id is explained as 'database ID or label' and username as 'the username to get information for.' This goes beyond the schema by clarifying the database_id format flexibility.

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: 'Get information about a specific database user.' The qualifier 'specific' distinguishes it from listing tools like db_list_users, and the parameter names make the target 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 'specific database user' implies this is for singular lookups rather than listing all users, but the description does not explicitly mention when to use it versus alternatives such as db_list_users or db_get_logical_database. Usage context 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.

db_list_available_versionsB

List available versions for database engine upgrades.

Args: database_id: The database ID or label

Returns: List of available versions for upgrade

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description must disclose behavior on its own. It states that the tool lists versions, implying a read-only operation, but it does not explicitly mention that no changes are made, nor does it discuss error handling, permissions, or potential side effects. The lack of explicit behavior disclosure is a minor gap for such a simple read-only tool.

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

Conciseness5/5

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

The description is extremely concise, using two short sentences plus an Args/Returns format. It is front-loaded with a clear action and immediately provides parameter and return details without any fluff. The structure is optimal for a simple 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?

Given the tool's simplicity (single parameter, output schema) and the presence of an output schema, the description provides the essential information but omits usage context and behavioral nuances. It would benefit from a note about when to use (e.g., before db_start_version_upgrade) and explicit read-only confirmation. Still, for a basic listing operation, it is reasonably 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 description adds meaning to the only parameter (database_id) by stating it accepts 'The database ID or label', which clarifies that both forms are valid. This goes beyond the bare schema type 'string' and helps the agent know what value to pass. For a single-parameter tool, this is adequate but not exhaustive.

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

Purpose4/5

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

The description clearly states the action (list available versions) and the resource (database engine upgrades), making the tool's purpose unambiguous. It distinguishes itself from sibling tools like db_start_version_upgrade by focusing on listing rather than performing the upgrade. However, it does not explicitly contrast with other listing tools (e.g., db_list_plans), though the context implies it's specific to upgrade versions.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention that this should be called before initiating an upgrade, nor does it reference sibling tools like db_start_version_upgrade or db_get_maintenance_updates. The phrase 'for database engine upgrades' gives some context but does not explain the workflow or prerequisites.

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

db_list_backupsA

List available backups for a managed database.

Args: database_id: The database ID or label

Returns: List of available backups with timestamps and sizes

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the responsibility for behavioral disclosure. It does reveal the return value (a list of backups with timestamps and sizes) and 'List' implies a read-only operation, but it does not mention permissions, pagination, ordering, or potential side effects. This is adequate for a simple list operation but lacks depth.

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 compact and well-structured: a one-line purpose followed by concise Args and Returns sections. Every sentence contributes useful information, and there is no redundant or filler content.

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 read-only tool with an output schema, the description covers the essential input and output shape. It lacks explicit usage guidance and alternative routing, but those are not critical to successfully invoking the 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 input schema provides no description for database_id, so the Args section adds meaningful context by explaining it is 'The database ID or label.' This helps disambiguate the parameter, though it could be more specific about the expected format or where to find the 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 clearly states the action and resource: 'List available backups for a managed database.' The verb 'List' and the resource 'available backups' make the tool's purpose specific and distinct from restore/fork-related siblings, though it does not explicitly name an alternative.

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 related tools like db_restore_from_backup or db_fork_database. The description implies a listing operation but does not give context, prerequisites, or exclusions.

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

db_list_connection_poolsA

List connection pools for a managed database.

Args: database_id: The database ID or label

Returns: List of connection pools

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states it returns a list of connection pools but does not disclose whether the operation is read-only, requires specific permissions, handles missing databases, or any pagination behavior. For a simple list tool, this is minimal but acceptable; however, it fails to explicitly confirm safety or non-mutating nature.

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 extremely concise, front-loaded with the primary action, followed by a clear Args/Returns structure. Every sentence is informative, with no fluff or redundancy.

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 simplicity of the tool (one parameter, output schema available), the description covers the essential usage. It does not mention edge cases like errors or pagination, but those are minor for a list operation. The presence of an output schema compensates for the lack of return-format details.

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

Parameters5/5

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

The description adds critical meaning to the single parameter, clarifying that database_id can be either an ID or a label, which is not evident from the schema (which only defines it as a string). With 0% schema description coverage, this fully compensates for the lack of schema detail.

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

Purpose5/5

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

The description clearly states the action (list) and resource (connection pools) for a managed database, using the parameter database_id to scope it. It distinguishes from sibling tools like db_get_connection_pool (which fetches a single pool) and db_create_connection_pool (which creates one) by indicating a list operation.

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

Usage Guidelines3/5

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

The description gives no explicit guidance on when to use this tool versus alternatives such as db_get_connection_pool or db_list_databases. The usage is implied by the name and description, but there is no mention of exclusions or scenarios where a different tool would be preferred.

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

db_list_databasesA

List logical databases within a managed database instance.

Args: database_id: The database ID or label

Returns: List of logical databases

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It does convey the read-only nature by using 'List' and stating a return type, but it does not explicitly say the operation has no side effects, or describe error behavior or authorization needs. The behavior is largely inferable for a list operation, hence a mid-range score.

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 compact and well-structured with a one-line summary followed by Args and Returns sections. Every sentence earns its place, and there is no redundant fluff. It is appropriately sized for a simple one-parameter list operation.

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 parameter and an output schema, the description covers the essential elements: what it lists, the parameter meaning, and the return type. It lacks context such as prerequisites or behavior when database_id is invalid, but these are minor for a straightforward read-only operation and the output schema covers return details.

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. It does: the Args section explains that database_id is 'The database ID or label,' giving it meaningful context as the identifier of the managed instance. This clarifies what the parameter refers to, though it could be more explicit about the distinction between the managed instance and a logical database.

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: 'List logical databases within a managed database instance.' This clearly distinguishes the operation from related siblings like db_get_logical_database or db_create_logical_database by framing it as a listing action scoped to a managed instance. It does not explicitly name sibling alternatives, 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 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 instead of alternatives such as db_get_logical_database or db_list_connection_pools. It also does not mention prerequisites like the managed database instance existing or having access permissions. There is no explicit 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.

db_list_kafka_topicsA

List Kafka topics (Kafka databases only).

Args: database_id: The Kafka database ID or label

Returns: List of Kafka topics

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses the operation, the input, and the return type ('List of Kafka topics'), and the Kafka-only scope adds useful behavior context. It does not mention pagination, error cases, or whether the database must be pre-existing, but for a simple read operation this is minimally adequate.

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 compact and well-structured with separate Args and Returns sections. Every sentence carries information, with no fluff or repetition of the tool name.

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

Completeness4/5

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

For a one-parameter read-only list tool with an output schema available, the description covers the essential information: what it lists, the required parameter semantics, and the return type. It could add an example or mention behavior when the database_id is invalid, 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 input schema only says database_id is a string, while the description adds meaningful semantics: 'The Kafka database ID or label'. This helps the agent understand what value to supply and clarifies that labels are accepted, which is valuable 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?

States a specific verb and resource: 'List Kafka topics', with an explicit scope qualifier '(Kafka databases only)'. This clearly distinguishes it from generic database list tools like db_list_databases and from topic mutation siblings like db_create_kafka_topic.

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?

Provides clear context that this tool applies only to Kafka databases, which helps the agent decide when it is appropriate. It does not explicitly name alternatives or exclusions, but the scoping statement is sufficient for a simple read operation with no competing list-topics sibling.

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

db_list_plansA

List all available managed database plans.

Returns: List of database plans with pricing and specifications

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden. The verb 'List' implies a read-only operation, and the return line describes the output content. However, it doesn't explicitly state that no resources are modified, nor does it mention any required permissions or side effects, leaving some implicit.

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 lines, front-loaded with the action, and includes a brief return statement. Every sentence is useful, and there is no redundancy or filler.

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

Completeness4/5

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

For a zero-parameter list tool with an output schema present, the description is mostly complete: it says what it lists and what the return contains. It could mention potential pagination or whether 'available' means region-specific, but these are minor for such a simple operation.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description adds meaning by indicating that the tool lists 'all' plans, clarifying there is no filtering or scoping, which is useful beyond the empty 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 ('List') and a specific resource ('available managed database plans'). The phrase 'managed database plans' differentiates this from sibling list tools like registry_list_plans and plan_list_plans, but it does not explicitly name 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 Guidelines2/5

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

The description provides no guidance on when to choose this tool over alternatives such as plan_list_plans or registry_list_plans. It doesn't mention exclusions, prerequisites, or specific use cases beyond restating the function itself.

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

db_list_usersA

List all users in a managed database.

Args: database_id: The database ID or label (e.g., "my-mysql-db" or UUID)

Returns: List of database users with their permissions

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are present, so the description carries the burden of behavior disclosure. It states the tool returns a list of users with permissions, which implies a read-only operation, but it does not explicitly declare safety, authorization requirements, or potential error conditions. The gap is moderate given the simplicity of a listing operation.

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 concise and well-structured, with the purpose front-loaded and a clean Args/Returns format. Every sentence contributes necessary information with 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?

Given the tool's simplicity (one parameter) and the presence of an output schema, the description covers the essential aspects: parameter meaning and return type. It does not mention preconditions like database existence or permission requirements, but these are not critical for a straightforward listing tool, making it sufficiently 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 input schema only defines database_id as a string with no description. The description explains that it is the database ID or label, providing examples ('my-mysql-db' or UUID), which adds meaningful value beyond the schema and compensates for the 0% schema coverage.

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

Purpose5/5

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

The description clearly states the action (List) and resource (all users) within a managed database, distinguishing it from sibling tools like db_get_user (single user) and db_create_user (create user). It is unambiguous and specific.

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 when to use it (to list all users) but does not explicitly state when to avoid it or mention alternatives such as db_get_user for individual user retrieval. No exclusions or context are provided beyond the basic purpose.

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

db_promote_read_replicaB

Promote a read replica to a standalone database.

Args: database_id: The read replica database ID or label

Returns: Status message confirming promotion

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states the action and the return value, but does not disclose that promoting a read replica is likely irreversible, that it stops replication, or what impact it has on the original replica or primary database.

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 compact and front-loaded, with the core action stated first. The Args and Returns sections are each minimal and purposeful, adding useful parameter and output context without unnecessary fluff.

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

Completeness2/5

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

Despite having an output schema, this is a state-changing, potentially irreversible operation with no annotations describing safety or side effects. The description omits important context such as prerequisites, irreversibility, impact on replication, and whether the original read replica endpoint remains usable.

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 schema has 0% description coverage for its single parameter, but the description adds valuable meaning: database_id is explicitly identified as 'the read replica database ID or label,' clarifying both the accepted format and the required resource type. This goes beyond the bare schema definition.

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

Purpose5/5

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

The description uses a specific verb ('Promote') and a specific resource ('a read replica to a standalone database'), making the tool's action unambiguous. It clearly stands apart from siblings like db_create_read_replica and db_delete by describing the exact transformation it performs.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as db_create_read_replica or db_delete. There is no mention of prerequisites, conditions, or context that would help an agent decide this is the correct operation.

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

db_restore_from_backupA

Restore a database from a backup to a new instance.

Args: database_id: The source database ID or label backup_label: The backup label/timestamp to restore from database_label: Label for the new restored database plan: Plan ID for the new database region: Region for the new database vpc_id: VPC ID for the new database

Returns: Information about the restoration process

ParametersJSON Schema
NameRequiredDescriptionDefault
planYes
regionYes
vpc_idNo
database_idYes
backup_labelYes
database_labelYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden. It explains the creation of a new instance, but does not disclose side effects, cost implications, whether the source database is affected, or what happens if the backup is missing. This is a significant gap for a restore operation.

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 concise and well-structured: a clear one-sentence summary, a structured Args list, and a Returns note. Every line earns its place, and the opening sentence front-loads the core 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?

The tool has six parameters, no annotations, and an output schema. The argument semantics are covered, but behavioral transparency and usage guidance are missing. For a restore operation that creates a new database, an agent would benefit from knowing prerequisites and side effects, so the definition is only partially 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%, and the description compensates by listing all six arguments with brief semantic labels. It adds meaning beyond the bare schema, clarifying that database_id is the source, backup_label is the backup timestamp, and the rest are properties of the new instance. The explanations are not deep but are sufficient for basic invocation.

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

Purpose5/5

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

The description clearly states a specific action: restore a database from a backup to a new instance. It identifies the source (backup), the target (new instance), and the resource (database), which distinguishes this operation from related database tools without needing to open 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 Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives. With siblings like db_fork_database, db_create_read_replica, and db_list_backups nearby, the description should clarify when restore is the right choice, but it does not.

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

db_setup_mysql_databaseA

Quick setup for a MySQL database with application user and database.

Args: region: Region code (e.g., 'ewr', 'lax') plan: Plan ID (e.g., 'vultr-dbaas-hobbyist-cc-1-25-1') label: Label for the database root_password: Root password (auto-generated if not provided) app_user: Application username to create app_password: Application user password (auto-generated if not provided) app_database: Application database name to create

Returns: Complete setup information including connection details

ParametersJSON Schema
NameRequiredDescriptionDefault
planYes
labelYes
regionYes
app_userNoappuser
app_databaseNoappdb
app_passwordNo
root_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It reveals that passwords are auto-generated if not provided, that an application user and database are created, and that connection details are returned. It does not mention potential wait times or idempotency, but the key side effects are covered.

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 compact, front-loaded with the core purpose, and organized into a clear Args/Returns structure. Every line earns its place and there is no filler or redundant expansion.

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

Completeness4/5

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

The description covers the action, all parameters, auto-generation behavior, and return value. Given the output schema exists and the tool is a create-style setup, this is largely complete. It lacks explicit guidance on prerequisites or plan/region compatibility, but those are not essential for selecting and invoking the 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 description coverage is 0%, so the description must compensate. It does so by explaining all seven parameters with concrete examples and auto-generation semantics. It could add more constraints like valid region codes or password rules, but every parameter is meaningfully described.

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 ('setup'), a specific resource ('MySQL database'), and the scope ('with application user and database'). It also distinguishes itself from sibling tools like db_setup_postgresql_database and db_create without needing to open schemas.

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

Usage Guidelines3/5

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

The intended use case is implied by the name and phrase 'Quick setup for a MySQL database', but there is no explicit guidance about when to use this over db_create, db_setup_postgresql_database, or db_create_read_replica. No exclusions or alternatives are mentioned.

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

db_setup_postgresql_databaseA

Quick setup for a PostgreSQL database with application user and database.

Args: region: Region code (e.g., 'ewr', 'lax') plan: Plan ID (e.g., 'vultr-dbaas-hobbyist-cc-1-25-1') label: Label for the database version: PostgreSQL version (13-17) app_user: Application username to create app_password: Application user password (auto-generated if not provided) app_database: Application database name to create

Returns: Complete setup information including connection details

ParametersJSON Schema
NameRequiredDescriptionDefault
planYes
labelYes
regionYes
versionNo17
app_userNoappuser
app_databaseNoappdb
app_passwordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral transparency burden. It discloses that the password is auto-generated if not provided and that complete setup information including connection details is returned. However, it does not disclose that this provisions a billable managed database resource, that setup may take time, or what side effects occur beyond creation.

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 well-structured: a one-line summary, a compact Args list with each parameter on its own line, and a Returns line. There is no redundant or filler text, and key details are easy to scan.

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 7-parameter provisioning tool with no annotations, the description covers the parameters and return value well, and an output schema exists. It is slightly incomplete because it does not explain when this composite setup path is preferable to lower-level db_create operations or note provisioning/cost implications, but it is still sufficient for invoking the tool correctly in most cases.

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

Parameters5/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 explain the parameters, and it does so thoroughly. Every parameter gets a meaningful description, with examples for region and plan, a version range, and explicit auto-generation behavior for app_password.

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 action and resource: 'Quick setup for a PostgreSQL database with application user and database.' It distinguishes itself from sibling tools like db_create and db_setup_mysql_database by naming PostgreSQL and the fact that it creates both an application user and database.

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: use this when you want a PostgreSQL database plus application user and database in one setup. However, it does not explicitly mention when to choose this over db_create, db_create_read_replica, or db_setup_mysql_database, nor does it state any exclusions.

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

db_start_maintenanceB

Start maintenance on a database.

Args: database_id: The database ID or label

Returns: Status message confirming maintenance start

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

"Start maintenance" implies a state change, but the description does not disclose potential downtime, whether the operation is reversible, or any side effects. Since annotations are absent, the description also carries that disclosure burden and only promises a status message.

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 compact and well organized: one clear action sentence, one Args line, and one Returns line. It stays front-loaded and contains no filler, repeating only the necessary parameter guidance.

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 potentially disruptive maintenance action that has no annotations, the description does not explain consequences, prerequisites, or typical usage scenarios. An output schema may explain the return shape, but the risk context is still 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?

With 0% schema described, the description compensates by defining database_id as either the database ID or label. This adds real meaning beyond the bare string type and covers the only required parameter, although it leaves format/precision unspecified.

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 lead sentence clearly states the action on a specific resource: "Start maintenance on a database." It is distinguishable by name from database deletion, read-replica creation, and version upgrade, but it does not explicitly contrast with those sibling tools.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool instead of tools like db_start_version_upgrade, db_get_maintenance_updates, or db_delete. There are no prerequisites, exclusions, or suggested contexts, so an agent must decide to call it based on the name alone.

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

db_start_migrationA

Start migrating data from an external database.

Args: database_id: The destination database ID or label host: Source database hostname port: Source database port username: Source database username password: Source database password database: Source database name ssl: Use SSL connection to source

Returns: Status message confirming migration start

ParametersJSON Schema
NameRequiredDescriptionDefault
sslNo
hostYes
portYes
databaseYes
passwordYes
usernameYes
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It states the action and the return value, but does not disclose that migration is likely an asynchronous, long-running operation requiring status checks, nor does it mention any risks such as data overwriting or required permissions. It is not misleading, but it omits meaningful 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.

Conciseness5/5

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

The description is a single, front-loaded purpose sentence followed by a clean Args list and a Returns line. Every sentence adds direct value, and the format is standard and easily parsed. No fluff, repetition, or excess text exists.

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 all required parameters and the immediate return, but it misses important operational context for a migration tool: that the migration is asynchronous, that progress can be tracked via db_get_migration_status, and that stopping via db_stop_migration may be needed. Given the complexity of migrations, these omissions leave an agent without enough guidance to handle the full workflow correctly.

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

Parameters5/5

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

Schema description coverage is 0%, so the description fully compensates by defining every parameter: database_id as destination, host/port/username/password/database as source credentials, and ssl as the SSL toggle. Each parameter receives a clear one-line meaning that matches the schema names exactly.

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 phrase, "Start migrating data from an external database," which clearly identifies what the tool does and distinguishes it from siblings like db_stop_migration or db_get_migration_status. The resource (external database migration) and action (start) are both 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?

The description gives no guidance on when to use this tool versus alternatives. It does not mention related operations like db_get_migration_status for monitoring or db_stop_migration for canceling, nor any prerequisites such as an existing destination database. An agent would have to infer usage solely 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.

db_start_version_upgradeC

Start a database engine version upgrade.

Args: database_id: The database ID or label version: Target version to upgrade to

Returns: Status message confirming upgrade start

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYes
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral disclosure burden. It implies an asynchronous start by saying it returns a status message 'confirming upgrade start,' but it does not describe prerequisites, downtime risk, reversibility, or what happens on failure. These are notable omissions for a database version upgrade 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?

The description is short, organized into Args and Returns sections, and has no redundant filler. It is structurally clean and readable, though it sacrifices useful context for brevity.

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?

An output schema exists and the basic invocation shape is present, so an agent can likely make the call. However, for a mutation without annotations, the description lacks important contextual links: how to determine valid versions, whether the operation is backgrounded, and what consequences or prerequisites are involved.

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 has 0% description coverage, so the Args section is the only source of meaning. It clarifies database_id as 'the database ID or label' and version as the target. It does not explain acceptable version formats or mention that db_list_available_versions may be needed to choose a valid target.

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

Purpose4/5

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

The description uses a specific verb and resource: 'Start a database engine version upgrade.' This clearly communicates the tool's core action and target. It does not explicitly distinguish itself from sibling tools, but the verb phrase is distinct enough within the database tool family.

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 related tools such as db_list_available_versions, db_start_maintenance, or db_get_maintenance_updates. The description is purely declarative and leaves selection and prerequisites entirely to the agent.

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

db_stop_migrationA

Stop an ongoing database migration.

Args: database_id: The database ID or label

Returns: Status message confirming migration stop

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the action and return value but does not disclose side effects, reversibility, prerequisites, or whether stopping is destructive. For a state-changing tool, this is insufficient 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.

Conciseness5/5

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

The description is concise and front-loaded: the main action is in the first sentence, and the Args/Returns structure is minimal and clear. Every word serves a purpose, with no redundant content.

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?

This is a simple single-parameter tool, and the description together with the output schema covers the essential calling contract. However, it lacks any guidance on preconditions or implications of stopping a migration, which would be important given no annotations are 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 0%, so the description is needed to clarify parameters. 'The database ID or label' adds useful meaning beyond the schema property name, but it lacks detail on how to identify whether an ID or label is accepted or where to find it.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Stop an ongoing database migration.' It clearly differentiates from sibling tools like db_start_migration, db_get_migration_status, and db_analyze_database_migration_status by naming the exact action.

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

Usage Guidelines3/5

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

The word 'ongoing' implies that the tool should only be used when a migration is currently in progress, but it does not explicitly mention when not to use it or direct the agent to check migration status first. The usage context 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.

db_updateA

Update a managed database configuration.

Args: database_id: The database ID or label to update region: New region (requires migration) plan: New plan ID (for scaling) label: New label for the database tag: New tag for the database vpc_id: New VPC ID timezone: Database timezone (TZ format, e.g., 'UTC', 'America/New_York') trusted_ips: New list of trusted IP addresses (CIDR notation) mysql_sql_modes: MySQL SQL modes (MySQL only) mysql_require_primary_key: Require primary key setting (MySQL only) mysql_slow_query_log: Slow query log setting (MySQL only) valkey_eviction_policy: Eviction policy (Valkey only) kafka_rest_enabled: Kafka REST setting (Kafka only) kafka_schema_registry_enabled: Schema Registry setting (Kafka only) kafka_connect_enabled: Kafka Connect setting (Kafka only)

Returns: Updated database information

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
planNo
labelNo
regionNo
vpc_idNo
timezoneNo
database_idYes
trusted_ipsNo
mysql_sql_modesNo
kafka_rest_enabledNo
mysql_slow_query_logNo
kafka_connect_enabledNo
valkey_eviction_policyNo
mysql_require_primary_keyNo
kafka_schema_registry_enabledNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It does disclose a key side effect ('region: New region (requires migration)') and flags engine-specific parameters with 'MySQL only', 'Valkey only', and 'Kafka only'. However, it does not mention potential plan-scaling effects, whether unset fields remain unchanged, or permission 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?

The description is appropriately sized for a 15-parameter tool: one lead sentence, a compact Args list, and a short Returns line. It is structured and front-loaded with the core purpose, with no filler; the Returns line is slightly redundant given the output schema 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 complex tool with 15 parameters, no annotations, and zero schema-level descriptions, the definition covers every parameter and adds engine-specific context. It is missing guidance on when to choose this tool, more behavioral warnings beyond region migration, and clarity about null semantics or required permissions, leaving some gaps for an agent operating autonomously.

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 is the primary source of parameter meaning. It adds genuine semantics for most parameters: database_id can be an ID or label, region requires migration, plan is for scaling, timezone includes format examples, trusted_ips uses CIDR notation, and engine-specific flags are labeled. A few entries (label, tag, vpc_id) mostly restate the parameter names, but the overall coverage is strong.

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: 'Update a managed database configuration.' This clearly distinguishes it from create/delete/read-replica operations and from sibling tools like db_update_user or db_update_connection_pool, which target different aspects of the database service.

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 guidance is given about when to use this tool versus db_update_user, db_update_connection_pool, db_update_kafka_topic, or other update-oriented siblings. There are no stated prerequisites, exclusions, or alternative routing; usage must be inferred from the name and the one-line purpose.

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

db_update_connection_poolA

Update a connection pool configuration.

Args: database_id: The database ID or label pool_name: The connection pool name to update database: New target logical database name username: New database username mode: New pool mode (session, transaction, statement) size: New pool size

Returns: Updated connection pool information

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
sizeNo
databaseNo
usernameNo
pool_nameYes
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates a mutation via 'Update' and states that updated connection pool information is returned, but it does not disclose whether updates are partial, whether null values clear fields, whether the pool must exist first, or what permissions or side effects are involved.

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 compact and well-structured, with the core action stated first followed by a clean parameter list and a Returns line. No unnecessary prose or repetition exists, and every line adds useful 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 six-parameter mutation tool with no annotations, the description is missing behavioral context such as how optional/nullable parameters affect the update and whether this operation is safe or destructive. The parameter list and return statement cover the basics, but an agent lacks enough guidance to confidently understand partial-update semantics.

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 input schema has 0% description coverage, so the description must compensate for all six parameters, and it does. Each parameter is given a meaningful explanation beyond its raw name, including 'New target logical database name' and the valid mode values (session, transaction, statement). Slightly more context about ambiguous terms like 'database ID or label' would push it to a 5.

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 ('Update') and a specific resource ('connection pool configuration'), making the tool's purpose unambiguous. It also differentiates itself from the generic db_update tool and the related db_create_connection_pool, db_get_connection_pool, and db_delete_connection_pool siblings by naming the exact resource type.

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, no prerequisites, and no note that it applies only to existing pools. The purpose is implied by the name and action verb, but the description does not help an agent decide between this and sibling connection-pool tools.

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

db_update_kafka_topicB

Update a Kafka topic configuration.

Args: database_id: The Kafka database ID or label topic_name: The topic name to update partitions: New number of partitions replication: New replication factor retention_hours: New retention time in hours retention_bytes: New retention size in bytes

Returns: Updated topic information

ParametersJSON Schema
NameRequiredDescriptionDefault
partitionsNo
topic_nameYes
database_idYes
replicationNo
retention_bytesNo
retention_hoursNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Update' and 'Returns updated topic information'; it does not describe that partition/replication changes may be risky, irreversible, require permissions, or fail for already-existing topics. This is a significant gap for a mutation tool.

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

Conciseness5/5

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

The description is a single clear purpose line followed by a well-structured Args/Returns list. There is no fluff or irrelevant prose, and the format is easily scannable.

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 parameters, no annotations, and an output schema, the description is moderately complete. It covers all parameters and declares a return value, but it omits important contextual behavior such as whether optional fields mean 'no change', limitations on partition/replication updates, and how to connect this to the larger Kafka topic workflow. It is enough to make a call, but not enough to choose or reason about the 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 description coverage is 0%, so the parameter documentation in the description is important. It does name each parameter and adds semantic meaning: database_id is ID or label, retention parameters include units, and fields are prefixed with 'New' indicating they replace the current value. It also does not explain null/omission behavior, which keeps it slightly below perfect.

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

Purpose4/5

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

The description clearly states the action ('Update a Kafka topic configuration') with a specific resource type, and the tool name plus sibling set make it easy to distinguish from create, get, list, or delete variants. However, it does not explicitly contrast with siblings or state that it is only for modifying existing topics, so it falls just short of full differentiation.

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 usage guidance. The description gives no 'when to use vs. alternatives', no prerequisites such as 'topic must already exist', and no exclusions. The only cue is the word 'update' in the name, which is not substantive guidance.

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

db_update_userB

Update a database user's password or permissions.

Args: database_id: The database ID or label username: The username to update password: New password access_level: New permission level (Kafka only)

Returns: Updated user information

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordNo
usernameYes
database_idYes
access_levelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral burden. It does disclose that the operation mutates the user, notes a Kafka-only constraint on access_level, and states what is returned. However, it omits side effects, required permissions, reversibility, and whether password and access_level can be updated together.

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, front-loaded with the action, and organized into a scannable Args/Returns format. The Returns line is somewhat redundant given an output schema exists, but it does not add meaningful clutter.

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 small mutation tool, the description covers all parameters and the return value, which is the minimum needed to make a plausible call. It is incomplete about the relationship to db_update_user_access_control, whether both update fields can be supplied at once, and what valid access_level values are.

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 schema has 0% parameter descriptions, so the Args block is the only documentation for all four parameters. It adds real meaning beyond the raw schema by explaining database_id can be an ID or label, password is the new secret, and access_level is a permission level limited to Kafka. It could specify accepted values and optionality more clearly, but it meaningfully compensates for the bare 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 opens with a specific verb and resource: 'Update a database user's password or permissions,' and the Args list clarifies exactly which fields can be modified. It does not explicitly distinguish itself from the closely named sibling db_update_user_access_control, so it misses the full differentiation credit.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives such as db_update_user_access_control or db_create_user. The only contextual hint, that access_level is Kafka-only, is embedded in a parameter definition rather than framed as usage direction.

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

db_update_user_access_controlB

Update access control for a database user (Valkey/Redis only).

Args: database_id: The database ID or label username: The username to update acl_categories: ACL categories (e.g., ["+@all"]) acl_channels: ACL channels (e.g., [""]) acl_commands: ACL commands acl_keys: ACL keys (e.g., [""])

Returns: Status message confirming update

ParametersJSON Schema
NameRequiredDescriptionDefault
acl_keysNo
usernameYes
database_idYes
acl_channelsNo
acl_commandsNo
acl_categoriesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only states what the tool does and what it returns. It does not explain whether omitted ACL fields preserve existing settings or reset them, what permissions are required, or whether the operation overwrites the user's current ACL in whole or in part.

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 clearly structured with a one-line purpose, an Args section, and a Returns section. It has no filler, and the examples are useful, though the Args list partially duplicates schema property names.

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 six parameters and no annotations, the description provides the minimum needed to attempt a call: scope, required identity fields, and examples. But it omits important update semantics around omitted parameters and existing ACL state, which could lead an agent to make destructive or unintended changes.

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 enumerates all six parameters and gives concrete examples for acl_categories, acl_channels, and acl_keys, and clarifies that database_id can be a label or ID. However, it does not explain syntax expectations for acl_commands or the meaning of null/default values.

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 action ('update access control') on a specific resource (database user) and narrows scope to Valkey/Redis only. It clearly distinguishes from generic user updates by focusing on ACL-specific control.

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 'Valkey/Redis only' qualifier and ACL-specific parameters imply the intended context, but the description does not explicitly say when to prefer this over sibling tools like db_update_user or db_create_user. There is no direct when-to-use or 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.

dns_analyze_domainB

Analyze DNS configuration for a domain and provide recommendations.

Args: domain: The domain name to analyze

Returns: Analysis results with recommendations for improvements

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It implies a read-only analysis ('Analyze') but does not explicitly state that it is safe, non-destructive, or whether it requires special permissions. It also does not disclose what happens for invalid or non-existent domains, rate limits, or any side effects. This is a significant gap for an analysis tool.

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

Conciseness5/5

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

The description is appropriately sized: a single sentence for the purpose, followed by a concise Args and Returns section. It is front-loaded with the core action and contains no filler or repetition. Every sentence contributes to understanding the tool's basic function.

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 analysis tool, the description is incomplete. It does not explain what specific aspects of DNS configuration are analyzed (e.g., record correctness, security, TTL, DNSSEC) or what kind of recommendations are returned. While an output schema exists, the description should set expectations about the analysis scope and any input constraints. The lack of usage guidance and behavioral detail leaves an agent under-informed.

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 input schema has 0% description coverage, but the description's 'Args' section explicitly explains the 'domain' parameter as 'The domain name to analyze.' This adds meaningful semantics beyond the bare string type. However, it is minimal and does not specify domain format, validation, or examples, so it falls 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?

The description states a clear verb and resource: 'Analyze DNS configuration for a domain' and 'provide recommendations.' This distinguishes it from other DNS tools like dns_get_domain, dns_list_records, and dns_validate_record, which perform retrieval or validation. It is specific but could be more precise about what 'DNS configuration' analysis entails (e.g., records, security, propagation), so it doesn't fully 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 Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any conditions, prerequisites, or comparisons to sibling tools like dns_validate_record or dns_get_domain. An agent has no context on what scenarios warrant analysis versus simple inspection or validation.

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

dns_create_domainB

Create a new DNS domain.

Args: domain: The domain name to create ip: The default IP address for the domain ctx: FastMCP context for resource change notifications dns_sec: Enable DNSSEC (enabled/disabled, default: disabled)

Returns: Created domain information

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYes
domainYes
dns_secNodisabled

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

Annotations are absent, so the description must carry the full behavioral disclosure load. It merely states 'Create a new DNS domain' and does not explain side effects like duplicate-domain handling, DNS propagation, dependency on an existing domain, or permission requirements. The action is effectively restating the tool name rather than disclosing behavior beyond it.

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 compact: one purpose sentence, four argument bullets, and a single return line. It avoids unnecessary verbiage and gets to the point, though including ctx as an arg could confuse users expecting only the schema parameters. Overall, it is appropriately sized and 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?

The presence of an output schema relieves the need to describe return values in detail, and the description gives a brief 'Created domain information' line. However, with no annotations, a creation workflow is incomplete without noting preconditions or expected consequences (e.g., whether the domain must be unique, whether auth is required, whether the domain becomes immediately usable). It is adequate for a simple create but leaves notable gaps for an agent operating autonomously.

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 schema properties have no descriptions (coverage 0%), so the description is the only added semantic source. It explains domain as 'The domain name to create', ip as 'The default IP address', and dns_sec with accepted values and a default. The ctx argument is described as a FastMCP context side-channel, adding clarity even though it is not in the schema. A little more detail on format or constraints would make it 5.

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 opening line 'Create a new DNS domain' uses a specific verb and resource, clearly distinguishing this from sibling tools like dns_list_domains, dns_get_domain, dns_delete_domain, and dns_create_record. The name is reinforced by the description, leaving no ambiguity about its core 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?

No guidance is given for when to use this tool versus alternatives such as dns_import_zone_file or dns_create_record. There are no preconditions, no implied ordering, and no mention of cases where a different tool should be chosen. An agent is left to infer usage solely from the verb and resource.

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

dns_create_recordA

Create a new DNS record.

Args: domain: The domain name record_type: Record type (A, AAAA, CNAME, MX, TXT, NS, SRV) name: Record name/subdomain data: Record data/value ctx: FastMCP context for resource change notifications ttl: Time to live in seconds (default: 300) priority: Priority for MX/SRV records

Returns: Created record information

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNo
dataYes
nameYes
domainYes
priorityNo
record_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals that the operation creates a record and returns created record information, but it does not disclose potential side effects (e.g., duplicate record behavior, overwriting), required permissions, or failure conditions. It also does not mention that the domain must already exist or that certain record types have specific constraints (e.g., MX requires priority). The mention of 'ctx' for resource change notifications hints at side effects but does not clarify them.

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 highly concise and well-structured. It opens with a one-sentence purpose, then lists each argument with a clear explanation, and concludes with a return-value note. No superfluous text; every line adds information. The layout is easy to scan and the purpose 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?

The description covers all parameters and states what is returned, which is sufficient for the common case. It lacks explicit prerequisites (e.g., domain must exist) and edge-case handling (e.g., duplicate record rejection, MX priority requirement), but these are partially inferable from the schema (required fields) and the output schema provides return details. For a create operation, the description is adequate for correct invocation in most scenarios.

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

Parameters5/5

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

The description provides detailed meaning for every parameter, fully compensating for the 0% schema description coverage. It lists valid record types for record_type, explains that priority applies to MX/SRV, gives the default TTL, and describes the data field. It also clarifies the role of the context parameter. This is essential for the agent to construct correct arguments and is well beyond the bare type information 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 clearly states 'Create a new DNS record' with a specific verb and resource. It also enumerates the supported record types (A, AAAA, CNAME, MX, TXT, NS, SRV) in the args list, which distinguishes it from sibling tools like dns_update_record or dns_delete_record. The purpose is unambiguous and front-loaded.

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 via the imperative 'Create', but it does not explicitly state when to use this tool over alternatives or provide any exclusions. No mention is made of conditions like 'use when adding a new record', nor does it reference sibling tools such as dns_update_record or dns_validate_record. Guidance is implied from the tool name and verb rather than explicit.

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

dns_delete_domainB

Delete a DNS domain and all its records.

Args: domain: The domain name to delete ctx: FastMCP context for resource change notifications

Returns: Status message confirming deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that it deletes all records, which is a key behavioral detail. However, it does not explicitly state that the operation is irreversible or mention any permissions or side effects beyond record deletion. It also references a 'ctx' parameter not present in the schema, which adds confusion. Overall, it provides some transparency but lacks depth.

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 concise, with a clear opening sentence. However, it includes an unnecessary 'Args' section with 'ctx' that is not part of the input schema, adding noise. The structure is acceptable but could be tightened by removing the extraneous parameter and focusing on the 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 destructive operation with no annotations and minimal schema, the description is incomplete. It does not mention reversibility, idempotency, prerequisites (e.g., domain ownership), or error behavior if the domain does not exist. The return value is only described as a 'Status message,' which is vague. Given the tool's complexity (single parameter, but destructive), more context is needed.

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 schema has 0% description coverage, so the description must compensate. It provides a basic explanation for 'domain' ('The domain name to delete'), which is only slightly more than the parameter name. Critically, it mentions a 'ctx' parameter that is not in the schema, misleading the agent. It does not specify domain format or any constraints, so it adds minimal value and even introduces inconsistency.

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 clear verb and resource: 'Delete a DNS domain and all its records.' This distinguishes it from sibling tools like dns_delete_record, which deletes a single record, and dns_update_record, which modifies. It also clarifies scope by explicitly including all records.

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 alternatives. It does not mention that for deleting a single record, dns_delete_record should be used, nor does it state any conditions or exclusions. The description only states what it does, not when to choose it.

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

dns_delete_recordA

Delete a DNS record.

Args: domain: The domain name record_id: The record ID to delete ctx: FastMCP context for resource change notifications

Returns: Status message confirming deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
record_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing behavior. It does state the destructive action ('Delete') and the return type ('Status message confirming deletion'), and mentions ctx for resource change notifications. However, it does not disclose permanence, idempotency, permission requirements, or failure 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 description is compact and front-loaded with the main action, followed by Args and Returns sections. However, it includes a 'ctx' argument that is not present in the input schema, which could confuse an agent attempting to pass it explicitly. This reduces structural 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 two-parameter delete operation, the description covers the inputs and return status, but omits useful context such as error cases, whether deletion is permanent, or how to find the record_id. Given the absence of annotations, this leaves gaps in operational guidance.

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 is the only source of parameter meaning. It defines domain as 'The domain name' and record_id as 'The record ID to delete,' which is minimal but sufficient for basic invocation. It does not explain how to obtain record_id or specify formats like FQDN or ID type.

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 action and resource: 'Delete a DNS record.' It clearly distinguishes this from sibling tools like dns_delete_domain, dns_update_record, and dns_create_record by focusing on deleting a single record via its record_id.

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 for deleting a DNS record but provides no explicit guidance on when to use it versus alternatives, such as dns_delete_domain or dns_update_record. It also does not mention prerequisites like looking up the record_id first via dns_list_records.

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

dns_export_zone_fileB

Export domain records as standard DNS zone file format.

Args: domain: The domain name to export

Returns: DNS zone file content as string

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Export domain records' without confirming whether the operation is read-only, requires specific permissions, or has any side effects. It also does not describe error handling, rate limits, or response structure beyond 'content as string.' The absence of such details makes behavior opaque.

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 highly concise, consisting of a single sentence for the main action plus labeled sections for Args and Returns. It is front-loaded with the core purpose, contains no redundancy, and every element earns its place. The structure is clean and scannable.

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 single-parameter export tool with an output schema, the description covers the basic action and return type. However, it omits usage guidance, behavioral transparency, and any mention of relationships to sibling tools. The lack of context around when to use this tool versus alternatives makes it incomplete, even though the low complexity reduces the need for extensive detail.

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 describes the single parameter 'domain' only as a string with no description. The description adds a minimal explanation: 'The domain name to export.' This clarifies the parameter's purpose but lacks format validation, examples, or edge-case details (e.g., whether subdomains are allowed). Given the 0% schema coverage, this partial compensation is adequate but not thorough.

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

Purpose5/5

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

The description clearly states a specific verb and resource: 'Export domain records as standard DNS zone file format.' It differentiates from siblings like dns_import_zone_file (import) and dns_list_records (list records in a different format) by specifying the output format. This makes the tool's purpose unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention preconditions (e.g., domain must exist), exclusions, or situations where another tool like dns_list_records or dns_get_record would be more appropriate. The lack of any usage context leaves selection to inference.

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

dns_get_domainA

Get details for a specific DNS domain.

Args: domain: The domain name to get details for

Returns: Domain details including creation date and DNSSEC status

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must disclose behavior. It mentions that the return includes 'creation date and DNSSEC status', which is helpful. However, it does not state whether the operation is read-only (though the verb 'Get' implies it), nor does it clarify error conditions or whether the domain must exist. The lack of annotations increases the burden, and the description only partially meets it.

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 concise, with a clear purpose statement, an Args section explaining the parameter, and a Returns section summarizing the output. It's well-structured and front-loaded with the main purpose. A minor improvement would be to rephrase 'Args' and 'Returns' in a more natural prose style, but it's 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?

Given the tool's simplicity (single required parameter) and the presence of an output schema, the description covers the key aspects: what the tool does and what the parameter is. It also hints at the return fields. However, it lacks behavioral details like whether the domain must be owned or if it can fetch public info, and there's no mention of error handling or idempotency. Since annotations are absent, these gaps reduce completeness.

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

Parameters3/5

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

The schema has 0% description coverage, so the description must compensate. The description says 'domain: The domain name to get details for', which adds clarity on what the parameter represents, but it doesn't specify the expected format (e.g., 'example.com', punycode for IDNs, or trailing dot). This is a minor gap given the simple nature of the parameter.

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

Purpose5/5

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

The description clearly states the purpose: retrieve details for a specific DNS domain, using the verb 'Get' and the resource 'domain'. It differentiates from siblings like dns_list_domains (which lists) and dns_get_record (which gets a record), so an agent can select it correctly.

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 when to use it: when you need details of a single DNS domain. However, it doesn't explicitly mention when not to use it or provide alternatives like dns_list_domains for listing or dns_get_record for records. The context is clear enough for basic selection but lacks explicit exclusions.

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

dns_get_recordC

Get details for a specific DNS record.

Args: domain: The domain name record_id: The record ID to get details for

Returns: DNS record details

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
record_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It states it 'Retrieves' details, implying a read operation, but doesn't mention potential errors (e.g., if record doesn't exist), authentication requirements, or other behavioral nuances. It's minimal.

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 concise and front-loads the core purpose. The Args and Returns sections are minimal, but there is no excessive verbosity. It earns a high score for being lean, though it might benefit from a bit more context.

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 that an output schema exists, the return format is covered. However, the tool is a simple get-by-ID operation, but with no annotations and sparse description, the description lacks details on error handling, permissions, or usage context. It is barely sufficient for a straightforward tool but lacks depth.

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

Parameters1/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 repeats the parameter names without adding any semantics like format or constraints. It does not compensate for the lack of schema descriptions, leaving the agent with no additional insight into what 'domain' or 'record_id' should look like.

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

Purpose4/5

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

The description clearly states the verb 'Get details' and the resource 'DNS record', specifying that it retrieves details for a specific record. However, it doesn't explicitly distinguish it from sibling tools like dns_get_domain or dns_list_records, though the intent is clear from the name and context.

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 when to use it (when you have a domain and record ID to fetch details), but it doesn't explicitly contrast with alternatives like dns_list_records (to list all records) or dns_validate_record. Sibling names offer hints but no explicit guidance is provided.

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

dns_import_zone_fileA

Import DNS records from zone file format.

Args: domain: The domain name to import records to zone_data: DNS zone file content as string dry_run: If True, only validate and return what would be created without making changes

Returns: List of created records or validation results

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
dry_runNo
zone_dataYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

The description discloses the dry_run behavior and return values, which is useful. However, with no annotations, it does not disclose critical behaviors like overwriting vs. merging existing records, handling of malformed zone files, or idempotency. It is not misleading, but incomplete for a mutation operation.

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 concise and structured as a standard docstring with Args and Returns sections. It front-loads the purpose and uses no filler. Every sentence contributes useful information.

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

Completeness3/5

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

The tool has an output schema, so return values are adequately covered. However, for an import operation, the description lacks details on conflict resolution, whether it replaces existing records, and the expected format of zone_data. This is a moderate gap, but the dry_run explanation and parameter documentation keep it above a 2.

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

Parameters5/5

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

Schema description coverage is 0%, and the description fully compensates by explaining each parameter's meaning and purpose: domain (target), zone_data (content as string), dry_run (validation mode). This adds significant value beyond the raw schema.

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

Purpose5/5

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

The description states a specific verb and resource: 'Import DNS records from zone file format.' This clearly distinguishes the tool from siblings like dns_export_zone_file (export) and dns_create_record (single record creation). 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 Guidelines3/5

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

The description implies usage via the verb 'import' and the zone file format, but it does not provide explicit when-to-use/when-not-to-use guidance or name alternatives. The dry_run parameter hints at a validation workflow, but no explicit exclusions are stated.

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

dns_list_domainsA

List all DNS domains in your Vultr account.

Args: format: Output format - 'compact' (default, one domain per line) or 'json' (full details)

Returns: All DNS domains in the requested format

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNocompact

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses the output format options but does not explicitly state that the operation is read-only, nor does it mention any permissions, rate limits, or side effects. The behavior is simple and mostly clear, but lacks explicit safety or side-effect disclosure.

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 concise, front-loads the main purpose, and uses a clear structure with Args and Returns sections. No redundant or filler content; every sentence serves a purpose.

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 an output schema present, detailed return-value documentation is not necessary. The description explains the input parameter sufficiently and states what the operation returns. The tool is simple, and the description is complete enough for an agent to call it correctly, though it could optionally mention pagination or other constraints.

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

Parameters5/5

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

The description thoroughly explains the only parameter 'format', detailing both allowed values ('compact' and 'json') and what each returns, with the default noted. This goes beyond the bare schema which only specifies type and default, providing meaningful semantics for the agent.

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: 'List all DNS domains in your Vultr account.' It clearly distinguishes itself from sibling tools like dns_list_records (records) and dns_get_domain (single domain) by scope and action.

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 for listing all domains, but does not explicitly mention alternatives or when not to use it. No exclusionary guidance is provided, but the purpose is unambiguous enough to infer correct usage.

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

dns_list_recordsA

List DNS records for a domain. Supports compact zone format and filtering.

Args: domain: The domain name to list records for format: Output format - 'zone' (compact, default) or 'json' (full details) record_type: Filter by type (A, AAAA, CNAME, MX, TXT, NS, SRV) per_page: Records per page (1-500). Omit to fetch all records. cursor: Pagination cursor from previous response

Returns: DNS records in requested format

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNo
domainYes
formatNozone
per_pageNo
record_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses behavioral details such as the ability to omit per_page to fetch all records, format selection, and pagination via cursor. These go beyond the schema and help the agent understand expected behavior. It does not explicitly state that the operation is read-only, but the name and context imply it.

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 concise, with a one-sentence purpose statement followed by a structured parameter list and return description. It avoids redundancy and front-loads the core function. Every line adds value.

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

Completeness4/5

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

The description covers the essential aspects: purpose, parameters with semantics, and return format. With an output schema present, it doesn't need to detail the return structure. It could mention prerequisites like domain ownership, but that is likely common to DNS tools. Overall, it is sufficiently complete for an agent to use it correctly.

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

Parameters5/5

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

The schema has zero descriptions for parameters, so the description is the sole source of parameter semantics. It explains each parameter clearly: domain is the target domain, format has 'zone' (default) or 'json', record_type lists valid types, per_page gives a range and notes that omitting fetches all, and cursor is for pagination. This adds significant meaning beyond the bare schema.

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

Purpose5/5

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

The description states a specific verb and resource ('List DNS records for a domain') and clarifies that it supports compact zone format and filtering. This clearly distinguishes it from siblings like dns_get_record (which retrieves a single record) and dns_list_domains (which lists 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 description implies usage for listing all records of a domain but does not explicitly contrast it with dns_get_record or dns_list_domains. It mentions filtering and format options, but there is no explicit guidance on when to choose this over alternatives. The purpose is clear, but usage context is only implied.

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

dns_setup_websiteB

Set up basic DNS records for a website.

Args: domain: The domain name ip: The website IP address www_enabled: Whether to create www subdomain record (default: True)

Returns: List of created DNS records

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYes
domainYes
www_enabledNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It reveals only that it creates DNS records and that www_enabled controls a www subdomain record, but it does not specify which record types are created, whether the domain must already exist, whether existing records are overwritten, or whether the operation is additive or destructive.

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 front-loaded with a clear one-line purpose, followed by a compact Args section and a Returns line. There is no filler or redundant prose; every sentence contributes useful information.

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

Completeness3/5

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

The description covers the essential purpose, parameters, and return value, making the tool minimally usable. However, the missing details about which DNS records are created and whether the domain needs to already exist are significant gaps for a mutating DNS tool, especially without annotations. The presence of an output schema reduces the need to document return format, but the behavioral gaps remain.

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 define the parameters itself. It does so for all three parameters, adding semantic meaning beyond the raw schema: domain, the website IP, and www_enabled with its default behavior. 'domain: The domain name' is minimal, but the overall parameter documentation is sufficient.

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

Purpose4/5

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

The description clearly states the operation with a specific verb and resource: 'Set up basic DNS records for a website.' It is distinct enough from granular tools like dns_create_record or dns_import_zone_file by framing itself as a setup convenience, but it does not explicitly differentiate itself from 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 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 like dns_create_record or dns_import_zone_file, and no exclusions or prerequisites are mentioned. The phrase 'basic DNS records' implies a simple website use case, but that context is not developed enough to steer an agent reliably.

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

dns_update_recordC

Update an existing DNS record.

Args: domain: The domain name record_id: The record ID to update ctx: FastMCP context for resource change notifications name: New record name (optional) data: New record data (optional) ttl: New TTL value (optional) priority: New priority for MX/SRV records (optional)

Returns: Updated record information

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNo
dataNo
nameNo
domainYes
priorityNo
record_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It mentions 'Update' which implies mutation, but doesn't state whether partial updates are allowed, if there are constraints on TTL/priority applicability, or what the response guarantees. The return type is only 'Updated record information' without detail.

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 fairly concise and includes an Args section that is structured and readable. However, it repeats parameter names and types that are already in the schema, adding little new information. The Returns line is minimal. Overall, it's acceptable but not exceptionally efficient.

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 6 parameters and no annotations, the description is incomplete. It doesn't explain the context (ctx), what fields are optional, how the update behaves with partial data, or error conditions. The output schema exists but the description doesn't elaborate on the return structure. It meets minimal standards but leaves open questions for an agent.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It lists parameter names and brief descriptions (e.g., 'New record data'), which adds some clarity, but doesn't explain the meaning of 'data' (e.g., IP address for A records) or how 'priority' applies only to MX/SRV. The description adds minimal value beyond the schema's parameter 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 clearly states it updates an existing DNS record and lists the relevant fields. It is distinct from create/delete/list operations in the sibling tools, though it doesn't explicitly contrast with dns_validate_record or other similar operations.

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 alternatives like dns_create_record or dns_delete_record. It doesn't mention that domain and record_id are required to locate the record, nor does it suggest when updating is appropriate.

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

dns_validate_recordA

Validate a DNS record before creation.

Args: record_type: Record type (A, AAAA, CNAME, MX, TXT, NS, SRV) name: Record name/subdomain data: Record data/value ttl: Time to live in seconds priority: Priority for MX/SRV records

Returns: Validation results with any errors or warnings

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNo
dataYes
nameYes
priorityNo
record_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that validation results with errors/warnings are returned, which is helpful. However, it does not explicitly state whether the operation is read-only (it likely is) or what exactly is validated (syntax vs. existing records). This leaves some behavioral ambiguity.

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 compact and well-structured. The main purpose is stated first, followed by a clear argument list and return value. There is no fluff or redundancy. Every element 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?

Given the output schema exists (though not detailed here) and the parameters are explained, the description covers the essentials for calling the tool. It does not specify prerequisites (e.g., does the domain need to exist?) or the exact validation scope, but these are not critical for basic invocation. Overall, it is complete enough.

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 compensates by explaining each parameter: record_type with allowed values, name, data, ttl in seconds, and priority restricted to MX/SRV. This meaningfully adds beyond the schema. However, it could provide more detail on data format or constraints, but it's adequate.

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

Purpose5/5

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

The description clearly states the verb 'validate' and the resource 'DNS record', with an explicit purpose 'before creation'. It distinguishes from siblings like dns_create_record (which creates) and dns_analyze_domain (which analyzes the domain). This is unambiguous and specific.

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 phrase 'before creation' gives clear context for when to use this tool. However, it does not explicitly mention alternatives or state when not to use it (e.g., if you need to validate an entire domain). This is a minor gap but not misleading.

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

firewall_create_groupC

Create a new firewall group.

Args: description: Description for the firewall group ctx: FastMCP context for resource change notifications

Returns: Created firewall group information

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It notes that a group is created and that information is returned, and it mentions ctx resource notifications, but it does not disclose side effects, permissions, or whether the group is initially empty and later populated via firewall_create_rule.

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 concise and front-loaded with the core action, followed by structured Args/Returns sections. The inclusion of a non-schema ctx argument is slightly unhelpful, but the overall format is clean and scannable.

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 create operation with an output schema, the description is nearly complete: it states the input and the return value. It lacks broader firewall context, such as the group being a container for rules, and relies entirely on sibling names for selection context.

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 0% schema description coverage, the description must compensate, but it only restates that 'description' is the group's description and introduces a 'ctx' argument that is absent from the input schema. This can mislead an agent into thinking ctx is a callable parameter, and no format, length, or uniqueness constraints 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?

The opening sentence 'Create a new firewall group' identifies a specific verb and resource, clearly marking this as a creation operation distinct from the sibling update/delete/list group tools. It does not explicitly contrast with firewall_create_rule, but the resource name 'group' provides enough differentiation.

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 provided for when to use this tool or what precedes/follows it, such as 'create a group before adding rules with firewall_create_rule'. There are no explicit alternatives, prerequisites, or exclusions, so an agent must infer usage from the name alone.

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

firewall_create_ruleA

Create a new firewall rule.

Args: firewall_group_id: The firewall group ID or description (e.g., "web-servers" or UUID) ip_type: IP type (v4 or v6) protocol: Protocol (tcp, udp, icmp, gre) subnet: IP subnet (use "0.0.0.0" for any IPv4, "::" for any IPv6) subnet_size: Subnet size (0-32 for IPv4, 0-128 for IPv6) ctx: FastMCP context for resource change notifications port: Port or port range (e.g., "80" or "8000:8999") - required for tcp/udp source: Source type (e.g., "cloudflare") - optional notes: Notes for the rule - optional

Returns: Created firewall rule information

Examples: # Allow HTTP from anywhere create_rule(group_id, "v4", "tcp", "0.0.0.0", 0, ctx, port="80")

# Allow SSH from specific subnet
create_rule(group_id, "v4", "tcp", "192.168.1.0", 24, ctx, port="22", notes="Office network")

# Allow ping from anywhere
create_rule(group_id, "v4", "icmp", "0.0.0.0", 0, ctx)
ParametersJSON Schema
NameRequiredDescriptionDefault
portNo
notesNo
sourceNo
subnetYes
ip_typeYes
protocolYes
subnet_sizeYes
firewall_group_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses a conditional requirement (port needed for tcp/udp), notes optional fields (source, notes), and says it returns created rule information. The examples indicate real call patterns. It doesn't discuss idempotency or conflict behavior, but for a create operation the core behavior is clear.

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 Args/Returns/Examples structure is clear and scans well. With eight parameters plus examples, a longer description is justifiedholistically; there is no filler or redundant repetition, every line adds information.

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?

Given the tool has 8 parameters, no annotations, no enums, and only a minimal output schema, the description covers everything needed for correct invocation: parameter semantics, conditional requirements, examples, and return information. Nothing critical for the agent is missing.

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

Parameters5/5

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

Schema description coverage is 0%, and the description fully compensates by documenting every parameter, including special conventions like '0.0.0.0' for any IPv4 and '::' for any IPv6, subnet size ranges, and port range syntax. The examples show exact parameter combinations that the JSON schema cannot convey.

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 'Create a new firewall rule' โ€“ a specific verb and object that names the exact operation and resource. It clearly distinguishes this from sibling tools like firewall_create_group or firewall_delete_rule. The examples reinforce that this tool adds a rule to an existing firewall group.

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 not explicitly name alternatives such as firewall_setup_web_server_rules, but the Args section and examples give clear context for when this tool applies (creating a custom rule in a specified group). The purpose is unambiguous within the firewall_* sibling family, though the description could have pointed to alternative tools for common setups.

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

firewall_delete_groupA

Delete a firewall group.

Args: firewall_group_id: The firewall group ID or description (e.g., "web-servers" or UUID) ctx: FastMCP context for resource change notifications

Returns: Status message confirming deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
firewall_group_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must carry the full behavioral burden. It only mentions the ctx parameter for resource change notifications and the return status. It fails to disclose whether deletion is irreversible, whether associated rules are also deleted, or any prerequisites like the group being empty. This is a significant gap for a destructive operation.

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 well-structured with separate Args and Returns sections, and it is concise. It avoids redundancy and front-loads the primary purpose. The inclusion of ctx as a pseudo-parameter adds slight noise, but overall it is appropriately sized.

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 deletion tool, the description is incomplete. It does not mention the permanence of the action, whether rules within the group are affected, any constraints (e.g., group must be empty), or required permissions. The output schema exists but is not shown; the description only says 'Status message confirming deletion'. Given the complexity of firewall management, an agent needs more context to safely invoke this 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 schema only defines firewall_group_id as a string with no description. The tool description adds critical semantics by stating it can be either a group ID or a description (e.g., 'web-servers' or UUID). This clarifies accepted formats and disambiguates the parameter beyond the raw schema. However, it also introduces a ctx argument not present in the schema, which could confuse the agent.

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

Purpose5/5

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

The description clearly states the action ('Delete a firewall group') with a specific verb and resource. It is distinct from sibling tools like firewall_create_group or firewall_update_group, and the name itself 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 description does not explicitly state when to use this tool versus alternatives. It implies usage for deleting a firewall group but offers no exclusions or guidance on when to prefer this over other deletion tools (e.g., firewall_delete_rule). The context is obvious from the name, but explicit guidance is absent.

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

firewall_delete_ruleA

Delete a firewall rule.

Args: firewall_group_id: The firewall group ID or description (e.g., "web-servers" or UUID) firewall_rule_id: The firewall rule ID to delete ctx: FastMCP context for resource change notifications

Returns: Status message confirming deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
firewall_rule_idYes
firewall_group_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing side effects. It explicitly says 'Delete,' mentions the ctx context for resource change notifications, and promises a status message, but it does not state that the deletion is permanent or describe what happens if the rule or group does not exist.

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 compact docstring with the operation front-loaded in the first sentence, followed by concise parameter explanations and a return statement. There is no fluff or redundant restatement of the schema.

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?

This is a low-complexity tool with 2 required parameters and an output schema, and the description covers both IDs, their accepted formats, and the return type. What is missing is an explicit statement about irreversibility or permissions, but the destructive nature is clear from the verb 'delete.'

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: it explains that firewall_group_id can be a name like 'web-servers' or a UUID, and firewall_rule_id is the rule ID to delete. It also defines the return value, though it lists a ctx parameter that is absent from the JSON 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 'Delete a firewall rule,' a specific verb and resource that tells an agent exactly what operation this tool performs. The use of 'firewall rule' and the two identifiers distinguishes it from sibling tools like firewall_delete_group or firewall_create_rule, even without reading their schemas.

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

Usage Guidelines2/5

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

No when-to-use guidance, prerequisites, or alternatives are provided; the description only restates the delete action. There is no hint that this should be used for removing individual rules while leaving the group intact, nor any pointer to list/get tools for obtaining valid IDs.

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

firewall_get_groupB

Get information about a specific firewall group.

Args: firewall_group_id: The firewall group ID or description (e.g., "web-servers" or UUID)

Returns: Firewall group information

ParametersJSON Schema
NameRequiredDescriptionDefault
firewall_group_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations available, the description carries the full burden of behavioral disclosure. It only states 'Get information' and 'Returns: Firewall group information,' which implies a read operation but does not address potential errors, authorization requirements, rate limits, or any side effects. The description adds little beyond the verb itself.

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 appropriately brief and front-loaded with the purpose. The Args and Returns sections are clearly separatedhare no extraneous detail; every sentence contributes useful 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 operation with one well-documented parameter and an output schema present, the description is largely complete. It covers the key input semantics and return type, but does not mention error cases or how to obtain the group ID beyond the example, 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?

The input schema provides only a bare string type for firewall_group_id with zero description coveragecing the description to compensate. It does so effectively by explaining that the parameter accepts either an ID or a description, with an example ('web-servers' or UUID), giving the agent concrete guidance on valid values.

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 and resource: 'Get information about a specific firewall group.' It distinguishes this from sibling tools like firewall_list_groups by specifying 'specific' and from firewall_get_rule by naming the resource as a group, though it does not explicitly reference 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 Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as firewall_list_groups for listing all groups or firewall_get_rule for a specific rule. There is no mention of prerequisites or context in which this tool should be chosen.

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

firewall_get_ruleA

Get information about a specific firewall rule.

Args: firewall_group_id: The firewall group ID or description (e.g., "web-servers" or UUID) firewall_rule_id: The firewall rule ID

Returns: Firewall rule information

ParametersJSON Schema
NameRequiredDescriptionDefault
firewall_rule_idYes
firewall_group_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. The verb 'Get' and the 'Returns: Firewall rule information' line make the read-only nature clear, which is useful. However, it does not disclose any potential errors, permission requirements, or other behavioral traits beyond the obvious read operation. This 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.

Conciseness4/5

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

The description is short, front-loaded with the purpose, and uses clear Args/Returns sections. Every sentence is informative. The 'Returns' line is somewhat redundant since an output schema exists, but it is not harmful and the overall structure is clean.

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 get-by-two-IDs operation, the description is mostly complete: it names the resource, defines both parameters with an example, and the output schema covers return values. It does not explain how to obtain the rule ID or when to use list rules first, but that is not strictly required for a direct get call.

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. The Args section defines both parameters and adds meaningful context, especially for firewall_group_id, which can be a description like 'web-servers' or a UUID. It could be even more explicit about the format of firewall_rule_id, but it still goes well beyond the bare schema.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Get information about a specific firewall rule.' The word 'specific' clearly distinguishes it from listing all rules or fetching a group, and siblings like firewall_list_rules and firewall_get_group reinforce that contrast. An agent can tell exactly what this tool 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?

There is no explicit guidance about when to use this tool versus alternatives such as firewall_list_rules or firewall_get_group. No 'use this when...' statement and no mention of sibling tools. Usage is only implied by the tool name and parameter requirements, which is weaker than clear context or exclusions.

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

firewall_list_groupsA

List all firewall groups in your Vultr account.

Returns: List of firewall group objects with details including: - id: Firewall group ID - description: Group description - date_created: Creation date - date_modified: Last modification date - instance_count: Number of instances using this group - rule_count: Number of rules in this group - max_rule_count: Maximum allowed rules

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

There are no annotations, so the description carries the behavioral transparency burden. It discloses scope ('all firewall groups in your Vultr account') and the returned key fields, which is useful. It does not state that the operation is read-only, nor does it mention pagination or empty-result behavior, though these are low-risk for a list operation.

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 concise and well-structured, with a clear opening sentence followed by a focused bulleted list of return fields. Every element earns its place and there is no redundant or promotional language.

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 parameterless list operation with an output schema, the description is complete. It identifies the resource scope and enumerates all meaningful return attributes, giving an agent enough information to invoke the tool and interpret its result correctly.

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 there are no parameter semantics to document. The description appropriately avoids inventing parameters and instead focuses on the return fields, which fully covers the relevant input surface.

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 action and resource: 'List all firewall groups in your Vultr account.' It distinguishes itself from single-group and rule-level operations such as firewall_get_group and firewall_list_rules, though it does not explicitly name 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?

The intended use is implied by the description and tool name: call this when you need the full set of firewall groups. However, it does not explicitly state when to prefer this over firewall_get_group or firewall_list_rules, leaving the routing decision mostly to inference.

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

firewall_list_rulesA

List all rules in a firewall group.

Args: firewall_group_id: The firewall group ID or description (e.g., "web-servers" or UUID)

Returns: List of firewall rules with details

ParametersJSON Schema
NameRequiredDescriptionDefault
firewall_group_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry the burden of behavioral disclosure. It provides the return type ('List of firewall rules with details') and names the input parameter, implying a read-only operation. However, it does not mention potential errors (e.g., invalid group ID), required permissions, pagination, or side effects, making it minimally informative rather than fully transparent.

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

Conciseness5/5

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

The description is brief, with a clear 'Args' and 'Returns' structure that is easy to parse. Every sentence earns its place, and there is no redundant phrasing. The example inline with the parameter is especially helpful without adding bulk.

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 simplicity of the tool (one parameter) and the presence of an output schema, the description covers the essential invocation details: what the tool does, how to specify the group, and what to expect as a result. It does not mention how to obtain a group ID (e.g., via firewall_list_groups), but that is a minor omission for a well-scoped list operation.

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 description adds meaning beyond the bare schema (which only says 'type': 'string') by explaining that the parameter is 'The firewall group ID or description' and giving concrete examples like 'web-servers' or UUID. This is essential for correct invocation, especially since the schema has no description 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 action ('List all rules') on a specific resource ('firewall group'), which is clear and distinguishes it from tools like firewall_list_groups (which lists groups) and firewall_get_rule (which gets a single rule). However, it does not explicitly differentiate from sibling tools that also deal with firewall rules (e.g., lb_list_firewall_rules), 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?

No guidance is given on when to use this tool versus alternatives such as firewall_get_rule for a specific rule, firewall_list_groups to obtain group IDs, or lb_list_firewall_rules for load balancer firewall rules. The description simply states what it does without any conditions or exclusions.

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

firewall_setup_web_server_rulesA

Set up common firewall rules for a web server.

Args: firewall_group_id: The firewall group ID or description (e.g., "web-servers" or UUID) ctx: FastMCP context for resource change notifications allow_ssh_from: IP subnet to allow SSH from (default: anywhere)

Returns: List of created firewall rules

Creates rules for:

  • HTTP (port 80) from anywhere

  • HTTPS (port 443) from anywhere

  • SSH (port 22) from specified subnet

  • ICMP (ping) from anywhere

ParametersJSON Schema
NameRequiredDescriptionDefault
allow_ssh_fromNo0.0.0.0/0
firewall_group_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses that the tool creates multiple rules (a batch operation) and specifies the ports and sources. However, it doesn't mention whether existing rules are preserved, whether the operation is idempotent, or what happens if the firewall group doesn't exist. The return value is mentioned ('List of created firewall rules') but not detailed.

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 well-structured with a clear summary, args, returns, and a bulleted list of created rules. It's slightly verbose with the 'ctx' parameter mentioned in Args but not in the schema, but overall it's efficient and front-loaded with the main purpose.

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

Completeness4/5

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

The description covers the tool's purpose, parameters, return value, and the exact rules created. It lacks details about error conditions (e.g., non-existent firewall group) and whether the operation is additive or replaces existing rules, but for a setup tool with a clear scope, it's reasonably 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. It explains firewall_group_id (ID or description like 'web-servers' or UUID) and allow_ssh_from (IP subnet, default anywhere). This adds meaning beyond the bare schema, though it doesn't specify the format for allow_ssh_from (e.g., CIDR notation) beyond the default value.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Set up common firewall rules for a web server' and enumerates the exact rules it creates (HTTP, HTTPS, SSH, ICMP). This distinguishes it from sibling tools like firewall_create_rule (single rule) and firewall_list_rules (listing).

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

Usage Guidelines4/5

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

The description implies when to use this tool: when setting up a web server's firewall with common rules. It doesn't explicitly state when not to use it or name alternatives like firewall_create_rule for custom rules, but the context is clear enough for an agent to select it appropriately.

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

firewall_update_groupA

Update a firewall group description.

Args: firewall_group_id: The firewall group ID or description (e.g., "web-servers" or UUID) description: New description for the firewall group ctx: FastMCP context for resource change notifications

Returns: Status message confirming update

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYes
firewall_group_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It adds useful context: firewall_group_id can be either a description or UUID, and ctx is used for change notifications. However, it does not disclose side effects, error conditions, permission requirements, or whether the operation is idempotent. The verb 'update' implies mutation, but details are missing.

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 compact and well structured with Args and Returns sections. Every line serves a purpose must. The only minor excess is the ctx argument which, while relevant, is not part of the input schema and might slightly distract.

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 description-update operation, the description covers the core purpose, parameters, and return. An output schema exists, so return format is presumably defined elsewhere. Missing are explicit statements about error handling and prerequisites (e.g., group must exist), which are more important given the lack 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?

Input schema has 0% description coverage, so the description must compensate. It explains both required parameters: firewall_group_id (ID or human-readable description) and description (new description). The mention of ctx, though not in the schema, is a helpful detail. This is meaningful clarity beyond the bare 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?

Description states a specific verb and resource: 'Update a firewall group description.' This clearly distinguishes it from siblings like firewall_create_group, firewall_delete_group, and firewall_get_group. The name is self-consistent and the scoped action (description update) leaves no 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. It does not mention whether the group must already exist, nor does it reference any sibling tools or preconditions. An agent is left to infer that this is for modifying an existing firewall group's description.

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

inference_analyze_inference_usageB

Analyze usage patterns and provide optimization recommendations.

Args: subscription_id: The inference subscription ID or label

Returns: Comprehensive analysis including: - efficiency_score: Overall utilization efficiency (0-1) - recommendations: List of optimization suggestions - cost_optimization: Potential cost savings opportunities - usage_patterns: Detailed usage breakdown

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden of behavioral disclosure. It states it 'analyzes' and 'provides recommendations,' implying a read-only operation, but it never explicitly says it does not modify anything. It also omits any mention of permissions, rate limits, or error conditions. For an analysis tool with no annotations, this is a notable gap.

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 concise and well-structured, leading with the core purpose, then clearly separated Args and Returns sections using headers. It avoids unnecessary filler and front-loads the primary intent. Slightly longer than strictly necessary but 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?

The presence of an output schema means return values are externally documented, so the description doesn't need to enumerate them, though it does list them anyway. However, it doesn't distinguish this tool from similar inference analysis tools (e.g., inference_monitor_inference_performance, inference_optimize_inference_costs) or state any prerequisites or typical use cases. Given the large sibling set, an agent might struggle to know when to select this 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?

With 0% schema description coverage, the description compensates by clarifying that subscription_id can be either an ID or a label, which adds meaningful context beyond the bare 'string' type in the schema. It doesn't specify how to obtain a label or expected format, but for a single parameter it provides useful clarification.

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 action ('Analyze usage patterns') and the resource ('inference usage') with an explicit outcome ('provide optimization recommendations'). It doesn't explicitly differentiate from sibling tools like inference_monitor_inference_performance or inference_optimize_inference_costs, but the intended 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 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. The description does not mention that this tool is for analysis/recommendations while others (e.g., inference_get_inference_usage) might be for raw data retrieval, or that optimization tasks belong to inference_optimize_inference_costs. The agent is left to infer usage context, which is missing.

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

inference_create_serverless_inferenceB

Create a new serverless inference subscription.

Args: label: A descriptive label for the inference subscription (e.g., "production-chatbot", "dev-testing")

Returns: Created inference subscription with ID, API key, and configuration details

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states that it returns a created subscription with ID, API key, and configuration details, but does not disclose any side effects (e.g., cost implications, whether it might require billing setup) or prerequisites (e.g., authenticated user). The description is brief but indicates a creation operation, which is inherently mutating. However, it doesn't explain potential failure modes or authorization 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?

The description is concise (one short paragraph) and includes an Args section and Returns section. It is front-loaded with the main purpose. No fluff, but the Returns section is somewhat redundant with what is already known from the output schema. Overall 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?

The tool has a single parameter, an output schema exists, and the description explains the return value. However, since no annotations are provided, the description should cover behavioral aspects like side effects or prerequisites. It does not mention any potential costs or billing implications of creating a serverless inference subscription, which could be important for an agent to decide. But for a simple create operation, the description is reasonably complete for basic usage.

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

Parameters1/5

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

The input schema has only one parameter 'label' with 0% schema coverage. The description provides an example label ('production-chatbot') but does not explain the semantics of the label beyond 'A descriptive label'. This does not add significant meaning beyond the schema, as the schema says it's a string. The description could have mentioned that the label must be unique or follow certain constraints, but it doesn't.

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

Purpose5/5

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

The description clearly states the purpose: 'Create a new serverless inference subscription' with a specific verb 'Create' and resource 'serverless inference subscription'. It also provides a label example that disambiguates it from sibling tools like 'inference_get_serverless_inference' or 'inference_update_serverless_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?

The description implies usage (create a subscription) but does not explicitly state when to use this tool versus alternatives, such as 'inference_list_serverless_inference' or 'inference_update_serverless_inference'. There is no mention of when not to use it, but the context is clear enough for simple creation.

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

inference_delete_serverless_inferenceA

Delete a serverless inference subscription.

Warning: This action is irreversible and will immediately terminate the subscription.

Args: subscription_id: The inference subscription ID or label to delete

Returns: Confirmation of deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations present, the description carries the behavioral disclosure burden. It explicitly warns that deletion is irreversible and immediately terminates the subscription, which goes well beyond the bare verb 'delete'. It also states the return type, though output schema could cover that.

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 tightly structured into warning, args, and returns sections. Every sentence earns its place, and the irreversible warning is front-loaded before the parameter details.

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 one-parameter destructive tool with an output schema, the description is complete: it names the resource, warns about consequences, defines the parameter, and states the return. Nothing an agent needs for 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?

The input schema only defines subscription_id as a string with 0% description coverage. The description compensates by clarifying that the value can be either an inference subscription ID or a label, which is essential usage information.

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

Purpose5/5

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

The description uses a specific verb and resource ('Delete a serverless inference subscription') and makes the tool's destructive lifecycle role unmistakable. It is clearly distinguishable from sibling tools like inference_get_serverless_inference, inference_update_serverless_inference, and inference_create_serverless_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 description states what the tool does but provides no guidance on when to choose it over alternatives such as updating or suspending a subscription. No prerequisites, exclusion conditions, or sibling comparisons are given.

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

inference_get_inference_deployment_guideB

Get deployment guidance and best practices for an inference subscription.

Args: subscription_id: The inference subscription ID or label

Returns: Deployment guide with: - api_endpoints: Available API endpoints and documentation - authentication: How to use the API key - best_practices: Optimization and usage recommendations - examples: Sample code and integration patterns

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of disclosing behavior. 'Get' implies a read-only operation, and the return list clarifies what the tool provides, but the description does not explicitly state that no modification occurs or mention required authentication or error behavior. It adds useful context about the returned guide but lacks full safety/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.

Conciseness5/5

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

The description is compact and well-structured, with a one-sentence purpose followed by clear Args and Returns sections. The bullet list of returned components is scannable and adds no unnecessary verbiage. Every sentence earns its place without 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?

The tool has an output schema and the description already summarizes the return fields, so return-value explanation is sufficient. However, it does not mention what happens for invalid/nonexistent subscription IDs, whether this is a read-only call, or how it relates to sibling inference getters. For a simple retrieval tool, this is a moderate gap rather than a fatal one.

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 input schema provides only 'type: string' for subscription_id, with 0% schema description coverage. The description adds meaningful value by explaining that the parameter accepts 'the inference subscription ID or label', clarifying the accepted input beyond the raw schema. It does not provide a format or example, but for a single simple parameter this is adequate.

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 ('Get deployment guidance and best practices') and a specific resource ('inference subscription'), making the tool's function clear. It is distinct from sibling tools such as inference_get_serverless_inference, though it does not explicitly name the alternative. The 'deployment guidance' framing prevents confusion with usage or monitoring 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 explicit guidance on when to choose this tool over siblings like inference_get_serverless_inference or inference_get_inference_usage. The description implies it is for deployment guidance, but it does not state conditions, exclusions, or alternatives. An agent is left to infer the appropriate usage context.

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

inference_get_inference_usageA

Get usage statistics for a serverless inference subscription.

Args: subscription_id: The inference subscription ID or label

Returns: Detailed usage information including: - chat: Token usage for chat/completion models - audio: Character usage for text-to-speech models - monthly_allotment: Total tokens/characters allocated - overage: Usage exceeding the monthly limit

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It clearly describes the return data and units, but it does not explicitly state that the operation is read-only, whether any permissions are needed, or how the usage data is aggregated.

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 well-structured with a concise purpose statement followed by Args and Returns sections. The bullet list of returned fields is relevant and informative without excessive 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 simple get-usage tool, the description adequately covers what the tool does, what parameter is required, and what output to expect. It lacks guidance on edge cases or differentiation from sibling analytics tools, but it is otherwise 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 schema has 0% description coverage and only defines subscription_id as a string. The description adds meaning by stating it is 'The inference subscription ID or label', which helps an agent supply an acceptable value. It could include format examples, but for a single-parameter tool this is adequate compensation.

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: 'Get usage statistics for a serverless inference subscription.' It enumerates the categories of usage returned, which makes it clear and distinguishes it from related inference tools like inference_get_serverless_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?

The description implies this tool is for retrieving usage statistics for a serverless inference subscription, but it does not explicitly say when to choose it over alternatives such as inference_analyze_inference_usage or inference_monitor_inference_performance. No exclusions or selection criteria are provided.

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

inference_get_serverless_inferenceB

Get detailed information about a specific inference subscription.

Args: subscription_id: The inference subscription ID or label (e.g., "my-ai-model", or UUID)

Returns: Detailed inference subscription information including API key and metadata

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

Annotations are absent, so the description should carry the burden. It clarifies that it returns an API key, which is a security highlight, but does not disclose whether it is a read-only operation or if sensitive data is exposed. No mention of permissions or side effects, so value beyond what the name already implies is limited.

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

Conciseness4/5

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

The description is a short docstring with clear sections for arguments and returns. It is efficient and front-loads the purpose. No fluff, though the 'Returns' line is slightly redundant with the purpose.

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 there is a single parameter and an output schema exists, the description covers the essentials. The return value mentions 'detailed inference subscription information including API key', which is likely sufficient for an agent to use. Since that description conveys the return shape, and output schema is present, the completeness is high.

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 explains the parameter accepts an ID or label, adding meaning beyond the raw schema, which only says 'string'. However, it does not elaborate on format nuances beyond the example, so it is adequate but not thorough.

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 that it retrieves detailed information about a specific inference subscription. The verb 'Get' and resource 'inference subscription' are clear. It is distinguished from siblings like 'inference_update_serverless_inference' or 'inference_delete_serverless_inference' by the action, but not explicitly named as an alternative.

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

Usage Guidelines3/5

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

The description implies use when you need details on a single subscription, but does not explicitly state when to use it versus listing or creating. No exclusions or alternatives are given.

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

inference_list_serverless_inferenceA

List all serverless inference subscriptions in your Vultr account.

Returns: List of inference subscription objects with details including: - id: Subscription ID (UUID) - label: User-defined label for the subscription - api_key: API key for accessing the inference service - date_created: When the subscription was created

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Without annotations, the description carries the burden of behavioral disclosure. It clearly states that the operation returns a list of all subscriptions and enumerates the output fields, which is useful. However, it does not mention that the operation is read-only, any potential side effects, or pagination behavior, which could be relevant for a list-all endpoint.

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 short and front-loaded with the primary actionabb, followed by a clear bulleted list of return fields. Every sentence adds value, and the structure is easy to scan.

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 no parameters and no annotations, the description is largely complete. It specifies the resource scope and the key fields returned. It lacks notes on pagination or potential large result sets, but given the existence of an output schemahol, 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?

Since there are zero parameters, the description does not need to explain parameter semantics. The baseline for 0 params is 4, and the description does not introduce any confusion or omit necessary parameter details.

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 specifies a clear verb ('List all') and resource ('serverless inference subscriptions in your Vultr account'), which differentiates it from sibling tools like inference_get_serverless_inference. The scope is explicit and unambiguous.

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

Usage Guidelines3/5

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

The description implies usage by stating 'List all', which suggests it is for retrieving the full set of subscriptions rather than a single one. However, it does not explicitly mention when to use this tool versus alternatives or exclude any scenarios.

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

inference_monitor_inference_performanceA

Monitor performance metrics and usage trends for an inference subscription.

Args: subscription_id: The inference subscription ID or label

Returns: Performance monitoring data including: - current_usage: Real-time usage statistics - trends: Usage patterns and projections - alerts: Any usage or performance warnings - health_score: Overall subscription health (0-100)

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It explicitly calls the operation monitoring and shows a real-time usage/health read, which conveys a read-only nature, but it does not disclose any caveats such as data freshness, permission requirements, or what happens for unknown subscription IDs.

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 compact and front-loaded: one purpose sentence, then Args and a compact Returns list. There is no filler, and the health_score range is useful without bloating the text.

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

Completeness4/5

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

For a simple one-parameter monitoring tool with an output schema already present, the description covers purpose, parameter, and the high-level return semantics. It is slightly thin on when to use it versus nearby inference tools, but that is largely a usage-guidance concern.

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

Parameters5/5

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

The input schema only provides the parameter name and type, so the description's 'The inference subscription ID or label' adds meaning, including that labels are accepted. This fully compensates for the 0% schema coverage on the sole 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 opening sentence uses a specific verb ('Monitor') with a resource ('performance metrics and usage trends' for 'an inference subscription'), so an agent can tell what it does. It does not explicitly contrast with sibling inference_* tools such as inference_get_inference_usage, so it misses the top-level distinction.

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 choose this over inference_get_inference_usage or inference_analyze_inference_usage, nor any listed alternatives or exclusions. The description only states the action and does not define a use context or prerequisites, leaving selection to inference.

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

inference_optimize_inference_costsA

Analyze costs and provide optimization recommendations for an inference subscription.

Args: subscription_id: The inference subscription ID or label

Returns: Cost optimization analysis including: - current_costs: Current usage-based costs - optimization_opportunities: Ways to reduce costs - plan_recommendations: Suggested plan changes - savings_potential: Estimated cost savings

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

There are no annotations, so the description carries the transparency burden. 'Analyze' and 'provide ... recommendations' clearly signal a non-mutating analysis, and the Returns block discloses the shape of the result. It doesn't mention permissions or data source, but no contradictory annotations exist.

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 compact and front-loaded with the purpose, then structured Args/Returns sections. The Returns block is slightly redundant if an output schema exists, but it earns its place for behavioral 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?

For a single-required-parameter analysis tool with an output schema, the description covers the input and expected output adequately. It lacks guidance on how this differs from related inference/billing analysis tools, but that gap is more about usage routing than call correctness.

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 schema has 0% description coverage, but the description's Args section explains that subscription_id is 'The inference subscription ID or label,' adding meaning beyond the bare string type. It could add format or lookup guidance, but for a one-parameter tool this is adequate.

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 first sentence names a clear verb+resource: 'Analyze costs ... for an inference subscription,' so an agent can see this is a cost-analysis tool. It does not explicitly contrast itself with sibling cost/usage tools like inference_analyze_inference_usage, 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 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, conditions, or alternatives. With sibling tools such as inference_get_inference_usage and inference_analyze_inference_usage present, the agent is left to infer when optimization recommendations are needed.

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

inference_update_serverless_inferenceA

Update an existing serverless inference subscription.

Args: subscription_id: The inference subscription ID or current label label: New label for the subscription

Returns: Updated inference subscription information

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYes
subscription_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It states that the operation updates an existing subscription and returns updated subscription information, but it does not mention side effects, permissions, idempotency, or whether the label change is applied immediately or subject to validation.

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 compact, front-loaded with the action and resource, and organized with Args and Returns sections. Every sentence adds useful information, and there is 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?

Given only two string parameters and the presence of an output schema, the description covers the key semantic points: which subscription to target, what to update, and what to expect in return. It is slightly light on broader usage context, but for this simple update tool it is largely sufficient with the existing schema.

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 0% schema description coverage, this description compensates by explaining that subscription_id accepts either the subscription ID or current label, and that label is the new label. This adds meaning beyond the raw schema, though it could specify formats or constraints for either field.

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

Purpose5/5

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

The description clearly states the action (update), the resource (serverless inference subscription), and the scope (existing, not create/delete). This differentiates the tool from sibling tools like inference_create_serverless_inference and inference_delete_serverless_inference without needing to inspect schemas.

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 when to use the tool: when an existing inference subscription needs a new label, and it clarifies that the subscription must already exist. However, it does not explicitly name alternative tools or state when not to use it, leaving the routing to be inferred rather than stated.

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

instance_createB

Create a new instance.

Args: region: Region code (e.g., 'ewr', 'lax') plan: Plan ID (e.g., 'vc2-1c-1gb') ctx: FastMCP context for resource change notifications label: Label for the instance os_id: Operating System ID (use list_os to get available options) iso_id: ISO ID for custom installation script_id: Startup script ID snapshot_id: Snapshot ID to restore from enable_ipv6: Enable IPv6 enable_private_network: Enable private networking attach_private_network: List of private network IDs to attach ssh_key_ids: List of SSH key IDs to install backups: Enable automatic backups app_id: Application ID to install user_data: Cloud-init user data ddos_protection: Enable DDoS protection activation_email: Send activation email hostname: Hostname for the instance tag: Tag for the instance firewall_group_id: Firewall group ID reserved_ipv4: Reserved IPv4 address to use

Returns: Created instance information

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
planYes
labelNo
os_idNo
app_idNo
iso_idNo
regionYes
backupsNo
hostnameNo
script_idNo
user_dataNo
enable_ipv6No
snapshot_idNo
ssh_key_idsNo
reserved_ipv4No
ddos_protectionNo
activation_emailNo
firewall_group_idNo
attach_private_networkNo
enable_private_networkNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose side effects itself, but it only states that a new instance is created and that created-instance information is returned. It does not mention billing consequences, provisioning time, required permissions, or irreversibility, which are significant for a create operation.

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 purpose statement and then uses a compact, scannable Args list for the remaining content. It is necessarily long given 20 parameters, but every line earns its place apart from the stray 'ctx' entry and the redundant Returns line.

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 the large parameter surface and no annotations, the description covers all parameter names and the return value, and the output schema handles the response shape. However, it does not explain lifecycle implications, billing, or how valid region and plan values should be discovered, so an agent is not fully equipped to invoke it safely and correctly.

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%, and the Args list compensates by naming every schema property with a plain-language explanation, concrete examples for region and plan, and a pointer to list_os for valid os_id values. It loses a point because some entries are tautological ('label: Label for the instance') and 'ctx' is listed even though it is not in the input 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 opens with 'Create a new instance,' a specific verb and resource that clearly identifies the operation among the instance_* siblings and other create tools. It does not explicitly contrast itself with bare_metal_create or db_create, but 'instance' is concrete enough to route the agent correctly.

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 provided about when to choose this tool over alternatives such as instance_update for modifying an existing instance or bare_metal_create for creating a bare-metal server. The only cross-reference is 'use list_os to get available options,' which is parameter help rather than usage steering.

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

instance_create_ipv4A

Create a new IPv4 address for an instance.

Args: instance_id: The instance ID, label, or hostname (e.g., "web-server", "db.example.com", or UUID) reboot: Whether to reboot the instance (default: True)

Returns: Created IPv4 information

ParametersJSON Schema
NameRequiredDescriptionDefault
rebootNo
instance_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations present, the description must carry the full burden. It does reveal an important behavioral trait: the operation's effect can involve a reboot (reboot parameter defaults to True), and it states what is returned. Yet it stops short of disclosing broader side effects like billing impacts, downtime beyond the reboot, or whether the instance must already exist.

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 compact, with the core purpose front-loaded, and the Args/Returns sections are minimal. No wasted words; every sentence 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 simple two-parameter create tool with an output schema, the description covers the essential operating details and return information. However, it omits prerequisites like the instance needing to exist or any context about IPv4 quotas or cost, and without annotations those gaps are not covered elsewhere.

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 parameter explanations are critical. The description provides concrete semantics: instance_id can be an ID, label, or hostname with examples (web-server, db.example.com, UUID), and reboot is described as a boolean with default True. This adds meaning well beyond the bare schema types.

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 first sentence states exactly what the tool does: creates a new IPv4 address for an instance. This clearly differentiates it from siblings like instance_create (creates an instance), instance_list_ipv4, and instance_delete_ipv4 without ambiguity.

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

Usage Guidelines3/5

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

The description implies the tool is used when an existing instance needs a new IPv4 address, and explains the instance_id formats and reboot flag. However, it never explicitly contrasts the tool with alternatives such as instance_list_ipv4, instance_delete_ipv4, or reserved_ip_attach, nor does it provide 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.

instance_deleteA

Delete an instance.

Args: instance_id: The instance ID, label, or hostname (e.g., "web-server", "db.example.com", or UUID) ctx: FastMCP context for resource change notifications

Returns: Status message confirming deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
instance_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only says 'Delete an instance' without mentioning that deletion is irreversible, that associated resources may be affected, or that it may fail if the instance is running. The return value is vaguely described as 'Status message confirming deletion' without specifying error behavior or idempotency. The mention of 'ctx' for notifications adds little.

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 concise and front-loaded with the core action. The args and returns sections are clearly structured, but the inclusion of 'ctx' (not in the schema) adds noise. Overall, it is appropriately sized for a simple delete 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 destructive tool with no annotations and an output schema that is not shown, the description lacks essential context: it does not warn about irreversible data loss, does not mention whether the instance must be stopped first, and does not explain error handling. The return value is vague, and there is no mention of idempotency or side effects on associated resources. The description is adequate for a basic delete but not fully complete for an agent to understand consequences.

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 description explains instance_id in detail: 'The instance ID, label, or hostname (e.g., "web-server", "db.example.com", or UUID)', which adds meaning beyond the bare schema (which has no description for this parameter). However, it also lists 'ctx' as an argument, but the schema does not include it, creating potential confusion. Since the only required parameter is well-documented, this is a strong addition despite the extra context.

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 'Delete an instance' with a specific verb and resource, making the purpose unambiguous. It distinguishes from sibling tools like instance_create, instance_update, and instance_delete_ipv4 because it explicitly targets the whole instance, not a component. Examples of identifiers further clarify the target resource.

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 does not explicitly state when to use this tool versus alternatives. It does not mention that it deletes the entire instance rather than an IP (sibling instance_delete_ipv4), nor does it mention any prerequisites like stopping the instance first. Usage is implied by the tool name and resource, but no explicit guidance is given.

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

instance_delete_ipv4A

Delete an IPv4 address from an instance.

Args: instance_id: The instance ID, label, or hostname (e.g., "web-server", "db.example.com", or UUID) ipv4: The IPv4 address to delete

Returns: Status message confirming deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
ipv4Yes
instance_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full behavioral disclosure burden. It only states 'Delete an IPv4 address' and confirms a status message, but does not disclose side effects, permanence, whether the address is released back to the pool, or any constraints on when deletion is allowed. This is a significant gap for a destructive operation.

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 appropriately sized: a one-line purpose statement, a succinct Args section, and a Returns line. It is front-loaded with the core action and contains no filler or redundancy.

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

Completeness3/5

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

For a simple two-parameter delete tool, the description covers the essential what, parameters, and return value. However, because it is destructive and has no annotations, the lack of usage context and behavioral caveats leaves meaningful gaps in understanding the full impact and appropriate invocation conditions.

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 input schema is bare (0% coverage, just type strings), but the description adds meaningful semantics by explaining instance_id accepts an ID, label, or hostname with concrete examples, and clarifies ipv4 as the address to delete. This helps an agent format arguments correctly.

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 first sentence, 'Delete an IPv4 address from an instance,' clearly identifies the verb (delete) and resource (IPv4 address on an instance). It differentiates from sibling tools like instance_create_ipv4 and instance_list_ipv4 by stating the specific action without ambiguity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites (e.g., whether the IP must be a secondary address or attached to the instance). The intended usage is only implied by the tool name and the action line.

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

instance_get_bandwidthA

Get bandwidth usage statistics for an instance.

Args: instance_id: The instance ID, label, or hostname (e.g., "web-server", "db.example.com", or UUID)

Returns: Bandwidth usage information

ParametersJSON Schema
NameRequiredDescriptionDefault
instance_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It states the operation is a 'Get' (read-only) and returns 'bandwidth usage information,' but it does not disclose any potential side effects, permissions required, rate limits, or what exactly constitutes the return beyond vague phrasing. The return details are left to the output schema, which is structured, but the description adds 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.

Conciseness5/5

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

The description is exceptionally concise and well-structured. It leads with the purpose, then provides a clear Args section explaining the parameter, and a Returns section outlining the output. Every sentence earns its placeโ€”there is no fluff, and the key information is front-loaded. The format is scannable and 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 simple read operation with one parameter and an output schema, the description is largely sufficient. It clarifies the parameter format and indicates the return type. However, it omits any mention of time ranges, units, or whether the bandwidth is for a specific period, which might be relevant. But since the output schema likely details the structure, this is a minor gap. The description does not address error conditions or prerequisites, but those are not critical for this basic getter.

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 schema only declares instance_id as a string, but the description significantly enriches its semantics by stating it can be 'the instance ID, label, or hostname' and provides concrete examples. This goes beyond the schema's basic type and helps the agent understand acceptable formats, which is especially important given the 0% schema description coverage. The description compensates well for the schema's lack of detail.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get bandwidth usage statistics for an instance.' It uses a specific verb and resource, and the scope is unambiguousโ€”it targets instances, distinguishing it from the sibling bare_metal_get_bare_metal_bandwidth without needing to name it. The purpose is immediately 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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention any context, exclusions, or alternatives like bare_metal_get_bare_metal_bandwidth. The only hint is the tool name itself, which is not sufficient for routing an agent. No usage conditions or prerequisites are described.

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

instance_list_ipv4A

List IPv4 addresses for an instance.

Args: instance_id: The instance ID, label, or hostname (e.g., "web-server", "db.example.com", or UUID)

Returns: List of IPv4 addresses

ParametersJSON Schema
NameRequiredDescriptionDefault
instance_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the burden. 'List' and 'Returns: List of IPv4 addresses' signal a read operation and basic output shape, and the accepted instance_id forms are helpful. However, it does not disclose whether public/private addresses are included, ordering, pagination, or failure behavior.

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

Conciseness5/5

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

The description is compact and well-structured with a one-line summary, Args, and Returns. It contains no filler, and the examples earn their place by clarifying the parameter format.

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, likely read-only tool with an output schema, this is nearly complete: the parameter is documented and the return type is stated. The main gap is not mentioning when to prefer this over the IPv6 sibling, but that is a minor omission for such a simple operation.

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 input schema only defines instance_id as a string with 0% description coverage. The description compensates well by identifying the accepted forms (ID, label, or hostname) and providing concrete examples, which is the key semantic information an agent needs.

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 ('List'), resource ('IPv4 addresses'), and scope ('for an instance'). It is clearly distinguishable from the sibling instance_list_ipv6 by address family, though it does not explicitly name that alternative.

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 guidance is given about when to use this tool versus instance_list_ipv6 or instance_create_ipv4/instance_delete_ipv4. The intended usage has to be inferred from the tool name and the one-line purpose.

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

instance_list_ipv6A

List IPv6 addresses for an instance.

Args: instance_id: The instance ID, label, or hostname (e.g., "web-server", "db.example.com", or UUID)

Returns: List of IPv6 addresses

ParametersJSON Schema
NameRequiredDescriptionDefault
instance_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral burden. The verb 'List' and the Returns section imply a read-only operation and specify the output type, but it does not disclose pagination, auth requirements, or behavior for unknown/invalid instance IDs. It is adequate for a simple read tool but not rich.

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

Conciseness5/5

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

The description is compact and well-structured with a clear intro, Args section, and Returns section. Every sentence adds value, and the parameter explanation is front-loaded. No filler or redundant elaboration.

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-required-parameter list operation with an output schema, the description covers the essential semantics: what is listed and how to identify the instance. It lacks usage guidance and some behavioral detail, but nothing an agent needs to perform this basic call is critically missing.

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

Parameters5/5

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

Schema coverage is 0%, and the description fully compensates by explaining that instance_id can be an ID, label, or hostname, with concrete examples like 'web-server', 'db.example.com', or UUID. This is exactly the semantic detail an agent needs beyond the bare string type.

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?

Description opens with a specific verb and resource: 'List IPv6 addresses for an instance.' This clearly distinguishes it from the sibling instance_list_ipv4 and other instance operations by target address family. The scope is immediately understandable without needing to inspect 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 Guidelines2/5

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

No when-to-use or when-not-to-use guidance is provided. The sibling instance_list_ipv4 is the obvious alternative, but the description never explains how to choose between listing IPv4 vs IPv6 addresses or mentions any caveats such as instances without IPv6 enabled.

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

instance_rebootB

Reboot an instance.

Args: instance_id: The instance ID, label, or hostname (e.g., "web-server", "db.example.com", or UUID) ctx: FastMCP context for resource change notifications

Returns: Status message confirming reboot

ParametersJSON Schema
NameRequiredDescriptionDefault
instance_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden of behavioral disclosure. It only states the action and return message, without mentioning effects like instance downtime during reboot, whether the instance must be running, or that it is a non-destructive restart. No contradiction, but substantial gaps remain.

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 concise and well-structured with Args and Returns sections, and the main action is front-loaded. Including ctx, which is not part of the schema, adds minor noise, but overall the format is efficient and easy to parse.

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

Completeness3/5

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

The output schema exists, so return details are partially covered, and the description does mention the status message. However, it lacks guidance on when to use this tool relative to other lifecycle operations, potential side effects, or prerequisites. Given the many sibling tools and the absence of annotations, the description could be more 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 descriptions adds meaningful value by explaining that instance_id can be an ID, label, or hostname, with concrete examples. This helps an agent correctly populate the parameter. However, the ctx argument is mentioned in the description but not in the schema and lacks explanation, which introduces slight ambiguity.

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 'Reboot an instance', which is a specific verb and resource. It is clear and distinct from other lifecycle operations, though it does not explicitly name sibling tools like instance_start or instance_stop to differentiate itself. The action is unambiguous enough for an agent to grasp the 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?

No guidance is provided on when to use this tool versus alternatives such as instance_start, instance_stop, or instance_reinstall. The description does not include exclusions, prerequisites, or context about when a reboot is appropriate. While the tool names are self-explanatory, an agent would benefit from explicit routing guidance.

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

instance_reinstallB

Reinstall an instance's operating system.

Args: instance_id: The instance ID, label, or hostname (e.g., "web-server", "db.example.com", or UUID) ctx: FastMCP context for resource change notifications hostname: New hostname for the instance (optional)

Returns: Reinstall status information

ParametersJSON Schema
NameRequiredDescriptionDefault
hostnameNo
instance_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden of behavior disclosure. It says 'Reinstall an instance's operating system,' which implies a destructive operation, but it never explicitly warns that existing data on the instance may be erased, that the instance may become unavailable, or that the operation is irreversible. It also lists a 'ctx' argument that does not appear in the input schema, adding ambiguity.

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 compact, front-loads the core purpose in one sentence, and separates Args from Returns clearly. The only structural flaw is documenting ctx as an argument when the input schema does not define 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 two-parameter tool with an output schema, the description covers the basic invocation details and result. However, given this is a destructive reinstall operation with no annotations, the absence of any warning about data loss or operational impact leaves a meaningful completeness 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?

Schema description coverage is 0%, so the description must compensate. It does: instance_id is explained as accepting an ID, label, or hostname with concrete examples, and hostname is marked optional with a clear meaning. The unexplained 'ctx' parameter not present in the schema prevents a higher score.

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, actionable statement โ€” 'Reinstall an instance's operating system' โ€” naming both the verb and the resource. This clearly separates the tool from siblings like instance_reboot, instance_update, and instance_delete without needing to open their schemas.

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

Usage Guidelines2/5

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

The description gives no guidance on when to choose reinstall over alternatives such as instance_reboot or instance_update, nor does it state prerequisites or exclusions. Usage is only implied by the tool's name and one-line purpose.

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

instance_startA

Start a stopped instance.

Args: instance_id: The instance ID, label, or hostname (e.g., "web-server", "db.example.com", or UUID) ctx: FastMCP context for resource change notifications

Returns: Status message confirming start

ParametersJSON Schema
NameRequiredDescriptionDefault
instance_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It states it 'starts' an instance, implying a state change, and mentions the start is confirmed by a status message. However, it does not disclose any side effects, permissions needed, or whether the instance must be stopped. It provides basic context but not deep transparency.

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 concise and front-loaded with the main action. It includes a parameter explanation and a returns note, all in a few lines. No unnecessary filler; it's efficient and well-structured.

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

Completeness4/5

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

For a simple single-parameter action tool, the description covers the essential: what it does, the parameter flexibility, and the return. It doesn't need extensive context when compared to complex multi-parameter tools. It is reasonably complete given its simplicity.

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 explain the parameter. It does explain that instance_id can be an ID, label, or hostname with examples, which adds meaning beyond the schema's plain string type. This is valuable, but it doesn't clarify the format or validation rules, so a 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 clearly states the action ('Start a stopped instance') with a specific resource. It is distinct from siblings like instance_stop, instance_reboot, and instance_reinstall, though it doesn't explicitly name alternatives. The purpose is clear and unambiguous.

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

Usage Guidelines3/5

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

The description implies usage: it is for instances that are stopped, so an agent can infer when to use it. However, it doesn't explicitly state conditions like 'only use when the instance is stopped' or contrast with instance_reboot or instance_reinstall. There is no mention of prerequisites, such as the instance existing or being in a stopped state.

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

instance_stopA

Stop a running instance.

Args: instance_id: The instance ID, label, or hostname (e.g., "web-server", "db.example.com", or UUID) ctx: FastMCP context for resource change notifications

Returns: Status message confirming stop

ParametersJSON Schema
NameRequiredDescriptionDefault
instance_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description itself must disclose behavior. It clearly states the state transition (running -> stopped) and the expected return message, but it does not disclose side effects such as workload interruption, whether it is safe to call on an already-stopped instance, or any permissions or billing implications.

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, scannable, and front-loaded with the core action. The Args/Returns layout is easy to parse, but the ctx line is unnecessary and inconsistent with the schema, and the Returns line partly duplicates what an output schema would already convey.

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 state-changing tool, the description gives enough to invoke it: the identifier forms and the confirmation response. However, because there are no annotations and no side-effect caveats, it is not fully complete for an AI agent deciding whether stopping is the right action.

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. It does this well for instance_id by explaining it can be an ID, label, or hostname with concrete examples. However, it also documents a 'ctx' argument that is absent from the input schema, which could mislead an agent into passing an unsupported parameter.

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 opening sentence 'Stop a running instance' is a specific verb+resource+state combination, so the tool's purpose is unambiguous. It is clearly distinguished from sibling lifecycle tools like instance_start, instance_reboot, and instance_delete by naming the stop operation and the 'running' state.

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 'running instance' implies this should be used when an instance is active, but there is no explicit guidance on when not to use it or how it differs from instance_delete or instance_reboot. No alternatives are named, so the usage context is only implicit.

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

instance_updateB

Update an existing instance.

Args: instance_id: The instance ID, label, or hostname (e.g., "web-server", "db.example.com", or UUID) ctx: FastMCP context for resource change notifications label: New label for the instance tag: New tag for the instance plan: New plan ID (for resizing) enable_ipv6: Enable/disable IPv6 backups: Enable/disable automatic backups ddos_protection: Enable/disable DDoS protection firewall_group_id: New firewall group ID user_data: New cloud-init user data

Returns: Updated instance information

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
planNo
labelNo
backupsNo
user_dataNo
enable_ipv6No
instance_idYes
ddos_protectionNo
firewall_group_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full burden of disclosing side effects. It lists parameters and return type but does not state whether updates are immediate, if the instance is rebooted, if certain fields cannot be changed together, or if there are irreversible effects. For a mutation tool, this is a critical omission.

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 structured list of arguments and returns, which is efficient and scannable. It front-loads the purpose and then lists each parameter with a short comment. It avoids redundancy, though slightly verbose with the explicit 'Args' and 'Returns' headers.

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?

While the parameter semantics are covered, the description lacks essential context for a 9-parameter update tool. It does not explain that only provided fields are updated (since all optional params default null), nor does it mention any constraints or side effects. Given the absence of an exposed output schema and the mutating nature of the tool, more guidance 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 schema has zero descriptions, so the parameter explanations in the description are essential. Each parameter gets a brief but helpful comment (e.g., 'New label for the instance'), and instance_id is clarified to accept an ID, label, or hostname. This adds meaningful value beyond the raw 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 clearly states 'Update an existing instance' and enumerates the specific attributes that can be modified (label, tag, plan, etc.), distinguishing it from instance_create, instance_delete, instance_start, and other sibling tools. The verb-resource pairing is specific and unambiguous.

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

Usage 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 alternatives. It does not mention whether it should be used for config changes versus other operations, nor does it note prerequisites such as the instance needing to exist or be in a certain state. The description is purely a parameter listing without any contextual direction.

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

iso_create_isoB

Create a new ISO image from URL.

Args: url: The URL to create the ISO from

Returns: Created ISO details

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description must carry the behavioral burden, but it only states that creation happens and returns details. It does not disclose whether the operation is asynchronous, how long URL downloading may take, whether a resource is stored as a custom ISO, or any authorization/quotas involved.

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 compact and front-loaded: the main capability, the single arg, and the return value are each separated into clear short sections. There is no redundant or filler prose.

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 create tool with an existing output schema, the description is minimally sufficient, but it leaves important context unspecified: the exact nature of the URL and operational expectations. It also does not connect to related ISO workflows such as listing or retrieving custom ISOs.

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 one parameter's semantics must be compensated by the prose, but 'The URL to create the ISO from' adds little beyond the parameter name 'url'. It does not specify expected URL schemes, whether the URL must point directly to an ISO file, or size/accessibility constraints.

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 opening sentence uses a specific verb ('Create') and resource ('ISO image'), and adds the source mechanism ('from URL'). This separates it from the read/list/delete ISO siblings in the tool list, and although snapshot_create_from_url has a similar source, the resource is explicitly different.

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 indication of when to choose this over alternatives such as iso_list_public_isos, iso_list_custom_isos, or snapshot_create_from_url, and no prerequisites (e.g., must the URL be a direct ISO download) are mentioned. Usage is only implied by the verb and tool name.

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

iso_delete_isoC

Delete an ISO image.

Args: iso_id: The ISO ID to delete

Returns: Success message

ParametersJSON Schema
NameRequiredDescriptionDefault
iso_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

There are no annotations, so the description must carry the burden of explaining the operation's effects. It only repeats the delete action and promises a 'Success message'; it does not disclose irreversibility, permissions required, or any side effects on the ISO resource.

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 compact and front-loads the operation, with a short Args/Returns structure. It avoids unnecessary prose, though the Args line adds only marginal 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 destructive one-parameter tool with no annotations, the description is minimal: it omits how to discover valid ISO IDs, whether deletion is permanent, and any consequences. The simple return note does not compensate for the missing operational context.

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 0% schema description coverage, the description must define the parameter, but 'The ISO ID to delete' mostly restates the property name iso_id. It adds no format, source, or constraints beyond the schema's string type.

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

Purpose5/5

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

The description clearly identifies the action ('Delete') and the resource ('an ISO image'), which distinguishes this tool from its iso_* siblings. The purpose is unambiguous and requires no 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 description gives no guidance about when deletion is appropriate, how to obtain the iso_id (e.g., via iso_list_isos), or whether there are preconditions such as detaching the ISO from an instance. It neither names alternatives nor states exclusions, so the agent gets no usage direction.

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

iso_get_isoC

Get details of a specific ISO image.

Args: iso_id: The ISO ID

Returns: ISO image details

ParametersJSON Schema
NameRequiredDescriptionDefault
iso_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Get details,' which implies a read operation, but it does not disclose authentication needs, behavior when the ISO is not found, or error handling. For a retrieval tool with zero annotation coverage, this is a notable gap.

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 brief with a clean Args/Returns structure and no wasted words. However, the brevity is a result of under-specification rather than deliberate efficiency; the Returns section merely repeats the purpose rather than adding detail.

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?

An output schema exists, so return values need not be elaborated. For a single-parameter get tool the description is functionally adequate, but it omits distinguishing guidance versus the by-name sibling and any behavioral caveats, leaving the definition minimally sufficient.

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, but it merely restates the parameter ('iso_id: The ISO ID'), adding no meaning beyond the schema's type definition. There is no format, validation rule, or context for what constitutes a valid ISO 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 and resource: 'Get details of a specific ISO image.' This clearly conveys the operation. However, it does not distinguish itself from the sibling iso_get_iso_by_name, which performs the same retrieval by a different key, so differentiation is left to inference from the tool names.

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 alternatives. The sibling iso_get_iso_by_name exists for retrieving ISOs by name rather than ID, but the description never mentions this or any conditions that would select one over the other. An agent must infer the usage distinction from naming alone.

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

iso_get_iso_by_nameC

Get ISO by name or filename.

Args: name: ISO name or filename to search for

Returns: ISO details if found

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only says 'Returns ISO details if found', disclosing that a lookup might not produce a result, but it does not state what happens on no match, whether the search is exact or partial, or confirm this is a read-only operation. The 'if found' hint is minor and incomplete.

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 very brief, using the top line plus Args/Returns sections. It contains no fluff or redundancy, and every sentence adds relevant information about the purpose or parameters. This is an appropriate level of conciseness for a single-parameter lookup tool.

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?

The description is a minimal annotation for a simple one-parameter lookup, but it omits context that would help an agent select it correctly: no mention of when to prefer it over other iso tools, no statement about return behavior if not found, and no acknowledgment of the output schema. With zero annotations and five sibling ISO tools, the description provides too little contextual guidance.

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

Parameters3/5

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

The input schema provides no description for the 'name' parameter, but the description explicitly says 'ISO name or filename to search for', adding meaningful real-world semantics. However, it doesn't clarify match behavior (e.g., exact vs. fuzzy) or how name and filename are treated. This is a modest improvement over the empty schema but still 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?

The description states the specific verb 'Get' and resource 'ISO', and limits the lookup by name or filename, making its purpose clear. It is not explicitly contrasted with sibling tools like iso_get_iso (likely ID-based), so a distinction is implied rather than stated. Thus it's clear but 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 Guidelines1/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 alternatives such as iso_list_isos or iso_get_iso. The Args and Returns sections only describe parameters and output, not any selection criteria. The description leaves the agent to infer the distinguishing scenario from the name alone.

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

iso_list_custom_isosB

List custom ISO images (user-uploaded).

Returns: List of custom ISO images

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only restates the purpose and says 'Returns: List of custom ISO images', which adds no behavioral information such as pagination, filtering, authentication, or rate limits. It does not disclose any side effects (though likely a read-only operation).

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 extremely conciseโ€”two short sentences with no unnecessary words. It is front-loaded with the core purpose and includes a minimal return description. Every word 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?

Given the simplicity (no params, simple list) and presence of an output schema, the description is mostly complete. However, it lacks guidance on how it differs from iso_list_isos, which could cause an agent to pick the wrong tool. It is adequate but not comprehensive.

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 there is nothing to explain. The schema coverage is 100% (trivially), and the description does not need to add parameter meaning. Baseline of 4 for 0 params applies since there is no potential for misunderstanding.

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

Purpose4/5

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

The description clearly states the verb 'List' and the resource 'custom ISO images (user-uploaded)'. This distinguishes it from iso_list_public_isos, but it does not explicitly differentiate from iso_list_isos (which might be the general list). The purpose is clear and specific.

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 alternatives like iso_list_isos or iso_list_public_isos. The description does not mention any conditions or exclusions, leaving the agent to infer usage from the name alone.

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

iso_list_isosC

List all available ISO images.

Returns: List of available ISO images

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only restates the sidebar action and adds nothing about side effects, read-only status, data scope, or pagination. The verb 'list' implies a read operation, but that is not explicitly stated.

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, which is good, but the 'Returns:' line is redundant with the first sentence, repeating 'List of available ISO images'. The content is front-loaded, but the duplication makes it less efficient than a single crisp sentence.

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?

While simple, the description omits any reference to the sibling list variants (public, custom) that an agent might need to choose between. The output schema exists, so return value details are covered, but the decision context 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 has zero parameters secret and the schema documents 100% of them (none). The description does not need to explain parameter semantics, so the baseline of 4 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 uses a specific verb ('List') and resource ('available ISO images'), making the tool's basic function clear. However, it does not distinguish itself from the sibling tools iso_list_public_isos and iso_list_custom_isos, relying on the phrase 'all available' to imply breadth.

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 the more specific sibling tools like iso_list_public_isos or iso_list_custom_isos. An agent would not know whether to choose this tool or a filtered alternative based on the description alone.

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

iso_list_public_isosA

List public ISO images (filtered from all ISOs).

Returns: List of public ISO images

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the burden of explaining behavior. It states the read-only nature ('List') and the filtering behavior from all ISOs, which adds some context beyond the name. It does not disclose pagination, authentication, or other edge-case behavior, but for a zero-parameter read-only tool this is a reasonable minimum.

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 with the core action and scope. The 'Returns' line is redundant with the first sentence, but overall the definition is compact and does not waste meaningful words.

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 listing tool with an output schema, the description provides the essential purpose and filter context. It lacks explicit sibling differentiation, but the simplicity of the tool and the presence of an output schema make it sufficiently complete for correct invocation.

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 input schema has zero parameters and 100% schema description coverage, so the description does not need to explain parameter meanings. The baseline of 4 applies because there are no parameters 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?

The description uses a clear verb and resource: 'List public ISO images' and adds the scope qualifier 'filtered from all ISOs.' This distinguishes it from sibling tools like iso_list_isos and iso_list_custom_isos, though it does not explicitly name them.

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

Usage Guidelines3/5

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

The phrasing 'filtered from all ISOs' implies this tool is for obtaining only public ISOs rather than all or custom ISOs. However, it does not explicitly state when to prefer this tool over iso_list_isos or iso_list_custom_isos, leaving that to inference.

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

k8s_analyze_kubernetes_cluster_costsB

Analyze the estimated costs of a Kubernetes cluster. Smart identifier resolution: use cluster label or UUID.

Args: cluster_identifier: The cluster label or ID

Returns: Cost analysis including per-node costs and total estimated monthly cost

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses identifier resolution behavior and the shape of the returned cost analysis, but it never explicitly states that the operation is read-only or what permissions might be needed, leaving side effects somewhat ambiguous.

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 compact and front-loaded with the core purpose. The Args block is minimal and the Returns block adds useful output detail; there is no filler or unnecessary repetition beyond the expected docstring structure.

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 analysis tool, the description covers the essential information: identifier resolution, purpose, and key outputs. It could be more complete by explicitly stating non-mutating behavior and when to choose it over other k8s or billing tools, but the low complexity keeps the gap small.

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%, but the single parameter is well explained: cluster_identifier can be a cluster label or UUID. This adds real meaning beyond the bare string type in the schema, even though the phrase 'cluster label or ID' is somewhat redundant.

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 pair: 'Analyze the estimated costs of a Kubernetes cluster.' It also names the concrete outputs (per-node costs and total estimated monthly cost), which helps an agent distinguish it from k8s_get_kubernetes_cluster or status tools, though it never explicitly names any 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 guidance on when to prefer this tool over related k8s inspection tools or billing cost-analysis tools. The only usage hint, 'Smart identifier resolution: use cluster label or UUID,' addresses parameter format rather than tool selection, so the agent is left to infer the use case.

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

k8s_create_kubernetes_clusterA

Create a new Kubernetes cluster.

Args: label: Label for the cluster region: Region code (e.g., 'ewr', 'lax') version: Kubernetes version (use get_kubernetes_versions for available options) node_pools: List of node pool configurations, each containing: - node_quantity: Number of nodes (minimum 1, recommended 3+) - plan: Plan ID (e.g., 'vc2-2c-4gb') - label: Node pool label - tag: Optional tag - auto_scaler: Optional auto-scaling configuration - min_nodes: Minimum nodes for auto-scaling - max_nodes: Maximum nodes for auto-scaling ctx: FastMCP context for resource change notifications enable_firewall: Enable firewall for cluster ha_controlplanes: Enable high availability control planes

Returns: Created cluster information

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYes
regionYes
versionYes
node_poolsYes
enable_firewallNo
ha_controlplanesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose any behavioral traits beyond the action itself: no mention of side effects, potential costs, asynchronous behavior, required permissions, or idempotency. The reference to 'ctx' for resource change notifications is a technical detail but not a behavioral disclosure. For a mutation tool, this is a significant gap.

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

Conciseness4/5

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

The description is well-structured: a one-line purpose, a clear list of arguments with brief explanations, and a returns line. It is slightly lengthy but every sentence adds value, and the front-loaded purpose makes it easy to scan. The structure is logical and not redundant.

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 complexity of creating a Kubernetes cluster, the description covers all required and optional parameters, explains the nested node_pools structure, and points to a helper tool for version selection. It does not mention if the operation is synchronous or asynchronous, or prerequisites like region availability, but these are often not expected in tool descriptions. The existence of an output schema means return values need not be detailed. Overall, it is sufficiently complete for an agent to invoke the tool correctly.

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

Parameters5/5

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

The schema has no descriptions for properties (coverage 0%), but the description compensates thoroughly. It explains each parameter: label, region (with example), version (with hint to get_kubernetes_versions), node_pools with detailed subfields, enable_firewall, ha_controlplanes, and even an extra ctx parameter not in the schema. It adds crucial context like minimum and recommended values for node_quantity, making the tool callable correctly.

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

Purpose5/5

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

The description clearly states the action: 'Create a new Kubernetes cluster.' This is a specific verb and resource, and it distinguishes from sibling tools like k8s_update_kubernetes_cluster, k8s_delete_kubernetes_cluster, and k8s_list_kubernetes_clusters. The scope is unambiguous and the purpose is immediately 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?

The description gives clear context for when to use this tool (creating a new cluster) and even provides a pointer to a related tool for version selection ('use get_kubernetes_versions for available options'). However, it does not explicitly state when not to use it or mention alternative operations like update or delete, though this is largely implied by the verb 'create'. The parameter guidance (e.g., node_quantity recommended 3+) also aids correct usage.

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

k8s_create_kubernetes_node_poolA

Create a new node pool in a Kubernetes cluster. Smart identifier resolution: use cluster label or UUID.

Args: cluster_identifier: The cluster label or ID node_quantity: Number of nodes (minimum 1, recommended 3+) plan: Plan ID (e.g., 'vc2-2c-4gb') label: Node pool label (must be unique within cluster) ctx: FastMCP context for resource change notifications tag: Optional tag for the node pool auto_scaler: Enable auto-scaling for this node pool min_nodes: Minimum nodes for auto-scaling max_nodes: Maximum nodes for auto-scaling labels: Map of key/value pairs to apply to all nodes

Returns: Created node pool information

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
planYes
labelYes
labelsNo
max_nodesNo
min_nodesNo
auto_scalerNo
node_quantityYes
cluster_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It openly states this is a create operation, notes smart identifier resolution, and mentions label uniqueness within the cluster. However, it does not disclose billing implications, quota requirements, prerequisites like an existing cluster, or whether creation 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?

The description is well-organized with a one-line purpose statement followed by an Args section and a Returns note. It is efficient and front-loaded, though including 'ctx' as an argument when it is not in the schema introduces minor 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?

For a 9-parameter create operation with no annotations and no schema-level descriptions, the description covers the parameters and return value reasonably. However, it omits useful context such as the prerequisite that the cluster must already exist, how to discover valid plan IDs, and behavioral interactions between auto_scaler and min/max_nodes.

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 for missing parameter documentation. It does this well by explaining every schema parameter, including cluster identifier resolution, minimum and recommended node quantity, a plan ID example, and label uniqueness. This is substantially richer than the bare input 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 clear, specific verb and resource: 'Create a new node pool in a Kubernetes cluster.' This distinguishes it from sibling tools like k8s_create_kubernetes_cluster and k8s_scale_kubernetes_node_pool, since the resource being created 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 Guidelines2/5

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

The description gives no explicit guidance about when to use this tool versus alternatives such as k8s_scale_kubernetes_node_pool or k8s_update_kubernetes_node_pool. One can infer that creating a new pool is intended for adding capacity, but the description does not state this or mention exclusions.

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

k8s_delete_kubernetes_clusterB

Delete a Kubernetes cluster. Smart identifier resolution: use cluster label or UUID.

Args: cluster_identifier: The cluster label or ID to delete ctx: FastMCP context for resource change notifications

Returns: Deletion status message

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that the tool deletes a cluster and returns a status message, but it does not mention that deletion is irreversible, whether it cascades to node pools or other resources, or any permission requirements. The 'Smart identifier resolution' line is helpful but not about behavior. The description lacks the depth expected for a destructive operation, leaving the agent without critical side-effect information.

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 concise, with a clear structure: a one-line summary, a 'Smart identifier resolution' note, an Args section, and a Returns section. It does not waste words and is easy to scan. The only minor inefficiency is the duplication of 'cluster label or ID' in both the header and the Args section, but that is acceptable for clarity. The organization aids comprehension, so it earns a 4.

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 the simplicity of the operation (delete a cluster by identifier), the description covers the essential input and return type. However, it omits important contextual details: it does not clarify whether this is the same as the sibling tool that deletes with resources, nor does it mention any prerequisites or consequences (e.g., the cluster must exist, or that deletion is permanent). An output schema exists but is not described, and the description does not explain what the status message contains. For a delete operation, more cautionary guidance would be expected, so a 3 is appropriate.

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 schema has 0% description coverage for the single parameter, so the description must compensate. It does: 'cluster_identifier: The cluster label or ID to delete' clarifies that the identifier can be a label or UUID. This adds meaning beyond the bare schema type. The description also mentions a 'ctx' parameter in Args, though it is not in the schema, which is a minor inconsistency but still informative. Overall, the description adequately explains the parameter semantics, earning a strong score.

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

Purpose4/5

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

The description clearly states the action: 'Delete a Kubernetes cluster.' It specifies the resource and adds a useful detail about identifier resolution (label or UUID). However, it does not explicitly differentiate from the sibling tool k8s_delete_kubernetes_cluster_with_resources, which likely has a different scope. The verb+resource is unambiguous, but the lack of sibling differentiation prevents 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 provides no guidance on when to use this tool versus alternatives, particularly the sibling k8s_delete_kubernetes_cluster_with_resources. It does not mention conditions like 'use this for plain deletion' or 'use the other for deletion including resources.' The only context is the identifier resolution hint, which is about parameters rather than usage. With no explicit when-to-use or when-not-to-use guidance, this dimension scores low.

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

k8s_delete_kubernetes_cluster_with_resourcesA

Delete a Kubernetes cluster and all related resources. Smart identifier resolution: use cluster label or UUID.

Args: cluster_identifier: The cluster label or ID to delete ctx: FastMCP context for resource change notifications

Returns: Deletion status message

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the destructive scope via 'delete...all related resources', but does not warn about irreversibility, what happens to the related resources (deleted vs. detached), or any permission requirements. The destructive nature is clear, but the extent and consequences are under-specified.

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 compact and logically ordered (purpose, identifier resolution, args, returns). The only wrinkle is that it lists 'ctx' as an arg even though the input schema only defines cluster_identifier, which could mildly confuse an agent about the actual callable signature.

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 output schema covers the return value, so that's handled. The description is adequate for the single real parameter, but it leaves ambiguity about what 'all related resources' means and does not explicitly distinguish when to prefer this over k8s_delete_kubernetes_cluster, which is important given the closely related sibling. For a destructive tool with no annotations, a clearer scope statement would help.

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: 'Smart identifier resolution: use cluster label or UUID' and 'cluster label or ID to delete' add real meaning about the accepted format of cluster_identifier, going well beyond the bare string type 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 states a clear verb+resource ('Delete a Kubernetes cluster') plus the differentiator 'all related resources', which sets it apart from the sibling k8s_delete_kubernetes_cluster and the node/node-pool delete tools. It's specific enough for an agent to grasp intent, though it doesn't name the exact sibling it complements.

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 'all related resources' implies a distinct use case (cluster plus its resources vs. just the cluster via k8s_delete_kubernetes_cluster), but this is implied rather than explicit. There is no when-to-use or when-not-to-use guidance, 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.

k8s_delete_kubernetes_nodeA

Delete a specific node from a node pool. Smart identifier resolution: use cluster/node pool/node labels or UUIDs.

Args: cluster_identifier: The cluster label or ID nodepool_identifier: The node pool label or ID node_identifier: The node label or ID to delete ctx: FastMCP context for resource change notifications

Returns: Deletion status message

ParametersJSON Schema
NameRequiredDescriptionDefault
node_identifierYes
cluster_identifierYes
nodepool_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are present, so the description carries the burden of behavior disclosure. It states the destructive action and return value, and the 'smart identifier resolution' note adds useful behavior beyond the schema. However, it does not disclose irreversibility, permissions, or the impact on workloads running on the node, which are relevant for a delete operation.

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 compact and logically structured with an Args/Returns layout. It avoids boilerplate, though the 'ctx' line adds little for an agent and the 'smart identifier resolution' sentence could arguably be merged with the Args descriptions.

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 three-parameter destructive tool with no annotations, the description provides the essential identifiers and return message, and the output schema exists. It is missing consequences such as permanence and workload disruption, as well as alternative-tool guidance, so it is minimally adequate rather than 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 input schema has 0% description coverage, but the Args section compensates by explaining each identifier parameter as 'label or ID'. This gives real semantic meaning beyond the bare string fields. The inclusion of a non-schema 'ctx' argument is slightly confusing, but all three actual parameters are adequately described.

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 first sentence, 'Delete a specific node from a node pool,' names a specific verb, resource, and scope. This clearly distinguishes the action from sibling tools like k8s_delete_kubernetes_node_pool and k8s_recycle_kubernetes_node.

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 choose this tool over alternatives, such as k8s_recycle_kubernetes_node or k8s_delete_kubernetes_node_pool. 'Smart identifier resolution' explains identifier formats, not usage context, so the description leaves the when-to-use decision entirely to the agent.

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

k8s_delete_kubernetes_node_poolA

Delete a node pool from a Kubernetes cluster. Smart identifier resolution: use cluster/node pool labels or UUIDs.

Args: cluster_identifier: The cluster label or ID nodepool_identifier: The node pool label or ID to delete ctx: FastMCP context for resource change notifications

Returns: Deletion status message

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_identifierYes
nodepool_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose two behavioral details: smart identifier resolution and a returned deletion status message. However, it fails to mention that deleting a node pool may also delete all associated nodes or that the operation is likely irreversible, which is critical for a destructive action.

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 short and front-loaded: a one-sentence purpose, one-sentence identifier note, an A args list, and a Returns section. Every element adds necessary value and there is no fluff 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?

While the description provides a clear purpose, parameter definitions, and return type, it leaves out consequential side effectsโ€”like whether node deletion is recursiveโ€”and any safety or prerequisite information for a destructive operation. The lack of annotations makes this a noticeable gap, though the core details are covered.

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 input schema has 0% description coverage, so the description compensates by defining each parameter: 'The cluster label or ID' and 'The node pool label or ID to delete'. It also adds the 'smart identifier resolution' note that clarifies label vs UUID semantics beyond the bare 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 opening phrase 'Delete a node pool from a Kubernetes cluster' uses a specific verb and resource, immediately distinguishing it from sibling tools like k8s_delete_kubernetes_node or k8s_delete_kubernetes_cluster. The name itself also carries the action, but the description reinforces the scope ('from a Kubernetes cluster').

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 does not provide when-to-use guidance or mention alternative tools. It explains 'smart identifier resolution' but never states when this tool should be preferred over related actions or what prerequisites exist, leaving the agent without direction on tool selection.

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

k8s_get_kubernetes_available_upgradesB

Get available Kubernetes version upgrades for a cluster. Smart identifier resolution: use cluster label or UUID.

Args: cluster_identifier: The cluster label or ID

Returns: List of available Kubernetes versions for upgrade

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries full behavioral burden. It mentions 'Smart identifier resolution' and the return type, which is useful. However, it does not explicitly state that the operation is read-only, whether authentication is required, or how errors are surfaced. For a simple get, this 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.

Conciseness4/5

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

The description is concise and well-structured with Args/Returns sections. The 'Smart identifier resolution' line is informative, though the Args section repeats what the parameter is. No wasted words.

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 read operation with an output schema, the description provides sufficient information: what the tool does, what input is expected, and what is returned. Missing details like error cases or prerequisites are minor given the simplicity and sibling context.

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 input schema provides only a string type with no description (0% coverage). The description adds meaning by specifying 'cluster_identifier: The cluster label or ID' and stating that both label or UUID are accepted. This compensates for the 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 clearly states the tool's purpose: 'Get available Kubernetes version upgrades for a cluster.' It specifies the resource and verb. It distinguishes from sibling tools like k8s_get_kubernetes_versions by scoping to 'upgrades for a cluster', 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 sibling tools such as k8s_get_kubernetes_versions or k8s_upgrade_kubernetes_cluster. The 'Args' section explains the parameter but does not provide selection criteria, prerequisites, or exclusions.

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

k8s_get_kubernetes_clusterA

Get detailed information about a specific Kubernetes cluster. Smart identifier resolution: use cluster label or UUID.

Args: cluster_identifier: The cluster label or ID (e.g., "production-cluster" or UUID)

Returns: Detailed cluster information including configuration and status

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosure. It adds useful traits: 'Smart identifier resolution' and that the return includes configuration and status. However, it does not explicitly state that the operation is read-only, nor does it cover error behavior, permissions, or what happens if the identifier is not found.

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

Conciseness5/5

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

The description is compact, front-loads the core purpose, and uses a clean Args/Returns structure. Every sentence adds value; there is no restatement of the tool name or filler.

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

Completeness4/5

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

For a one-parameter read operation with an output schema available, the description covers the essential purpose, identifier semantics, and a summary of return contents. It could be more complete by distinguishing itself from the near-sibling k8s getter tools, but the core invocation needs are met.

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

Parameters5/5

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

Schema coverage is 0%, so the description fully compensates by explaining the parameter's meaning, accepted forms (label or UUID), and giving concrete examples. For a single-parameter tool, this is complete and actionable.

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 ('Get detailed information about a specific Kubernetes cluster') and adds scope with 'specific' vs. list tools. The return note 'including configuration and status' hints at breadth but does not explicitly differentiate from siblings like k8s_get_kubernetes_cluster_config or k8s_get_kubernetes_cluster_status.

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

Usage Guidelines3/5

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

The context of when to use the tool is implied by the standard getter pattern, and the parameter guidance clarifies how to identify the cluster. However, there is no explicit statement about when not to use this tool or which alternative to prefer for only config, status, or resources, especially given the large k8s sibling group.

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

k8s_get_kubernetes_cluster_configA

Get the kubeconfig for a Kubernetes cluster. Smart identifier resolution: use cluster label or UUID.

Args: cluster_identifier: The cluster label or ID

Returns: Kubeconfig content for cluster access

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the core behavior (getting kubeconfig) and the smart identifier resolution (accepting label or UUID). However, it does not mention any security sensitivity of the kubeconfig, potential permissions needed, or error behaviors. For a simple read operation, this 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.

Conciseness5/5

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

The description is concise: one clear purpose sentence, a brief identifier-resolution note, and Args/Returns. It is well-structured and front-loaded with the most important information. No unnecessary words.

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 tool's simplicity (one parameter, read-only operation) and the presence of an output schema, the description provides sufficient core information: what it returnscars and how the identifier is resolved. It does not address error cases or permissions, but those are less critical for this straightforward getter.

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 for the bare string type. It explains that cluster_identifier can be a cluster label or UUID, adding meaningful guidance. This is sufficient for the single parameter, though it could be more explicit about what 'ID' means (e.g., UUID vs. numeric ID).

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 'Get the kubeconfig for a Kubernetes cluster,' which is a specific verb + resource. It clearly distinguishes from sibling k8s_get_kubernetes_cluster by specifying kubeconfig as the output, so an agent can immediately identify what this tool 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?

There is no explicit guidance about when to use this tool rather than related siblings such as k8s_get_kubernetes_cluster. The 'Smart identifier resolution' note is about parameter formatting, not tool selection. The agent must infer usage solely from the name and purpose.

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

k8s_get_kubernetes_cluster_resourcesA

Get resource usage information for a Kubernetes cluster. Smart identifier resolution: use cluster label or UUID.

Args: cluster_identifier: The cluster label or ID

Returns: Cluster resource usage including CPU, memory, and storage

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden. It adds a valuable detail about 'smart identifier resolution' (accepts label or UUID), which is a behavioral trait. However, it does not disclose error behavior, authentication needs, or any side effects (though it's a read operation). It also doesn't mention if the cluster must be running or accessible.

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 concise, uses a clear structure with Args and Returns, and front-loads the purpose. It avoids unnecessary detail while covering the essential points. The only minor issue is repeating 'cluster_identifier' in Args, but that's standard.

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

Completeness3/5

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

The description covers the core purpose, parameter meaning, and return contents. However, it does not specify output format details (though an output schema exists), error conditions, or prerequisites. Given it's a simple read tool with one parameter, it's adequate but could benefit from noting that the cluster must exist or be accessible.

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 schema has 0% description coverage, so the description must compensate. It explicitly defines cluster_identifier as 'The cluster label or ID' and notes 'smart identifier resolution: use cluster label or UUID'. This adds meaning beyond the bare 'string' type and tells the agent exactly what to pass.

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 'Get resource usage information for a Kubernetes cluster' and specifies the returned data (CPU, memory, storage). It distinguishes from sibling k8s tools by focusing on resource usage rather than cluster configuration or status, 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 Guidelines3/5

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

No explicit when-to-use guidance or alternatives are mentioned. The purpose implies usage for resource monitoring, but there is no exclusion of other tools or statement of preferred contexts. Sibling tools like k8s_get_kubernetes_cluster_status could overlap, but the description doesn't clarify when this one is appropriate.

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

k8s_get_kubernetes_cluster_statusB

Get comprehensive status information for a Kubernetes cluster. Smart identifier resolution: use cluster label or UUID.

Args: cluster_identifier: The cluster label or ID

Returns: Comprehensive cluster status including health, resources, and node status

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It does disclose the smart identifier resolution behavior and the main output contents (health, resources, node status). However, it does not mention whether any side effects, permissions, or API-specific behaviors apply, though the read-only nature is reasonably implied by 'Get' and 'status'.

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 compact and front-loaded with the main purpose, followed by identifier resolution, args, and returns. It is easy to scan. There is minor redundancy between 'cluster label or ID' and 'use cluster label or UUID', but overall the structure is 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?

There is an output schema, so return values need not be fully re-described. However, given the large cluster of closely related k8s tools, the description omits any pointer to alternatives and does not clarify what makes status coverage 'comprehensive' vs. other cluster read operations. It is adequate for a simple read tool but not fully complete for tool selection.

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 fully explain the parameter. It does: 'cluster_identifier: The cluster label or ID' plus 'Smart identifier resolution: use cluster label or UUID.' This adds meaningful semantic detail beyond the bare schema definition of the string 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 states a clear verb and resource: 'Get comprehensive status information for a Kubernetes cluster.' It further clarifies the scope by listing health, resources, and node status. However, it does not explicitly distinguish itself from sibling tools like k8s_get_kubernetes_cluster or k8s_get_kubernetes_cluster_resources, so it falls short of full differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus sibling alternatives such as k8s_get_kubernetes_cluster, k8s_get_kubernetes_cluster_resources, or k8s_get_kubernetes_cluster_config. 'Smart identifier resolution' is a parameter behavior, not usage guidance. An agent is left to infer when this status 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.

k8s_get_kubernetes_nodeB

Get detailed information about a specific node. Smart identifier resolution: use cluster/node pool/node labels or UUIDs.

Args: cluster_identifier: The cluster label or ID nodepool_identifier: The node pool label or ID node_identifier: The node label or ID

Returns: Detailed node information

ParametersJSON Schema
NameRequiredDescriptionDefault
node_identifierYes
cluster_identifierYes
nodepool_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations present, the description carries the behavioral burden. 'Get' clearly implies a read operation and 'Smart identifier resolution' is useful behavioral context, but the description does not disclose error behavior, permission needs, or any operational constraints beyond that.

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 compact and well organized: purpose first, then resolution behavior, then parameters, then return. The 'Returns: Detailed node information' line is slightly redundant with the opening sentence but does not significantly bloat the text.

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

Completeness4/5

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

For a getter with an output schema available, the description covers the essential usage needs: what the tool does, what each identifier means, and that it returns detailed node information. It does not over-explain return fields and provides enough context for an agent to attempt a call, though it could be improved with an example or explicit hierarchical clarification.

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 Args list is the only parameter documentation. It adds real meaning by explaining each identifier as a 'label or ID' and by promising smart resolution across cluster, node pool, and node, though it stops short of giving concrete value formats or examples.

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 and resource: 'Get detailed information about a specific node.' It is unambiguous about the object being retrieved and is distinct from list operations, though it does not explicitly name or contrast sibling tools such as k8s_list_kubernetes_nodes or k8s_get_kubernetes_node_pool.

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 related Kubernetes tools. 'Smart identifier resolution' explains how identifiers are matched, but it does not state conditions, prerequisites, or alternatives.

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

k8s_get_kubernetes_node_poolC

Get detailed information about a specific node pool. Smart identifier resolution: use cluster/node pool labels or UUIDs.

Args: cluster_identifier: The cluster label or ID nodepool_identifier: The node pool label or ID

Returns: Detailed node pool information

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_identifierYes
nodepool_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It mentions 'smart identifier resolution' (using labels or UUIDs) which is useful, but it doesn't explain what happens if identifiers are ambiguous, whether it requires special permissions, or if it returns sensitive information. The Returns section is vague ('Detailed node pool information') without specifics.

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 concise, with a brief introduction followed by clear args and returns sections. The key point about smart identifier resolution is front-loaded. No redundant information, though the Returns section could be more specific without much cost.

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 the presence of an output schema and the relative simplicity of a get operation, the description is adequate but not comprehensive. It covers the essential purpose and parameters but lacks guidance on edge cases (e.g., ambiguous identifiers) and prerequisites (e.g., cluster must exist), which would be expected for a robust definition.

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 defines each parameter (cluster_identifier: cluster label or ID, nodepool_identifier: node pool label or ID) which adds meaning beyond the schema's bare type strings. However, it doesn't explain the format of these identifiers (e.g., UUID vs label syntax) or how to find them.

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

Purpose4/5

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

The description clearly states the tool retrieves detailed information about a specific node pool, which is distinct from siblings like create, delete, update, or list node pools. It uses a specific verb ('Get') and resource ('node pool'), making the purpose clear, though it doesn't explicitly differentiate from other k8s get 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 to use this tool versus alternatives, such as k8s_list_kubernetes_node_pools for listing or k8s_get_kubernetes_node for individual nodes. It only mentions 'smart identifier resolution' but doesn't explain when this tool is preferred over others.

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

k8s_get_kubernetes_versionsA

Get list of available Kubernetes versions.

Returns: List of available Kubernetes versions for new clusters

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It clearly indicates a read-only operation ('Get list') and discloses the return type ('List of available Kubernetes versions'). It does not mention side effects, but for a simple lookup, this is sufficient and not misleading.

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 lines, front-loaded with the verb and resource, and the 'for new clusters' qualifier is placed after the core purpose. Every sentence earns its place; there is zero fluff.

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 no-parameter, list-returning tool, the description is complete. An output schema exists (per context signals), so the description need not explain return format. The scope qualifier 'for new clusters' covers the only possible ambiguity. Nothing an agent needs to call it correctly 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 has zero parameters, so per rubric the baseline is 4. There is nothing to explain beyond what the schema (empty properties) already shows, and the description adds no need for parameter clarification.

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 action ('Get list') and resource ('available Kubernetes versions'), with an explicit scope qualifier 'for new clusters' that distinguishes it from sibling tools like k8s_get_kubernetes_available_upgrades. It is clear and unambiguous.

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

Usage Guidelines3/5

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

The phrase 'for new clusters' implies the intended context (when provisioning a new cluster) but does not explicitly mention alternatives or exclusions. No guidance is given about when not to use it, such as when checking for upgrades on existing clusters. However, the scope qualifier provides some directional hint.

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

k8s_list_kubernetes_clustersA

List all Kubernetes clusters in your Vultr account.

Returns: List of cluster objects with details including: - id: Cluster ID - label: Cluster label - version: Kubernetes version - region: Region code - status: Cluster status - node_pools: List of node pools - date_created: Creation date - cluster_subnet: Cluster subnet - service_subnet: Service subnet - ip: Cluster IP address

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It clearly indicates this is a read-only list operation and enumerates the fields returned, which is useful. However, it does not disclose pagination behavior, potential large result sets, or any rate-limit considerations. The return field list adds some context beyond the bare operation name.

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 concise and front-loaded with the core purpose in the first sentence. The return field list is structured and informative, though it is slightly verbose for a simple list operation. Every line earns its place by documenting the response shape, which is valuable given the output schema exists but the description adds readable field semantics.

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

Completeness4/5

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

For a zero-parameter list tool, the description is nearly complete. It states the scope, the resource, and the return fields. The only gaps are minor: no mention of pagination or result ordering, and no explicit differentiation from k8s_get_kubernetes_cluster. Given the tool's simplicity and the presence of an output schema, this is adequate with only small omissions.

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 there is no parameter semantics burden on the description. The schema is trivially complete (100% coverage with an empty properties object). The description's detailed return field list compensates for the lack of any parameter context, making this a 4 rather than a baseline 3.

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

Purpose5/5

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

The description states a specific verb ('List') and resource ('all Kubernetes clusters in your Vultr account'), which clearly distinguishes it from sibling tools like k8s_get_kubernetes_cluster (single cluster) and k8s_list_kubernetes_node_pools (node pools). The scope is explicit and unambiguous.

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

Usage Guidelines3/5

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

The description implies usage context by naming the resource scope ('all Kubernetes clusters in your Vultr account'), which tells an agent this is the right tool for listing clusters. However, it does not explicitly state when to use this tool versus alternatives like k8s_get_kubernetes_cluster for a single cluster, or mention any exclusions or prerequisites.

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

k8s_list_kubernetes_node_poolsA

List all node pools for a Kubernetes cluster. Smart identifier resolution: use cluster label or UUID.

Args: cluster_identifier: The cluster label or ID

Returns: List of node pools with configuration and status

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits itself. It mentions that the identifier can be a label or UUID, which is useful, but does not state that the operation is read-only, potential error conditions, or pagination behavior. The description gives minimal insight beyond the core listing action.

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 concise and well-structured: a one-sentence purpose, a note on identifier resolution, and a clean args/returns breakdown. Every sentence serves a purpose with no fluff or redundancy. The key information is 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?

Given that an output schema exists, the description does not need to explain return values. However, it lacks any mention of prerequisites, potential failure modes (e.g., cluster not found), or whether the list is paginated. For a straightforward list tool, this is adequate but not comprehensive; there is room to mention that the cluster must exist or that the list includes configuration and status, which it does.

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 input schema provides only a bare string type with no description, so the description carries the burden of explaining the parameter. It clearly states that the parameter is 'The cluster label or ID' and adds 'Smart identifier resolution: use cluster label or UUID,' which adds meaningful context beyond the schema. This is helpful, though it could go further with format details.

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

Purpose5/5

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

The description clearly states the action ('List all node pools') and the target resource ('for a Kubernetes cluster'). It distinguishes itself from sibling tools like k8s_get_kubernetes_node_pool by specifying the list behavior and scope. The verb and resource are unambiguous.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives such as k8s_get_kubernetes_node_pool or k8s_list_kubernetes_nodes. It provides a hint about identifier resolution but no guidance on selecting this over similar tools. The context implies a listing use case, but exclusions or comparisons are absent.

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

k8s_list_kubernetes_nodesA

List all nodes in a specific node pool. Smart identifier resolution: use cluster/node pool labels or UUIDs.

Args: cluster_identifier: The cluster label or ID nodepool_identifier: The node pool label or ID

Returns: List of nodes with status and configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_identifierYes
nodepool_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden. It adds useful context by explaining 'Smart identifier resolution: use cluster/node pool labels or UUIDs,' which tells the agent how identifiers are interpreted. It also discloses the return content ('nodes with status and configuration'), though it does not cover pagination, limits, or permission requirements.

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 compact and well-organized: a one-line purpose, a useful identifier-resolution note, a short Args section, and a Returns section. No filler or redundant content is present, and the key purpose 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 low-complexity list operation with an output schema, the description covers the required parameters, the identifier behavior, and the general return shape. It could be slightly more complete by explicitly noting the operation is read-only or by naming sibling alternatives, but nothing essential for calling the tool correctly 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 description coverage is 0%, so the description must compensate. It does: both parameters are explained as 'cluster label or ID' and 'node pool label or ID,' and the intro adds that labels or UUIDs are accepted. This adds real meaning beyond the plain string type in the schema, though it stops short of giving concrete format examples.

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 action ('List all nodes') and a specific scope ('in a specific node pool'), making the tool's purpose immediately clear. It distinguishes itself from siblings like k8s_get_kubernetes_node (single node) and k8s_list_kubernetes_node_pools (pools) by the resource and scope it targets.

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

Usage Guidelines3/5

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

The description implies the tool should be used when an agent needs all nodes belonging to a particular node pool, but it does not explicitly name alternatives or state when not to use it. There is no direct comparison to k8s_get_kubernetes_node or k8s_list_kubernetes_node_pools, leaving some routing to inference.

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

k8s_recycle_kubernetes_nodeC

Recycle (restart) a specific node. Smart identifier resolution: use cluster/node pool/node labels or UUIDs.

Args: cluster_identifier: The cluster label or ID nodepool_identifier: The node pool label or ID node_identifier: The node label or ID to recycle

Returns: Recycle operation status

ParametersJSON Schema
NameRequiredDescriptionDefault
node_identifierYes
cluster_identifierYes
nodepool_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral impact. It says the operation restarts a node and returns status, but it does not state whether workloads are drained, whether there is downtime, whether the operation is destructive or reversible, or what happens to the node if recycling fails. This is a meaningful gap for a mutation-like operation.

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 compact and front-loaded with the core action. The Args/Returns structure is easy to scan, and every line serves a purpose. The phrase 'smart identifier resolution' is slightly promotional but does convey a useful behavior without bloating the 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?

The description covers all three required parameters and the return value, and an output schema exists, which reduces the need to explain response details. However, it lacks operational context such as prerequisites, impact on workloads, and the meaning of the recycle operation beyond the parenthetical 'restart.' This is adequate for a narrow tool but not fully 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 does add meaning by labeling each parameter as a 'label or ID' for cluster, node pool, and node. However, it provides no examples, format expectations, or constraints, which limits its usefulness beyond 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 clearly states 'Recycle (restart) a specific node,' combining a specific verb with a resource and an explanatory parenthetical. The required cluster, node pool, and node identifiers make the scope unambiguous. It does not explicitly differentiate from sibling tools like k8s_delete_kubernetes_node, 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?

The description provides no guidance on when to prefer this tool over alternatives such as deleting, upgrading, or scaling nodes. It mentions 'smart identifier resolution' but does not explain when that applies or what conditions would rule this tool out. This leaves the agent to infer selection context.

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

k8s_scale_kubernetes_node_poolA

Scale a node pool to the target number of nodes. Smart identifier resolution: use cluster/node pool labels or UUIDs.

Args: cluster_identifier: The cluster label or ID nodepool_identifier: The node pool label or ID target_node_count: Target number of nodes (minimum 1)

Returns: Scaling operation details and status

ParametersJSON Schema
NameRequiredDescriptionDefault
target_node_countYes
cluster_identifierYes
nodepool_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It notes smart identifier resolution and a minimum target count, but it does not reveal that scaling is a mutating operation with potential side effects like deleting nodes when scaling down, whether the operation is asynchronous, 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.

Conciseness5/5

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

The description is compact and well-structured with clear Args and Returns sections. Every sentence adds useful information, and there is no filler or redundant restating of the tool name.

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 all required parameters and states the return type at a high level, which is adequate for a straightforward scaling operation. However, it lacks behavioral caveats such as scaling-down effects, asynchronous behavior, permissions, or how to obtain the identifiers it mentions. The absent annotations make this gap more significant.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by explaining each parameter: cluster_identifier accepts a label or ID, nodepool_identifier accepts a label or ID, and target_node_count is a target number with a minimum of 1. This adds meaning well beyond the raw schema types.

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 and resource: "Scale a node pool to the target number of nodes." This clearly distinguishes the tool from sibling operations like creating, updating, deleting, or listing node pools. The mention of smart identifier resolution adds useful scope without blurring the core 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?

The action is clear enough that an agent can infer this tool is for horizontal scaling, but the description does not explicitly state when to prefer it over alternatives such as k8s_update_kubernetes_node_pool. It also provides no exclusions or preconditions, so the usage context is only implied.

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

k8s_setup_kubernetes_cluster_for_workloadC

Set up a Kubernetes cluster optimized for specific workload types.

Args: label: Label for the new cluster region: Region code (e.g., 'ewr', 'lax') ctx: FastMCP context for resource change notifications workload_type: Type of workload ('web', 'api', 'data', 'development') environment: Environment type ('production', 'staging', 'development') auto_scaling: Enable auto-scaling for node pools

Returns: Created cluster information with setup recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYes
regionYes
environmentNoproduction
auto_scalingNo
workload_typeNoweb

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It says 'Set up' which implies resource creation, but it doesn't disclose side effects, requirements (e.g., pre-existing VPC), or whether the operation is idempotent. It also doesn't clarify if this replaces or complements an existing cluster creation flow. The return note only hints at output, not 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?

The description is a compact docstring with a clean structure: purpose sentence, argument list, and returns note. It front-loads the main purpose and keeps each line informative. A minor waste is the 'ctx' line that refers to a non-existent parameter, but overall it's 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?

An output schema exists, so return structure is partially covered. Yet the description omits prerequisites (e.g., account permissions, network requirements), potential delays (e.g., provisioning time), and what differentiates this from k8s_create_kubernetes_cluster functionally. It also fails to mention whether it creates node pools automatically or expects them to be created separately. Given the tool's role in setup, this is a notable 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 description coverage is 0%, so the description must compensate. It does add value: it gives region examples ('ewr', 'lax'), enumerates workload_type and environment values, and explains auto_scaling. However, it lists a 'ctx' argument that is not defined in the input schema, which could mislead an agent. It also doesn't describe constraints for label or the exact format of region beyond examples.

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 and resource โ€“ 'Set up a Kubernetes cluster' โ€“ and adds a differentiator ('optimized for specific workload types'). However, it doesn't explicitly contrast with the sibling k8s_create_kubernetes_cluster, so an agent may not know this is a specialized variant without inspecting both.

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. The sibling k8s_create_kubernetes_cluster likely serves the generic creation case, but the description never mentions it or states the conditions that would make this tool preferable. The agent must infer the distinction from the workload_type parameter.

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

k8s_update_kubernetes_clusterB

Update a Kubernetes cluster configuration. Smart identifier resolution: use cluster label or UUID.

Args: cluster_identifier: The cluster label or ID ctx: FastMCP context for resource change notifications label: New label for the cluster

Returns: Update status message

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNo
cluster_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses smart identifier resolution, mentions a change-notification context, and states that it returns an update status message. However, it does not explain the mutation impact, prerequisites, or what happens to unspecified configuration settings.

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 compact and well-structured: a one-line summary, an identifier-resolution note, and an Args/Returns block. It avoids excessive filler, though the out-of-schema ctx entry could be removed to make it tighter.

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 update, the description is mostly complete: it covers both schema parameters, explains identifier resolution, and points to a status message while the output schema can carry return details. The main gaps are the lack of usage context relative to sibling update/upgrade tools and the confusing ctx parameter that is not part of the 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?

Schema description coverage is 0%, and the description does add meaning: cluster_identifier is a label or UUID, and label is the new cluster label. On the other hand, it documents 'ctx' as an argument even though it is absent from the input schema, and it omits the nullable/default behavior of label, creating some invocation ambiguity.

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: 'Update a Kubernetes cluster configuration,' which distinguishes it from node-pool and upgrade siblings at a basic level. The 'Smart identifier resolution' note adds useful context about how the cluster is targeted. However, 'configuration' is somewhat vague, and the description does not explicitly differentiate it from k8s_upgrade_kubernetes_cluster or k8s_update_kubernetes_node_pool.

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 versus alternative tools is provided, and no sibling tools are named. The only guidance, 'Smart identifier resolution,' explains how to identify the cluster, not when this update operation should be chosen over related operations like upgrading the cluster or updating a node pool.

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

k8s_update_kubernetes_node_poolC

Update a node pool configuration. Smart identifier resolution: use cluster/node pool labels or UUIDs.

Args: cluster_identifier: The cluster label or ID nodepool_identifier: The node pool label or ID ctx: FastMCP context for resource change notifications node_quantity: New number of nodes tag: New tag for the node pool auto_scaler: Enable/disable auto-scaling min_nodes: Minimum nodes for auto-scaling max_nodes: Maximum nodes for auto-scaling labels: New map of key/value pairs for nodes

Returns: Update status message

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
labelsNo
max_nodesNo
min_nodesNo
auto_scalerNo
node_quantityNo
cluster_identifierYes
nodepool_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the operation is an update (mutation) and mentions 'Smart identifier resolution' as a behavioral trait, plus 'ctx: FastMCP context for resource change notifications' which hints at side effects. However, it doesn't disclose whether the update is partial or full replacement, whether auto_scaler changes require min/max nodes, whether changing node_quantity triggers rolling replacement, or any permission requirements. The 'Returns: Update status message' is minimal.

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 compact and front-loaded with the core purpose ('Update a node pool configuration'), followed by a useful identifier-resolution note and a clean parameter list. The Args/Returns structure is scannable. It earns a 4 because it's efficient, though the parameter descriptions are terse and could be slightly more informative without bloating.

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 8 parameters, 0% schema coverage, no annotations, and a close sibling (k8s_scale_kubernetes_node_pool), the description is incomplete. It doesn't explain the relationship between node_quantity and auto_scaler, whether all fields are optional updates or if some are required conditionally, or what the update status message contains. The output schema exists but the description doesn't clarify the behavioral semantics of a partial update. An agent could call it correctly for a simple node count change but would be uncertain about auto-scaling interactions.

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 does list each parameter with a one-line meaning (e.g., 'node_quantity: New number of nodes'), which adds some value beyond the raw schema. However, it doesn't explain relationships between parameters (e.g., min_nodes/max_nodes only relevant when auto_scaler is enabled), constraints (e.g., min/max ranges), or the format of labels. The 'Smart identifier resolution' note adds context for the two identifier parameters, but the rest are shallow.

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 and resource: 'Update a node pool configuration.' It also lists the configurable fields (node_quantity, tag, auto_scaler, min_nodes, max_nodes, labels), which distinguishes it from sibling tools like k8s_scale_kubernetes_node_pool (which likely only scales node count) and k8s_create_kubernetes_node_pool. However, it doesn't explicitly differentiate itself from k8s_scale_kubernetes_node_pool, which is a close 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?

The description implies usage by listing the updateable fields, and the 'Smart identifier resolution' note gives a hint about how to identify the cluster and node pool. However, it doesn't explicitly state when to use this tool versus k8s_scale_kubernetes_node_pool or k8s_update_kubernetes_cluster. The context is clear for a generic update operation, but no exclusions or alternative routing are provided.

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

k8s_upgrade_kubernetes_clusterA

Start a Kubernetes cluster upgrade. Smart identifier resolution: use cluster label or UUID.

Args: cluster_identifier: The cluster label or ID upgrade_version: Target Kubernetes version (use get_kubernetes_available_upgrades)

Returns: Upgrade initiation status

ParametersJSON Schema
NameRequiredDescriptionDefault
upgrade_versionYes
cluster_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It states the operation starts an upgrade and returns 'Upgrade initiation status,' which clarifies the response is about initiation, not completion. However, it does not mention potential side effects like node restarts, cluster downtime, or long-running asynchronous behavior, which would be valuable for a mutating operation.

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 compact and well-organized, with a clear one-line summary followed by an Args section and a Returns line. Every sentence earns its place, and the smart identifier note is useful without bloating the 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?

The description covers the parameters and the return value, and the output schema exists, so return details are partly handled elsewhere. However, for a cluster upgrade operation with no annotations, it would benefit from additional context such as whether the upgrade is asynchronous, whether the cluster experiences downtime, or whether the target version must first be validated via get_kubernetes_available_upgrades.

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 schema provides only string types with no descriptions, so the description must compensate. It does so by explaining both parameters: cluster_identifier is 'the cluster label or ID' and upgrade_version is the 'Target Kubernetes version.' It also adds a useful pointer to get_kubernetes_available_upgrades for valid versions.

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

Purpose4/5

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

The description uses a specific verb and resource: 'Start a Kubernetes cluster upgrade.' It is not a tautology and clearly identifies the action. However, it does not explicitly distinguish itself from sibling tools like k8s_update_kubernetes_cluster or k8s_get_kubernetes_available_upgrades, so it falls short of full 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 description implies when to use the tool: when starting a Kubernetes cluster upgrade. It also points to get_kubernetes_available_upgrades for selecting the upgrade_version. However, it does not explicitly state when not to use it or contrast it with alternatives such as k8s_update_kubernetes_cluster.

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

lb_configure_basic_web_lbA

Configure a basic web load balancer with standard HTTP/HTTPS rules.

Args: region: Region code (e.g., 'ewr', 'lax') label: Label for the load balancer backend_instances: List of instance IDs to attach enable_ssl: Enable SSL/Auto SSL ssl_redirect: Redirect HTTP to HTTPS domain_zone: Domain zone for Auto SSL domain_sub: Subdomain for Auto SSL

Returns: Created and configured load balancer information

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYes
regionYes
domain_subNo
enable_sslNo
domain_zoneNo
ssl_redirectNo
backend_instancesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are present, so the description must disclose behavior itself. It states that the tool returns 'Created and configured load balancer information,' which indicates a creation side effect, but it does not mention whether this incurs cost, how long it takes, or whether any pre-existing resources are modified. It also doesn't clarify if standard rules are created automatically, so behavior 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.

Conciseness5/5

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

The description is highly concise: one opening sentence, an Args list, and a Returns line. It is well-structured and front-loaded with the core purpose, with no repetitive or decorative 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?

Despite covering purpose, parameters, and return value, the description omits whether this creates a new load balancer or updates an existing one (only 'Created' in Returns hints at it). It also does not explain parameter dependencies, such as needing a domain_zone/domain_sub when enable_ssl is true, or any prerequisites like existing backend instances. For a 7-parameter create/configure operation with no annotations, this leaves important context 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 input schema has 0% description coverage, so the description's Args section is essential. It covers all seven parameters with concise explanations (e.g., 'backend_instances: List of instance IDs to attach' and 'region: Region code (e.g., ewr, lax)'), adding real meaning beyond the raw schema. Some definitions are terse, but they are sufficient for an agent to fill the parameters correctly.

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 'Configure a basic web load balancer with standard HTTP/HTTPS rules,' which clearly identifies the action and resource. It distinguishes itself from generic lb_create/lb_update by emphasizing 'basic' and 'standard HTTP/HTTPS rules,' though 'configure' could mean either create or update. Overall, the intended purpose is clear.

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

Usage Guidelines3/5

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

The description implies a use caseโ€”setting up a basic web load balancer with standard rulesโ€”but never explicitly states when to use this tool over alternatives like lb_create or lb_create_forwarding_rule. There are no 'when to use' or 'if you need custom rules' statements, so the agent must infer selection from the words 'basic' and 'standard.' This gives only implied guidance.

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

lb_createA

Create a new load balancer.

Args: region: Region code (e.g., 'ewr', 'lax') ctx: FastMCP context for resource change notifications balancing_algorithm: Algorithm to use ('roundrobin' or 'leastconn') ssl_redirect: Redirect HTTP traffic to HTTPS http2: Enable HTTP/2 support http3: Enable HTTP/3 support proxy_protocol: Enable proxy protocol timeout: Connection timeout in seconds label: Label for the load balancer nodes: Number of backend nodes health_check: Health check configuration dict with keys: - protocol: 'http', 'https', 'tcp' - port: Port number - path: Path for HTTP checks - check_interval: Check interval in seconds - response_timeout: Response timeout in seconds - unhealthy_threshold: Failures before marking unhealthy - healthy_threshold: Successes before marking healthy forwarding_rules: List of forwarding rule dicts with keys: - frontend_protocol: 'http', 'https', 'tcp' - frontend_port: Frontend port number - backend_protocol: 'http', 'https', 'tcp' - backend_port: Backend port number ssl: SSL configuration dict with keys: - private_key: Private key content - certificate: Certificate content - chain: Certificate chain content firewall_rules: List of firewall rule dicts with keys: - port: Port number - source: Source IP or CIDR - ip_type: 'v4' or 'v6' auto_ssl: Auto SSL configuration dict with keys: - domain_zone: Domain zone - domain_sub: Subdomain global_regions: List of global region codes vpc: VPC ID to attach to private_network: Private network ID (legacy) sticky_session: Sticky session configuration with cookie_name

Returns: Created load balancer information

ParametersJSON Schema
NameRequiredDescriptionDefault
sslNo
vpcNo
http2No
http3No
labelNo
nodesNo
regionYes
timeoutNo
auto_sslNo
health_checkNo
ssl_redirectNo
firewall_rulesNo
global_regionsNo
proxy_protocolNo
sticky_sessionNo
private_networkNo
forwarding_rulesNo
balancing_algorithmNoroundrobin

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only says 'Create a new load balancer' without disclosing side effects, permissions, cost implications, or whether creation is asynchronous. It doesn't mention what happens on failure or partial creation. For a creation tool with zero annotation coverage, this is a significant gap.

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

Conciseness4/5

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

The description is lengthy but appropriately structured with an Args list and Returns line. It front-loads the core purpose and then documents each parameter. While some verbosity exists (e.g., repeating default values already in schema), it is organized and efficient for the 18-parameter complexity.

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 the complexity and that an output schema exists (though not shown), the description adequately covers parameters and return type at a high level. It does not explain prerequisites, regional availability, or interactions with VPC/private networks beyond parameter descriptions. It is minimally complete for an agent to invoke correctly.

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

Parameters5/5

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

Schema description coverage is 0%, so the description is the only source of parameter semantics. It provides not only types and defaults but also allowed values for balancing_algorithm, detailed nested keys for health_check, forwarding_rules, ssl, firewall_rules, auto_ssl, and sticky_session. This adds substantial meaning beyond the schema's generic anyOf objects.

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

Purpose5/5

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

The description clearly states 'Create a new load balancer' with a specific verb and resource. It distinguishes from siblings like lb_create_forwarding_rule and lb_update by focusing on creation of the entire load balancer resource. No ambiguity.

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

Usage Guidelines4/5

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

The description implies usage for creating a load balancer, and siblings like lb_update, lb_get, lb_delete indicate the lifecycle. However, it does not explicitly state when to use this tool over alternatives (e.g., lb_configure_basic_web_lb). The context is clear enough for an agent to infer, but lacks explicit exclusion guidance.

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

lb_create_forwarding_ruleB

Create a forwarding rule for a load balancer.

Args: load_balancer_id: The load balancer ID or label (e.g., "web-lb", "api-load-balancer", or UUID) frontend_protocol: Frontend protocol ('http', 'https', 'tcp') frontend_port: Frontend port number backend_protocol: Backend protocol ('http', 'https', 'tcp') backend_port: Backend port number ctx: FastMCP context for resource change notifications

Returns: Created forwarding rule information

ParametersJSON Schema
NameRequiredDescriptionDefault
backend_portYes
frontend_portYes
backend_protocolYes
load_balancer_idYes
frontend_protocolYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits. It states 'Create' indicating a mutation, but does not mention whether the forwarding rule must be attached to a specific load balancer, whether it overwrites existing rules, or any prerequisites like the load balancer existing. It also omits possible side effects such as validation failures or network implications.

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 concise for a multi-parameter tool, using a docstring format that front-loads the purpose and lists parameters clearly. Each line is functional, though the inclusion of 'ctx' (a technical internal detail) may add noise for the agent and could be omitted for brevity.

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 required parameters and no annotations, the description is incomplete for an AI agent. It lacks information about return value details (despite an output schema existing), any validation rules (e.g., protocol matching), and does not describe what happens on success or failure. It also does not mention if the load balancer ID must already exist, which is crucial for correct usage.

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. It does so by explaining each parameter's meaning, such as documenting 'load_balancer_id' accepts ID or label and providing protocol enum values in parentheses, which is valuable beyond the bare schema types. However, it does not specify allowed port ranges or formats for ports, leaving some ambiguity.

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

Purpose4/5

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

The description clearly states the tool creates a forwarding rule for a load balanceraineand lists key parameters, distinguishing it from siblings like 'lb_get_forwarding_rule' and 'lb_list_forwarding_rules' by the verb 'create'. However, it does not explicitly contrast with those siblings, merely implying the action.

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 for creating forwarding rules when configuring load balancers, with parameters clearly describing frontend/backend protocols and ports. It does not provide explicit when-not-to-use guidance or mention alternatives like 'lb_configure_basic_web_lb' or 'lb_delete_forwarding_rule', so the agent must infer the right context from the resource type.

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

lb_deleteB

Delete a load balancer.

Args: load_balancer_id: The load balancer ID or label (e.g., "web-lb", "api-load-balancer", or UUID) ctx: FastMCP context for resource change notifications

Returns: Status message confirming deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
load_balancer_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It only says 'Delete a load balancer' and mentions a return status, but does not disclose that deletion is irreversible, whether it requires special permissions, or whether it affects attached resources. The mention of 'ctx' as an argument is also unexplained and not present in the schema, adding confusion.

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 concise and well-structured with clear sections for Args and Returns. It avoids unnecessary verbosity, though including 'ctx' (which is not in the schema) adds slight noise. The format is easy to parse.

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

Completeness3/5

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

For a simple delete operation, the description covers the basic purpose, parameter, and return. However, it omits critical context such as prerequisites (e.g., the load balancer must exist), side effects (e.g., permanent deletion), and behavior on failure. The presence of an output schema is noted but not detailed, and the 'ctx' parameter is left unexplained. This leaves gaps for an agent deciding to call the 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?

The schema provides only the type 'string' with zero description coverage. The description compensates by explaining that load_balancer_id can be a label or UUID and gives examples, which adds meaningful context. However, it also lists 'ctx' as an argument, which is not in the schema, potentially misleading an agent about required inputs.

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 'Delete a load balancer' clearly, specifying the verb and resource. It distinguishes itself from siblings like lb_delete_ssl (which deletes SSL) and lb_get/lb_create/lb_update, so an agent can easily understand its unique 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?

No guidance is provided on when to use this tool versus alternatives. It does not mention that it is for permanently removing a load balancer, nor does it contrast with lb_delete_ssl or other related tools. The agent must infer usage from the name and description alone.

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

lb_delete_forwarding_ruleB

Delete a forwarding rule from a load balancer.

Args: load_balancer_id: The load balancer ID or label (e.g., "web-lb", "api-load-balancer", or UUID) forwarding_rule_id: The forwarding rule ID ctx: FastMCP context for resource change notifications

Returns: Status message confirming deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
load_balancer_idYes
forwarding_rule_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full disclosure burden. While it mentions a success message is returned, it does not communicate that deletion is destructive and irreversible, that permissions are required, or that traffic may be disrupted. These are the kinds of behaviors an agent should be told for a delete operation, and the description does not add enough value beyond what the name already implies.

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 compact and well-structured with clear Args and Returns sections, and it avoids unnecessary prose. The main structural flaw is the doctext param `ctx` appearing in the Args list while the schema only defines two parameters, which is a small but notable inconsistency for model invocation.

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 a straightforward deletion, and an output schema exists, so return format may be covered elsewhere. Still, the description lacks contextual warnings about irreversible effects, the parent load balancer's membership requirements, or what happens when the specified forwarding rule is already absent. For a destructive action, this is slightly below what an agent would benefit from, and it does not leverage any annotations since none are provided.

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?

Because schema description coverage is 0%, the description must clarify parameter meanings. It adds useful detail for load_balancer_id, noting it can be a label or UUID with examples. However, forwarding_rule_id is only restated as 'the forwarding rule ID' with no format or provenance hint, and a 'ctx' argument is listed in the docstring but is completely absent from the input schema, creating potential confusion.

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 clear, specific action: 'Delete a forwarding rule from a load balancer.' The verb and resource are precise, and the tool is clearly distinguishable from siblings like lb_create_forwarding_rule, lb_list_forwarding_rules, and lb_get_forwarding_rule without requiring 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 Guidelines2/5

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

No explicit guidance is provided on when to use this tool versus sibling tools such as lb_create_forwarding_rule, lb_list_forwarding_rules, or lb_get_forwarding_rule. The description gives no alternative tool references, no exclusions, and no conditions like 'use only when a forwarding rule needs to be removed.' The agent must infer usage solely 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.

lb_delete_sslB

Delete SSL certificate from a load balancer.

Args: load_balancer_id: The load balancer ID or label (e.g., "web-lb", "api-load-balancer", or UUID) ctx: FastMCP context for resource change notifications

Returns: Status message confirming SSL deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
load_balancer_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. It only says the certificate is deleted and a status message is returned; it does not disclose permanence, side effects on forwarding rules or traffic, permission requirements, or idempotency. The mention of ctx for resource change notifications is the only extra behavioral detail, and it is absent from the input 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?

The description is compact and well organized: a one-line purpose followed by a short Args and Returns section. It is front-loaded and free of fluff, though the inclusion of ctx in Args adds a small amount of confusion given the schema mismatch.

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-required-parameter operation with an output schema, the description covers the core invocation surface. It is less complete contextually because there are no annotations, no usage guidance, and no side-effect disclosure for a destructive operation; an agent can make the call but cannot anticipate consequences or choose it confidently among related LB tools.

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 schema has 0% description coverage and only lists a string field, so the description's clarification that load_balancer_id accepts an ID or label (e.g., 'web-lb', UUID) is valuable. It fully explains the only real user-facing parameter. However, it also lists a ctx parameter that does not appear in the input schema, which introduces a minor inconsistency.

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 action and resource: 'Delete SSL certificate from a load balancer.' This is unambiguous and differentiates it from sibling tools such as lb_delete (deletes the load balancer itself), lb_disable_auto_ssl, and cdn_delete_cdn_ssl_certificate. An agent can tell what resource is affected 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 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, when not to use it, or prerequisites (e.g., whether the SSL certificate must exist, or what happens if auto-SSL is enabled). The description implies usage only through the verb 'Delete,' but does not mention related options like lb_disable_auto_ssl or cdn_delete_cdn_ssl_certificate.

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

lb_disable_auto_sslA

Disable Auto SSL for a load balancer.

Args: load_balancer_id: The load balancer ID or label (e.g., "web-lb", "api-load-balancer", or UUID)

Returns: Status message confirming Auto SSL disabled

ParametersJSON Schema
NameRequiredDescriptionDefault
load_balancer_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It correctly indicates that this is a disabling action and that a status message is returned, but it does not mention side effects, reversibility, idempotency, permissions, or behavior when Auto SSL is already disabled.

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 compact, front-loaded with the core action, and every sentence earns its place. The Args and Returns sections add useful detail without filler or redundancy.

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

Completeness3/5

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

For a simple one-parameter mutation, the core invocation details are present: the parameter is fully explained and the return type is summarized. However, the lack of preconditions, side-effect disclosure, or alternative routing leaves meaningful gaps for an agent deciding whether to call this tool.

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

Parameters5/5

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

The schema provides only an undocumented string field, but the description compensates richly by explaining that the value can be an ID, label, or UUID and giving concrete examples. This is exactly the kind of semantic guidance an agent needs 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 ('Disable'), a specific resource ('Auto SSL'), and the target object ('a load balancer'). This clearly distinguishes it from related siblings like lb_delete_ssl or lb_update without requiring schema inspection.

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

Usage Guidelines3/5

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

The intended use is implied by the action itself: use this when you want to disable Auto SSL on a load balancer. However, there is no explicit guidance on preconditions, when not to use it, or how it compares to alternatives such as lb_delete_ssl.

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

lb_getB

Get detailed information about a specific load balancer.

Args: load_balancer_id: The load balancer ID or label (e.g., "web-lb", "api-load-balancer", or UUID)

Returns: Detailed load balancer information

ParametersJSON Schema
NameRequiredDescriptionDefault
load_balancer_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral transparency burden. It communicates that this is a retrieval operation via 'Get' and indicates a return value, but it does not disclose error behavior, authentication requirements, or explicitly guarantee non-mutation beyond the conventional meaning of 'get.'

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, front-loaded, and organized with Args and Returns sections. The Returns line is somewhat redundant with the first sentence, but it is not bloated or filled with 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 single-parameter get operation with an output schema present, the description sufficiently covers the target resource and identifier format. It does not discuss not-found behavior or permissions, but these are less critical for tool selection and invocation, and the output schema can cover return shape.

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 schema only declares a string parameter, while the description adds that the value can be an ID or label and gives concrete examples like 'web-lb' or a UUID. This materially improves the agent's ability to populate the parameter correctly.

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 and resource: 'Get detailed information about a specific load balancer.' It distinguishes itself from sibling tools that target sub-resources like forwarding rules or health status, though it does not explicitly name 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 Guidelines2/5

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

No guidance is given for when to use this tool versus lb_get_forwarding_rule, lb_get_health_status, or lb_get_configuration_summary. The description only implies usage when a specific load balancer ID is known, without stating exclusions or alternatives.

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

lb_get_configuration_summaryB

Get a comprehensive configuration summary for a load balancer.

Args: load_balancer_id: The load balancer ID or label (e.g., "web-lb", "api-load-balancer", or UUID)

Returns: Detailed configuration summary

ParametersJSON Schema
NameRequiredDescriptionDefault
load_balancer_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It says 'Get' which implies a read operation, but it does not explicitly state that it is read-only, does not mention any permissions or side effects, and does not describe the structure of the returned summary beyond 'Detailed configuration summary'. Since an output schema exists, the return type may be partially covered, but the description itself adds 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.

Conciseness5/5

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

The description is concise, with a clear one-line purpose followed by Args and Returns sections. It is front-loaded with the action, and every sentence adds value. There is no redundant 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 single-parameter read operation with an output schema, the description is fairly complete. It covers the parameter format and the general outcome. However, it does not specify what aspects of configuration are included (e.g., health checks, forwarding rules, SSL settings), which could help the agent determine if this is the right tool. Given the simplicity, this 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?

The schema coverage is 0%, and the description compensates by explaining the parameter 'load_balancer_id' with examples ('web-lb', 'api-load-balancer', or UUID) and clarifies it can be an ID or label. This adds meaning beyond the raw string type. However, the explanation is brief and does not elaborate on any constraints or formats beyond the examples.

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 ('Get a comprehensive configuration summary') on a specific resource (load balancer). It is clear in what it does, but it does not explicitly distinguish itself from the sibling tool 'lb_get', which likely also retrieves load balancer information. The name and wording imply a more detailed view, but this differentiation is not made 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 guidance is provided on when to use this tool versus alternatives like 'lb_get' or other load balancer tools. There is no mention of scenarios where this summary is preferred, or exclusions. The agent is left to infer its usage from the name and description.

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

lb_get_firewall_ruleB

Get details of a specific firewall rule.

Args: load_balancer_id: The load balancer ID or label (e.g., "web-lb", "api-load-balancer", or UUID) firewall_rule_id: The firewall rule ID

Returns: Firewall rule details

ParametersJSON Schema
NameRequiredDescriptionDefault
firewall_rule_idYes
load_balancer_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries full behavioral burden; 'Get details' does communicate a non-mutating read, which is the primary safety-relevant trait. It does not mention explicit read-only status, error behavior, or prerequisites, but for a simple detail-getter this is a minor gap.

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

Conciseness5/5

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

The purpose is front-loaded in a single sentence and the Args/Returns block is compact and easy to scan. There is no filler or redundant explanatory prose.

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?

Because an output schema exists, the vague 'Firewall rule details' return statement is acceptable. The two required parameters are both present in the description, and the accepted formats for `load_balancer_id` are clearly stated. The only real absence is explicit disambiguation from the firewall-group rule tools.

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 document the parameters itself. It adds genuinely useful detail for `load_balancer_id` ('ID or label' with examples), but `firewall_rule_id` is only restated as 'The firewall rule ID', adding little beyond the parameter name.

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 'Get details of a specific firewall rule' is a clear verb+resource statement and correctly indicates a single-entity read operation. It does not explicitly distinguish this load-balancer-scoped rule from the sibling `firewall_get_rule`, but the `load_balancer_id` parameter and `lb_` prefix make the scope inferable.

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 about when to use this tool versus the many related siblings such as `lb_list_firewall_rules`, `firewall_get_rule`, or `firewall_list_rules`. The intended context is only implied by the parameter names and tool name.

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

lb_get_forwarding_ruleA

Get details of a specific forwarding rule.

Args: load_balancer_id: The load balancer ID or label (e.g., "web-lb", "api-load-balancer", or UUID) forwarding_rule_id: The forwarding rule ID

Returns: Forwarding rule details

ParametersJSON Schema
NameRequiredDescriptionDefault
load_balancer_idYes
forwarding_rule_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says 'Get details' and 'Returns: Forwarding rule details', which implies a read-only operation but does not explicitly confirm that it causes no modifications, state with required permissions, or failure modes (e.g., not found). The behavior is acceptable through the dwelluword 'get' but otherwise uncharacterized.

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 short and to the point, leading with the action in six words. The Args and Returns blocks are concise and directly follow, with no unnecessary prose or redundancy. Every line adds information, making it efficient to parse.

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

Completeness3/5

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

Given an output schema exists, the return format is not a gap. But the description doesn't not state the relationship between the two IDs (that forwarding_rule_id belongs to the given load balancer), nor any error behavior (e.g., '404 if rule not found'), nor what types of forwarding rules can be fetched. These are useful runtime details for a correct call in a large API surface.

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 is the only source of parameter meanings. It adds real value: load_balancer_id can be a label or UUID, with concrete examples ('web-lb', 'api-load-balancer'). It also names forwarding_rule_id. However, it does not state that the forwarding_rule_id is scoped to the given load balancer or clarify how the identifiers are used together, leaving a small semantic 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?

The description states a specific verb ('Get') and resource (forwarding rule), clearly distinguishing it from list and mutation tools like lb_list_forwarding_rules, lb_create_forwarding_rule, and lb_delete_forwarding_rule. The phrase 'specific forwarding rule' indicates that this tool retrieves a single rule by ID, leaving no ambiguity about its 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?

The description implies usage context: when you have a known forwarding_rule_id and a load_balancer_id, you can fetch its details. However, it provides no explicit alternatives, no guidance on when to use it instead of lb_list_forwarding_rules, and no instruction on how to obtain the forwarding_rule_id. The 'specific' qualifier does some work but not enough for a 4.

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

lb_get_health_statusB

Get health status and monitoring information for a load balancer.

Args: load_balancer_id: The load balancer ID or label (e.g., "web-lb", "api-load-balancer", or UUID)

Returns: Health status and configuration information

ParametersJSON Schema
NameRequiredDescriptionDefault
load_balancer_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are present, so the description carries the burden. 'Get' signals a read-only, non-mutating operation and the Returns section previews the output. However, it does not disclose error behavior, label-resolution caveats, or authorization 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?

The one-line summary is front-loaded and the Args/Returns sections are compact. The Returns line partially restates the summary but doesn't add significant bloat.

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

Completeness4/5

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

For a one-parameter read operation with an output schema available, the description covers what the tool does, what the parameter accepts, and what kind of data is returned. It lacks usage guidance, but that is already penalized in usage_guidelines and does not block a call.

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?

Input schema only says 'string', but the description explains that the value can be an ID, a label such as 'web-lb', or a UUID, which gives the agent the needed flexibility. This meaningfully exceeds the schema for the single 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 opening sentence uses the specific verb 'Get' and identifies the resource as health status and monitoring information for a load balancer. It clearly distinguishes from generic 'lb_get' or configuration summaries by naming health/monitoring, though it doesn't explicitly contrast with sibling tools.

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

Usage Guidelines2/5

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

The description states only what the tool does, with no guidance about when to choose it instead of lb_get, lb_get_configuration_summary, or lb_get_forwarding_rule. No exclusions or alternative conditions are given.

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

lb_list_firewall_rulesB

List firewall rules for a load balancer.

Args: load_balancer_id: The load balancer ID or label (e.g., "web-lb", "api-load-balancer", or UUID)

Returns: List of firewall rules

ParametersJSON Schema
NameRequiredDescriptionDefault
load_balancer_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the list action and return type; it does not disclose pagination, ordering, filtering, access requirements, or whether the operation is read-only beyond the verb 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 short, action-first, and organized with clear Args/Returns sections. No filler, though it could add slightly more context without becoming verbose.

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 list operation with an output schema, the essential call is covered. However, missing pagination/filtering details and lack of usage differentiation leave minor but noticeable 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 input schema only says 'string' with 0% description coverage, but the description clarifies that load_balancer_id accepts an ID or label and gives concrete examples ('web-lb', UUID). This adds real 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?

States the action and resource explicitly: 'List firewall rules for a load balancer.' This clearly distinguishes it from general firewall rule tools, though it does not name sibling alternatives like lb_get_firewall_rule or firewall_list_rules.

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 lb_get_firewall_rule for a single rule or firewall_list_rules for firewall-group rules. The intended invocation context is implied but never stated.

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

lb_list_forwarding_rulesB

List forwarding rules for a load balancer.

Args: load_balancer_id: The load balancer ID or label (e.g., "web-lb", "api-load-balancer", or UUID)

Returns: List of forwarding rules

ParametersJSON Schema
NameRequiredDescriptionDefault
load_balancer_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It doesn't mention whether this operation might have side effects, requires specific permissions, or has any rate limits. It also doesn't describe the format or structure of the returned list, such as whether it includes pagination or field details. For a read operation, this is a gap; the agent cannot know if listing is safe or returns a large dataset.

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 concise and includes the essential parameter detail and return type. However, the Args/Returns structure is a bit verbose for a single parameter; it could be more compact. The parameter explanation is front-loaded, which is good. No wasted words, but formatting could be improved.

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?

The tool has an output schema, but the description does not explain what the list contains (e.g., rule names, conditions, actions). It also lacks guidance on error scenarios or prerequisites, such as whether the load balancer must exist. Given the complexity of the load balancer API, the description feels incomplete: it covers what it does but not enough context for an agent to handle edge cases or interpret results.

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 has 0% description coverage, leaving the parameter 'load_balancer_id' without a description. The tool description compensates by explaining that it accepts an ID or label (e.g., 'web-lb', 'api-load-balancer', or UUID), which adds valuable meaning beyond the schema's bare 'string' type. This is helpful for an agent to know how to format 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 clearly states that this tool lists forwarding rules for a load balancer, which distinguishes it from sibling tools like lb_create_forwarding_rule, lb_get_forwarding_rule, and lb_delete_forwarding_rule. The verb 'List' and resource 'forwarding rules for a load balancer' are specific and unambiguous. Slight deduction for not explicitly mentioning the load balancer context in the title, but the description is clear.

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

Usage Guidelines3/5

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

The description implies usage when you need to list forwarding rules for a load balancer, but does not explicitly state when to use it versus alternatives like lb_get_forwarding_rule (for a single rule) or lb_create_forwarding_rule (for adding). It provides the required parameter and return type, but no explicit guidance on selection conditions. However, the purpose is clear enough that an agent can infer usage.

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

lb_updateC

Update an existing load balancer.

Args: load_balancer_id: The load balancer ID or label ctx: FastMCP context for resource change notifications ssl: SSL configuration dict sticky_session: Sticky session configuration forwarding_rules: Updated forwarding rules health_check: Updated health check configuration proxy_protocol: Enable/disable proxy protocol timeout: Connection timeout in seconds ssl_redirect: Enable/disable SSL redirect http2: Enable/disable HTTP/2 http3: Enable/disable HTTP/3 nodes: Number of backend nodes balancing_algorithm: Balancing algorithm instances: List of instance IDs to attach

Returns: Updated load balancer information

ParametersJSON Schema
NameRequiredDescriptionDefault
sslNo
http2No
http3No
nodesNo
timeoutNo
instancesNo
health_checkNo
ssl_redirectNo
proxy_protocolNo
sticky_sessionNo
forwarding_rulesNo
load_balancer_idYes
balancing_algorithmNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It does state that the operation updates an existing load balancer and mentions that ctx emits resource change notifications, but it does not disclose whether unspecified fields are reset or preserved, whether the operation is idempotent, what permissions are required, or what side effects occur. This is insufficient for a mutating tool with 13 optional parameters.

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 opens with a one-line purpose, then uses a clean Args/Returns structure. It is reasonably sized for 13 parameters. Some lines are redundant with the parameter names, and the 'ctx' argument is documented but absent from the input schema, which slightly undermines the structure.

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 complex update operation with 13 parameters, many of them nested or optional, yet the description does not explain update semantics such as merge versus replace, whether omitted fields are cleared, or which combinations are valid. It also omits permissions and side effects. The output schema exists, so return format is covered, but the missing behavioral and applicability context leaves the agent under-informed.

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 provides a line for every parameter, and some add real meaning: timeout is 'in seconds,' instances are 'IDs to attach,' and several flags say 'Enable/disable.' However, many lines are tautological (e.g., 'balancing_algorithm: Balancing algorithm,' 'forwarding_rules: Updated forwarding rules,' 'health_check: Updated health check configuration'), and complex objects like ssl and sticky_session lack structural detail. Partial compensation earns 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 description states a clear verb and resource: 'Update an existing load balancer.' The word 'existing' distinguishes it from creation or deletion tools like lb_create and lb_delete. It does not explicitly differentiate from lb_configure_basic_web_lb, but the general update intent 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 guidance is given about when to use this tool versus alternatives such as lb_create, lb_delete, or lb_configure_basic_web_lb. The phrase 'existing load balancer' only weakly implies that the load balancer must already exist. There is no mention of prerequisites, when not to use it, or what scenarios call for a different tool.

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

marketplace_get_applicationA

Get detailed information about a specific application.

Args: app_id: The application ID, name, short_name, or image_id (e.g., "wordpress", "openlitespeed-wordpress")

Returns: Detailed application information

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of disclosing behavior. It signals a read-only operation through 'Get' and 'Returns' and clarifies accepted identifier forms, which is useful. However, it does not mention side effects, error behavior, rate limits, or authentication expectations; for a simple read this is a moderate gap.

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

Conciseness5/5

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

The description is short, front-loaded with the core purpose, and organized into Args and Returns sections. Every line adds value, and there is no redundant or filler content.

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 read tool with an output schema, the description covers purpose, parameter semantics, and return behavior sufficiently. It is slightly incomplete only in that it does not guide the agent toward sibling tools for discovery or clarify when this getter should be chosen over related marketplace functions.

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

Parameters5/5

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

The input schema only defines app_id as a string, while the description adds substantial meaning: it explains that the parameter can be an ID, name, short_name, or image_id and provides concrete examples. This fully compensates for the 0% schema description 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 identifies the action ('Get') and resource ('detailed information about a specific application') and communicates singular lookup semantics. It does not explicitly name a sibling such as marketplace_search_applications, so it misses the strongest form of differentiation, but the scope 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 Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives like marketplace_search_applications or marketplace_get_applications_by_vendor. The usage context is only implied: use it when you already have an app_id and want details. No exclusions or alternative routing are provided.

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

marketplace_get_application_deployment_guideA

Get deployment guidance for an application.

Args: app_id: The application ID, name, short_name, or image_id

Returns: Deployment guidance including application details and requirements

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden. 'Get' and the Returns line signal a read-only operation that yields deployment guidance, which is basic behavioral context, but there is no explicit statement about side effects, failure behavior, or access requirements. 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.

Conciseness5/5

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

The description is compact and well-structured: an opening sentence, an Args block, and a Returns block. Every line adds distinct information and the key purpose 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 one-parameter read operation with an output schema available, the description covers the essential call contract: what to pass and what to expect back. It is slightly incomplete only in not contextualizing when to choose it among the marketplace siblings, but the invocation information itself is sufficient.

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

Parameters5/5

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

The schema only specifies app_id as a string, but the description expands this meaningfully by stating it can be an ID, name, short_name, or image_id. This single parameter is fully documented in practical terms, which is especially valuable given 0% schema description 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 opens with 'Get deployment guidance for an application,' a specific verb and resource that goes beyond the tool name by specifying what kind of information is returned (application details and requirements). It is clear but does not explicitly contrast itself with sibling marketplace tools such as marketplace_get_application or marketplace_get_deployment_examples, so it misses the strongest form of differentiation.

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

Usage Guidelines2/5

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

There is no guidance about when this tool should be selected over the many related marketplace tools, such as marketplace_get_application, marketplace_get_deployment_examples, or marketplace_get_marketplace_app_variables. No prerequisites, alternatives, or exclusion criteria are mentioned, so an agent must infer usage from the name alone.

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

marketplace_get_applications_by_vendorA

Get all applications from a specific vendor.

Args: vendor: Vendor name (e.g., "vultr", "LiteSpeed_Technologies")

Returns: List of applications from the specified vendor

ParametersJSON Schema
NameRequiredDescriptionDefault
vendorYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are present, so the description must carry the responsibility for behavioral disclosure. It states the action and return value, and the verb 'Get' implies a non-destructive read, but it does not mention edge cases like exact-match requirements, empty results, pagination, or error behavior. This is adequate but minimal for a read operation.

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 compact docstring with clear Args and Returns sections and no redundant prose. Every line contributes information, making it easy to parse quickly.

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

Completeness4/5

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

For a tool with a single required parameter and an available output schema, the description covers the essential invocation contract: what the parameter is, what the call returns, and the overall scope. It omits edge-case behavior (e.g., unknown vendor) but this is a simple read operation, and the output schema can fill in structural details.

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 schema defines 'vendor' only as a required string with no description (0% coverage), so the description's Args section adds meaningful value by labeling the parameter and providing concrete examples ('vultr', 'LiteSpeed_Technologies'). It could go further by specifying case sensitivity or matching behavior, but it clearly compensates for the schema's lack of 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?

The description uses a clear verb ('Get') and resource ('applications') with a specific filter ('from a specific vendor'), which matches the tool name and distinguishes it from singular lookup or search tools like marketplace_get_application and marketplace_search_applications. However, it does not explicitly name those siblings or contrast itself against them, so it lacks the full differentiation seen in top-tier descriptions.

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 intended use case (retrieve all applications for a given vendor) but provides no explicit guidance on when to prefer this over sibling tools such as marketplace_search_applications or marketplace_get_application. It also includes no exclusions, prerequisites, or alternative routing, which is a notable gap given the large marketplace sibling family.

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

marketplace_get_deployment_examplesB

Get examples of how to deploy popular marketplace applications.

Returns: Dictionary with deployment examples and common use cases

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the behavioral transparency burden on its own. It only states the return type; it does not explicitly confirm that the call is read-only, side-effect free, or free of special authentication requirements. The 'Returns' line is useful but minimal for a tool with zero 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.

Conciseness5/5

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

The description is extremely concise and front-loaded: one sentence states the core purpose, followed by a short return-value line. There is no filler or redundant background, and the length is appropriate for such a simple no-argument 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 zero-parameter informational tool, the description is mostly sufficient, and the presence of an output schema covers return-value details. The main gap is contextual positioning: the description does not clarify how deployment examples differ from the application deployment guide or popular-app list, which could lead an agent to select the wrong marketplace 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 has zero parameters, so there is no parameter documentation burden. The input schema already conveys the absence of arguments, and the description's mention of 'popular marketplace applications' implies an unfiltered, all-in-one response. This aligns with the 0-params baseline of 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 identifies the action ('Get examples') and the resource ('how to deploy popular marketplace applications'), and it is not a tautology. However, it does not differentiate this tool from siblings like marketplace_get_application_deployment_guide or marketplace_get_popular_marketplace_apps, so it stops short of full clarity.

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 marketplace-related siblings. The description does not explain whether this returns static examples, complements the deployment guide, or is scoped to popular applications only, leaving the agent to infer usage from the name.

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

marketplace_get_marketplace_app_variablesA

Get configuration variables for a marketplace application.

Args: app_id: The marketplace application name, short_name, or image_id (e.g., "openlitespeed-wordpress")

Returns: Application variables information including: - variables: List of configuration variables - Each variable contains: name, description, required (boolean)

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description does add value by listing the return structure (a list of variables with name, description, required). However, it doesn't disclose any behavioral traits such as read-only nature, potential errors (e.g., if app_id not found), rate limits, or whether it returns all variables or only some. The description is adequate but leaves gaps.

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 efficient, using a short summary plus a bulleted return list. It front-loads the main purpose about the app_id parameter. There is no verbosity, but the inclusion of the Args section could be streamlined; still, it's clear and structured.

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 tool is simple with one parameter and an output schema, the description is fairly complete. It explains the parameter identifier options, the return structure, and the purpose. It could expand on error handling or edge cases, but for the scope, it covers what an agent needs to make a correct call.

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 fully carries the burden. It explains that app_id accepts a name, short_name, or image_id, with an example. This adds meaning beyond the bare parameter name. It gives context on accepted identifier formats, which is helpful for correct invocation.

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 purpose: getting configuration variables for a marketplace application. The verb 'Get' and the resource 'configuration variables for a marketplace application' are clear. However, it does not explicitly differentiate from siblings like marketplace_get_application or marketplace_search_applications, though the unique focus on variables helps distinguish it.

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?

No explicit when-to-use guidance or alternatives are mentioned. An agent might infer usage from the name and context, but there is no exclusions such as 'use this only when you need variable definitions, not deployment guides.' The description doesn't state prerequisites like having a valid app_id or that this is for exploration before deployment.

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

marketplace_list_application_categoriesA

List applications grouped by categories/vendors.

Returns: Dictionary with vendors as keys and their applications as values

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It does disclose the return shape ('Dictionary with vendors as keys and their applications as values'), which is useful. However, it does not explicitly say this is read-only, what happens with no results, or whether categories and vendors are the same concept.

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?

Extremely concise: one sentence states the operation, one sentence states the return structure. No filler or redundant content.

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 listing tool with an output schema, the description is largely complete: it names the action, the grouping, and the return shape. The main gaps are the categories/vendors ambiguity and lack of cross-reference to sibling tools, but these do not prevent a confident call.

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 and 100% schema description coverage, so there is nothing for the description to add about parameters. The baseline of 4 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 clear verb ('List'), a resource ('applications'), and the grouping dimension ('categories/vendors'). It is mostly clear, though it does not explicitly distinguish itself from the similar sibling marketplace_get_applications_by_vendor, and 'categories/vendors' is slightly ambiguous given the return value is described as keyed by vendors.

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 is provided. The description does not mention alternatives such as marketplace_get_applications_by_vendor, marketplace_search_applications, or marketplace_get_application, nor does it state when this broad grouped listing is preferable to those tools.

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

marketplace_search_applicationsC

Search applications by name, description, or other criteria.

Args: search_term: Search term to match against application names and descriptions app_type: Optional filter by type ('marketplace', 'one-click') vendor: Optional filter by vendor name

Returns: List of matching applications

ParametersJSON Schema
NameRequiredDescriptionDefault
vendorNo
app_typeNo
search_termYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It states it returns a list of matching applications, but does not disclose whether the search is case-sensitive, how partial matches are handled, if pagination is applied, or any rate limits or auth requirements. It also doesn't indicate whether the tool is read-only or has side effects, though searching implies read-only.

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 concise with a clear structure: one-line purpose sentence, then docstring-style parameter and return descriptions. It avoids unnecessary fluff. However, the section headings are a bit formal but acceptable for machine parsing.

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 is adequate for a search tool with a simple call pattern, but it lacks guidance on edge cases such as empty results, error handling, and how to use the output with other marketplace tools. The output schema exists but isn't described, which is acceptable, but the description doesn't mention any specific search behaviors (e.g., wildcards) that might be critical for an agent to know.

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%, meaning the description must explain parameters. The description provides brief explanations for search_term (match against names and descriptions), app_type (filter by type), and vendor (filter by vendor), which adds some meaning beyond the schema's bare parameter names. However, the valid values for app_type (e.g., 'marketplace', 'one-click') are only given in the description, not in the schema, so this is helpful. It doesn't explain how multiple parameters combine (AND or OR) or the format of the return list.

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

Purpose4/5

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

The description clearly states it searches applications by name, description, or other criteria given as parameters. It differentiates from siblings like marketplace_get_application which retrieves a specific app, and marketplace_get_applications_by_vendor which filters by vendor. However, the 'other criteria' phrase is vague and doesn't enumerate all possible filters beyond the listed parameters.

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 does not provide explicit guidance on when to use this tool over siblings such as marketplace_get_applications_by_vendor or marketplace_get_popular_marketplace_apps. It doesn't mention that vendor or app_type can be used to narrow results, or that this is the general-purpose search tool. No exclusions or alternatives are given.

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

object_storage_createB

Create a new Object Storage instance.

Args: cluster_id: The cluster ID where the Object Storage will be created (use list_clusters to see options) label: A descriptive label for the Object Storage instance

Returns: Created Object Storage information including access credentials

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYes
cluster_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations exist, so the description carries the behavioral burden. It states the tool creates a resource and returns access credentials, but it does not disclose side effects, cost implications, permissions required, whether credentials are shown only once, or how this resource can be safely cleaned up.

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 well structured, with a purpose sentence followed by Args and Returns sections. No filler wording is present, although the Args/Returns formatting is mechanical rather than elegantly distilled.

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 create call, the description provides enough to assemble the basics, but it lacks procedural guidance such as which sibling tool actually lists clusters and what happens to the returned credentials. With no annotations, missing behavioral and exclusion context keeps it from being 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%, and the description compensates by explaining both parameters: cluster_id is the target cluster for the new instance, and label is a descriptive name. The pointer to a listing helper is useful, though the named tool is slightly inaccurate.

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 clear, specific action and resource: 'Create a new Object Storage instance.' The create verb and 'instance' distinguish it from object_storage_get/update/delete and other storage creation tools without ambiguity.

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

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to choose this tool over alternatives. The only hint, 'use list_clusters to see options', is a parameter-level note and is left unattached to the actual sibling tool name object_storage_list_clusters. No when/when-not conditions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

object_storage_deleteA

Delete an Object Storage instance.

Args: object_storage_id: The Object Storage ID or label (e.g., "my-storage", "backup-bucket", or UUID)

Returns: Status message confirming deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
object_storage_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the disclosure burden. It states the destructive action and a returned 'Status message confirming deletion', but it does not disclose consequences such as irreversibility, data loss, or permission requirements.

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 short, front-loaded, and free of filler. The Args and Returns sections each earn their place, and the example values make the parameter section useful.

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 delete tool, the description supplies the action, the parameter semantics, and the expected return. It stops just short of perfect completeness by not adding explicit destructiveness/irreversibility caveats, which are especially useful when annotations are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only says object_storage_id is a string, while the description adds meaningful semantics: it can be an ID or label, with concrete examples including a UUID. This fully compensates for the 0% schema description coverage.

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 'Delete an Object Storage instance' uses a specific verb and resource, and it cleanly distinguishes this tool from sibling operations like object_storage_create/update or block_storage_delete. No ambiguity remains about what the tool does.

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 use case is implied: call it when an Object Storage instance needs to be deleted. However, there is no explicit guidance about when not to use it, nor a comparison to related storage operations or delete alternatives, leaving the agent to infer selection purely from the resource name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

object_storage_find_by_regionA

Find all Object Storage instances in a specific region.

Args: region: Region code (e.g., "ewr", "lax", "fra")

Returns: List of Object Storage instances in the specified region

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It states that the operation returns a list of instances, implying a read-only lookup, but does not mention pagination, ordering, or behavior when a region code 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 compact and front-loaded, with a clear one-sentence purpose followed by Args and Returns sections. Every line adds useful information with 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 simple one-parameter lookup with an output schema present, the description covers purpose, parameter meaning, and return type. Minor gaps remain around valid region codes and pagination, but nothing that critically blocks a 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?

The schema provides only a bare string for 'region' with zero coverage, so the description must compensate. It adds the key clarification that region is a region code and gives concrete examples ('ewr', 'lax', 'fra'), though it does not enumerate all valid codes or point to a source for them.

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?

Begins with a specific verb+resource: 'Find all Object Storage instances in a specific region.' The qualifier 'by region' distinguishes it from sibling object_storage_get and object_storage_list_clusters, so an agent can infer what it does 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the context clear: use it to find Object Storage instances in a specific region. However, it does not explicitly say when to prefer this over alternatives such as object_storage_get or object_storage_list_clusters, nor give any exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

object_storage_getB

Get detailed information about a specific Object Storage instance.

Args: object_storage_id: The Object Storage ID or label (e.g., "my-storage", "backup-bucket", or UUID)

Returns: Detailed Object Storage information including access credentials

ParametersJSON Schema
NameRequiredDescriptionDefault
object_storage_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the disclosure burden. It explicitly states it returns access credentials, which is important sensitivity context. However, it doesn't discuss idempotency, auth requirements, or the fact that the response contains sensitive material needing careful handling. The 'Get' verb implies read-only, but nothing is made explicit.

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?

Three tight sections: one-line purpose, Args, Returns. Purpose is front-loaded, and every sentence contributes โ€” no filler or repetition of the tool name beyond the first clause.

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?

Adequate for a simple one-param getter: it covers what the tool does, what the parameter means, and what it returns. The gaps are the missing differentiation from sibling getters and the lack of any caution about the sensitive access credentials in the response, which would be valuable for an agent handling the output.

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 has 0% description coverage, but the description fully compensates by explaining object_storage_id can be an ID, label, or UUID, with concrete examples ('my-storage', 'backup-bucket'). This adds real meaning beyond the bare string type 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?

Uses a specific verb ('Get') and resource ('specific Object Storage instance'). The phrase 'detailed information' loosely distinguishes it from sibling getters like object_storage_get_s3_config and object_storage_get_storage_summary, though it doesn't 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 guidance on when to use this tool versus alternatives. The sibling list contains several object storage getters (get_s3_config, get_storage_summary, find_by_region), and the description doesn't help an agent decide which to invoke or when to prefer a different one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

object_storage_get_s3_configA

Get S3-compatible configuration details for an Object Storage instance.

Args: object_storage_id: The Object Storage ID or label (e.g., "my-storage", "backup-bucket", or UUID)

Returns: S3 configuration details including: - endpoint: S3-compatible endpoint URL - access_key: S3 access key - secret_key: S3 secret key - region: Storage region - bucket_examples: Example bucket operations

ParametersJSON Schema
NameRequiredDescriptionDefault
object_storage_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. The verb 'Get' and the enumerated return fields make it clear this is a read-only configuration retrieval that exposes credentials, and the description does not imply any destructive or mutating behavior. It does not mention authentication or permission requirements, but for a simple config getter the disclosure is reasonably complete.

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 concise and well-structured with separate Args and Returns sections. The first sentence states the tool's purpose immediately, followed only by the single parameter and the precise output fields.

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?

This is a simple getter with one required parameter, an output schema, and no hidden prerequisites. The description covers the parameter's accepted forms and the returned configuration fields comprehensively, so an agent has enough context to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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. It clarifies that object_storage_id accepts either an ID or label and gives concrete examples ('my-storage', 'backup-bucket', UUID), adding meaning well beyond the bare string property in the input 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 action and resource: 'Get S3-compatible configuration details for an Object Storage instance.' This clearly distinguishes it from sibling tools like object_storage_get (storage instance summary), object_storage_validate_s3_access (validation), and object_storage_regenerate_keys (key rotation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: call this when you need the S3 endpoint, credentials, or region for an Object Storage instance. However, the description does not explicitly distinguish when to use this instead of object_storage_get or object_storage_validate_s3_access, and does not mention any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

object_storage_get_storage_summaryA

Get a summary of all Object Storage instances.

Returns: Summary information including: - total_instances: Total number of Object Storage instances - regions: List of regions with storage counts - status_breakdown: Count by status - cluster_usage: Count by cluster

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It makes clear this is a read-only aggregation and lists the exact summary fields returned. It does not disclose potential caveats like data freshness, empty-region behavior, or permission requirements, but for a zero-parameter read summary the core behavior is sufficiently visible.

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 compact and front-loaded with the core action, then uses a clean bulleted list to enumerate the return fields. Every sentence adds useful information and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter summary operation with an output schema available, the description is complete: it states the scope ('all instances') and the four summary categories. Nothing essential for invoking the tool correctly 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 has zero parameters, and the schema confirms no properties exist. There is nothing for the description to add about parameter meaning, so the baseline of 4 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 clearly states the verb ('Get'), the resource ('all Object Storage instances'), and the aggregate nature ('summary'), so an agent can distinguish it from single-instance tools like object_storage_get. It does not explicitly name an alternative, but the scope and summary emphasis make the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when an aggregate overview of all Object Storage instances is needed. However, it does not explicitly state when not to use it or name alternatives like object_storage_get for per-instance details, leaving the routing decision implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

object_storage_list_clustersA

List all available Object Storage clusters.

Returns: List of Object Storage clusters with details including: - id: Cluster ID - region: Region code - hostname: S3-compatible hostname for the cluster - deploy: Deployment status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that the tool returns a list of clusters with specific fields (id, region, hostname, deploy), which is useful. However, it doesn't mention whether this is a read-only operation, whether it requires authentication, or whether there are any rate limits or pagination. The return format is partially disclosed via the field list, but the description doesn't state the overall response structure beyond 'List of Object Storage clusters with 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 description is concise and front-loaded with the main purpose in the first sentence. The return field list is useful and not overly verbose. It could be slightly more structured (e.g., using a more compact format), but it's efficient and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that this is a simple zero-parameter list operation with an output schema present, the description is nearly complete. It names the resource, the scope ('all available'), and the key return fields. It doesn't mention authentication or pagination, but for a simple list tool with an output schema, this is a minor gap. The presence of an output schema reduces the need to explain return values in detail.

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 there is no parameter semantics burden on the description. The schema is empty and coverage is 100% (trivially). The description correctly focuses on the return value instead. A baseline of 4 is appropriate for a no-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'List all available Object Storage clusters.' It uses a specific verb ('List') and resource ('Object Storage clusters'), and the name itself is unambiguous. It also distinguishes itself from sibling tools like object_storage_get (which retrieves a single cluster) and object_storage_list_cluster_tiers (which lists tiers, not clusters).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context: it's a read-only listing operation for all available clusters, with no parameters required. It doesn't explicitly state when to use this vs alternatives, but the 'all available' phrasing and the sibling tool names (object_storage_get, object_storage_find_by_region) make the use case reasonably clear. It lacks an explicit exclusion like 'use object_storage_get for a single cluster's details.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

object_storage_list_cluster_tiersA

List all available tiers for a specific Object Storage cluster.

Args: cluster_id: The cluster ID (use list_clusters to see available clusters)

Returns: List of available tiers for the cluster with pricing and limits

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, but the description clearly signals a read-only listing operation and discloses the return content: 'List of available tiers for the cluster with pricing and limits.' It does not mention auth requirements or rate limits, but for a simple list operation this is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the core purpose appears in the first sentence, followed by only the essential Args and Returns details. No filler or redundant information is present.

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 one-parameter list tool with an output schema, the description covers the parameter source, the purpose, and the return content. The agent has everything needed to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema only defines cluster_id as an integer, and schema description coverage is 0%. The description compensates by explaining the parameter meaning and, more importantly, pointing to object_storage_list_clusters as the way to discover valid values. This adds operational meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List all available tiers for a specific Object Storage cluster.' This clearly distinguishes the tool from siblings like object_storage_list_clusters by naming the exact resource (tiers) and the required scope (a specific cluster).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a concrete prerequisite: 'use list_clusters to see available clusters.' This tells the agent how to obtain the required cluster_id and when this tool is applicable. It does not explicitly discuss exclusions or alternative tier-listing tools, but no obvious competing tool exists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

object_storage_regenerate_keysA

Regenerate the S3 access keys for an Object Storage instance.

Args: object_storage_id: The Object Storage ID or label (e.g., "my-storage", "backup-bucket", or UUID)

Returns: Object Storage information with new access keys

ParametersJSON Schema
NameRequiredDescriptionDefault
object_storage_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since annotations are none, the description carries full burden for behavioral disclosure. It clearly states that the tool returns 'Object Storage information with new access keys', which implies the destruction of old keys. However, it does not warn about the irreversible nature of key regeneration, the impact on any services using the old keys, or any authentication requirements. Some of this is inferred but not explicitly stated, 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?

The description is concise with three sentences: one for purpose, one for parameter explanation, and one for return value. It is front-loaded with the action and resource. Every sentence earns its place, though it could be slightly more compact by merging the parameter and returns into prose. Efficiency is high, and it is well-structured.

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 an output schema provided, so return values need not be detailed in the description. However, the description is still minimal. It lacks warnings about the consequences of key regeneration (e.g., breaking integrations), any mention of rate limits or permission requirements, and specific usage context. For a tool with simple inputs, it is adequate but not comprehensive, leaving notable 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?

The schema has 0% description coverageholistically, but the description explicitly explains the parameter 'object_storage_id' as 'The Object Storage ID or label (e.g., "my-storage", "backup-bucket", or UUID)'. This adds meaning beyond the schema's bare type definition. It compensates for the schema's lack of detail, meeting the baseline for a single-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Regenerate' with the specific resource 'S3 access keys for an Object Storage instance'. It distinguishes this tool from sibling tools by specifying the action of regenerating keys, which is unique among the object_storage_* siblings. The purpose is unambiguous and specific.

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 does not explicitly state when to use this tool versus alternatives, but it is implied by the unique action of regenerating keys among the object_storage_* siblings. There is no mention of when not to use it, nor is there guidance on prerequisites like needing to have an object storage instance already created. This is adequate for a simple regenerate operation but lacks explicit routing to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

object_storage_updateA

Update an Object Storage instance's label.

Args: object_storage_id: The Object Storage ID or label (e.g., "my-storage", "backup-bucket", or UUID) label: New label for the Object Storage instance

Returns: Status message confirming update

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYes
object_storage_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the disclosure burden. It makes the mutating nature explicit and states that a status message is returned, but it does not discuss permissions, uniqueness constraints, or side effects on related resources.

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 purpose is front-loaded, followed by compact Args and Returns sections. Every line adds value and there is no redundant prose.

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?

The tool has only two required string parameters, and both are documented with examples. An output schema covers return details, so no critical information needed to invoke the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description fully compensates by explaining both required parameters. It clarifies that object_storage_id accepts an ID or label with concrete examples, and defines label as the new label for the instance.

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 clear action and target: it updates the label of an Object Storage instance. This differentiates it from sibling operations like object_storage_get, object_storage_create, object_storage_delete, and object_storage_regenerate_keys.

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 specific 'update label' action gives a clear context for selecting this tool. It does not explicitly mention when not to use it or point to alternatives, but no sibling covers label updates, so the omission is minor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

object_storage_validate_s3_accessA

Validate that an Object Storage instance has valid S3 credentials.

Args: object_storage_id: The Object Storage ID or label (e.g., "my-storage", "backup-bucket", or UUID)

Returns: Validation results including: - valid: Whether the configuration appears valid - endpoint: S3 endpoint URL - has_credentials: Whether access keys are present - suggestions: Any configuration suggestions

ParametersJSON Schema
NameRequiredDescriptionDefault
object_storage_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must carry the full behavioral burden. It only says 'Validate', implying a read-only check, but does not explicitly state it is non-destructive, whether it makes network calls, or what happens on validation failure. This leaves safety and side-effect information ambiguous.

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 concise and well-structured: a one-sentence purpose, followed by clear Args and Returns sections. No extraneous information, and the main purpose is 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?

The description covers the purpose, parameter, and return value structure, which is good for a simple single-parameter tool. However, it omits usage context (when to call it) and behavioral details (safety, error behavior), so an agent is left with some gaps. It is adequate but not thoroughly 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 coverage is 0% for the parameter description, but the tool description compensates by explaining that object_storage_id can be an ID or label (e.g., 'my-storage', 'backup-bucket', or UUID) with concrete examples. This adds meaningful guidance beyond the bare schema type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Validate that an Object Storage instance has valid S3 credentials') and resource ('S3 credentials'). It is distinct from sibling tools like object_storage_get_s3_config or object_storage_regenerate_keys by focusing specifically on validation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention scenarios where validation is appropriate, nor does it contrast with related tools such as object_storage_get_s3_config. An agent would need to infer usage from the purpose, with no explicit direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

os_get_operating_systemB

Get details of a specific operating system.

Args: os_id: The operating system ID

Returns: Operating system details

ParametersJSON Schema
NameRequiredDescriptionDefault
os_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. The verb 'Get' and 'Returns' imply a read-only operation, which is reasonably transparent for a simple getter. But it does not explicitly state non-mutation, authorization needs, error behavior, or what 'details' includes beyond the output 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?

The description is short, organized with Args/Returns, and front-loaded with the main purpose. The 'Returns: Operating system details' line is slightly redundant with the first sentence, but the overall structure is efficient and 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?

For a one-parameter getter with an output schema, the description is nearly sufficient. However, it lacks guidance on where os_id comes from and how to choose this tool over os_get_os_by_name or os_list_operating_systems. The output schema covers return shape, so that omission is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides only a string type with no description, and schema coverage is 0%. The description compensates minimally by labeling os_id as 'The operating system ID,' which adds semantic meaning. It does not provide format, examples, or how to obtain a valid ID, so the compensation is 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: 'Get details of a specific operating system.' It is clear this is a read operation by ID, and the name 'os_get_operating_system' aligns with that purpose. However, it does not explicitly distinguish itself from sibling tools like os_get_os_by_name or os_search_os_by_name, so it falls just short of full clarity.

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. Given the large set of OS-related siblings (os_list_operating_systems, os_get_os_by_name, os_search_os_by_name, etc.), an agent is left to infer that this tool is appropriate when an os_id is already known.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

os_get_os_by_nameB

Get operating system by exact name match.

Args: name: Exact OS name to find

Returns: Operating system details

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral burden. It says the tool 'gets' and 'returns' details, implying a read-only lookup, but it does not disclose error behavior when no match exists, case sensitivity, required permissions, or rate limiting. For a tool with zero annotation coverage, this is an important gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a single main sentence followed by labeled Args and Returns sections. It is front-loaded and contains no fluff, repetition, or unnecessary detail.

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?

An output schema exists, so the description does not need to spell out the return shape. Given the simple one-parameter lookup, the description is mostly adequate, but it still omits usage guidance and failure behavior. It is at the minimum viable level of 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?

With the schema providing only a plain string type and 0% schema description coverage, the description gives the key meaning: 'name: Exact OS name to find.' This signals exactness and clarifies the role of the parameter. It lacks examples or valid value constraints, but is sufficient for a single-parameter lookup 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 states that the tool retrieves an operating system using an exact name match, which is a specific verb plus resource. The phrase 'exact name match' helps distinguish it from search-style siblings, but it does not explicitly differentiate from os_get_operating_system, which could be a lookup by ID. This is clear but not fully sibling-distinguishing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when the caller knows an exact OS name, since it says 'exact name match.' However, it never mentions the more general os_search_os_by_name, os_list_operating_systems, or os_get_operating_system alternatives, nor does it state when use should be avoided. The usage context is implied, not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

os_list_application_imagesB

List application images (one-click apps).

Returns: List of application images

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only restates the tool's name with a parenthetical note, offering no insight into behavior such as authentication requirements, pagination, or whether the list is exhaustive. It's essentially a tautology.

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 but contains redundancy: the 'Returns:' line duplicates the initial statement. It could be condensed to a single sentence. The structure is acceptable but not optimally concise.

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 with no parameters and an output schema exists, so the description needn't detail return values. It provides the basic purpose but lacks context on how application images relate to deployments or other tools. Adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is trivially complete. The description doesn't need to explain parameters, and the baseline for 0 params is 4. No additional parameter information is necessary.

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 lists application images and clarifies they are 'one-click apps', which distinguishes it from operating system listing tools. However, it doesn't specify scope or filtering, but the name is self-explanatory. It's clear and specific enough.

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 alternatives like os_list_operating_systems or marketplace tools. It simply states what it does without any context on selection criteria or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

os_list_linux_osC

List Linux operating systems.

Returns: List of Linux operating systems

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure, but it only restates the purpose. It does not mention pagination, filtering, authentication, or any other behavioral trait; the Returns line is redundant with the description itself.

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 sentence is short and front-loaded, but the Returns line is a redundant restatement that does not earn its place. The description would be stronger as a single 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?

For a no-parameter list tool with an output schema, the description is nearly sufficient, and it clearly identifies the resource being listed. However, the presence of several OS-list siblings means a disambiguating note would materially improve 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 has zero parameters and an empty input schema, so there is nothing for the description to add. The zero-parameter baseline of 4 applies.

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 'List Linux operating systems' is a direct restatement of the tool name os_list_linux_os and adds no new information. It identifies the verb and resource, but does not distinguish this from sibling tools such as os_list_operating_systems or os_list_windows_os.

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 usage guidance is provided. The description does not say when to choose this tool over the closely related os_list_operating_systems, os_list_windows_os, or os_list_os_by_family, nor does it mention any exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

os_list_operating_systemsB

List all available operating systems.

Returns: List of available operating systems

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full behavioral disclosure burden. It merely restates the action and the return value without adding detail such as ordering, pagination, whether custom ISOs are included, or any side effects. The 'Returns' section is a redundant echo of the purpose rather than a 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is appropriately short and front-loaded. However, the 'Returns:' section repeats the same idea almost verbatim, creating redundancy. It would earn a 4 or 5 if it dropped the echo and used the space for actual differentiating detail.

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-only list, the description is minimally viable. The output schema exists, so return values need not be described in prose. However, it lacks sibling differentiation and any behavioral context, which an agent would need to confidently choose this tool over the many related OS listing tools.

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 there is nothing for the description to explain beyond what the empty input schema already shows. The baseline for a 0-parameter tool is 4, and the description neither adds nor misses 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 uses a specific verb and resource: 'List all available operating systems.' The word 'all' implicitly distinguishes this from sibling tools like os_list_linux_os and os_list_windows_os, which return filtered subsets. However, it never explicitly names or contrasts those alternatives, so it is clear but not fully differentiated.

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 choose this tool over its many OS-related siblings (e.g., os_search_os_by_name, os_list_os_by_family, os_get_os_by_name). There is no mention of use cases, exclusions, or alternatives, so an agent gets no help selecting among the similar list tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

os_list_os_by_familyB

List operating systems by family.

Args: family: OS family (e.g., 'ubuntu', 'centos', 'windows', 'application')

Returns: List of operating systems in the specified family

ParametersJSON Schema
NameRequiredDescriptionDefault
familyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden. It states the return type ('List of operating systems') but discloses nothing about side effects, potential errors, rate limits, or whether it is a read-only operation (which 'List' implies but does not state). It adds little beyond restating the tool's name and provides no behavioral insights that would help an agent anticipate outcomes.

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 appropriately brief and well-structured: a one-sentence purpose, followed by Args and Returns sections. Every element serves a function, and there is no redundancy or filler. It is front-loaded with the core purpose and keeps parameter details concise.

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 a single parameter and a simple list return, the description covers the essential aspects: purpose, parameter example, and return type. However, it lacks context on how this tool fits with the many sibling OS tools, and it does not clarify potential edge cases (e.g., what happens with an invalid family value). Given the tool's simplicity and the presence of an output schema (which likely describes the return format), the description is minimally adequate but could be more helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides no description for the 'family' parameter, so the description must compensate. It does so by offering examples ('ubuntu', 'centos', 'windows', 'application'), which gives the agent a sense of valid values. However, the list is not exhaustive and the description does not explain what families are available or how to discover them. This is partial compensation for the 0% schema coverage, earning 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 description clearly states the action ('List') and resource ('operating systems') with a qualifier ('by family'). It is specific and understandable, but it does not differentiate from sibling tools like os_list_linux_os or os_list_windows_os, which also list operating systems by category. This is a clear purpose without explicit 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 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. It does not mention any sibling tools or conditions that would select this tool over os_list_operating_systems, os_list_linux_os, etc. The only context is the family parameter examples, but there is no explanation of when this tool is the appropriate choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

os_list_windows_osC

List Windows operating systems.

Returns: List of Windows operating systems

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses nothing beyond the basic action: no mention of whether all Windows versions are included, ordering, pagination, or any caveats. The output schema covers return structure, but the description adds no 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but this is under-specification rather than conciseness. The Returns line is redundant, repeating the action statement with no new value. The space is wasted on repetition instead of being used for differentiating context.

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?

While an output schema exists and the tool is a simple parameterless list operation, the description fails to differentiate this from closely related siblings like os_list_linux_os or os_list_operating_systems. An agent cannot tell when to pick this over a sibling without inspecting other tools. For a tool in a large family with no annotations, this is inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. There is nothing for the description to explain about parameters, and the schema coverage is 100% (empty schema). This is a correct score for a parameterless 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 'List Windows operating systems' is a tautology of the tool name os_list_windows_os. It adds no information beyond the name itself, and the Returns line merely repeats the same statement with no additional detail about what is returned.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There are many sibling OS tools (os_list_operating_systems, os_list_linux_os, os_search_os_by_name, os_get_os_by_name, os_list_os_by_family), but the description provides zero guidance on when to use this tool versus those alternatives. No exclusions or selection criteria are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

os_search_os_by_nameB

Search operating systems by name.

Args: name: OS name to search for (partial match)

Returns: List of matching operating systems

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose that matching is partial and the result is a list of matching operating systems. However, it does not cover empty-result behavior, case sensitivity, or confirm the operation has no 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 compact and front-loaded, with a clear one-sentence purpose followed by concise Args and Returns sections. No wasted 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 simple one-parameter read tool with an output schema, the essential calling contract is present. Still, the lack of any usage comparison and the absence of edge-case details keep 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?

Schema description coverage is 0%, so the description must compensate; it adds the crucial 'partial match' meaning to the name parameter beyond the bare string type. It is adequate for a single simple parameter, though it could include match-policy examples.

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 that the tool searches operating systems by name, with a concrete verb and resource. The Args note 'partial match' helps differentiate it from an exact-name sibling like os_get_os_by_name, though it does not 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?

There is no guidance on when to use this tool versus alternatives such as os_get_os_by_name, os_list_operating_systems, or os_list_linux_os. The description implies a search use case but provides no exclusions or decision rules.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_compare_plansA

Compare multiple plans side by side.

Args: plan_ids: List of plan IDs to compare format: Output format - 'compact' (default) or 'json'

Returns: Plan comparison in requested format

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNocompact
plan_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It states that the tool returns plan comparisons in a requested format, which is useful, but it does not explicitly confirm the operation is read-only, mention any prerequisites, or describe what the compact format contains.

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 compact and well-structured: a clear one-line purpose immediately followed by Args and Returns sections. Every sentence earns its place, and there is 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 two-parameter comparison tool, the description covers inputs, output format choices, and the return behavior. It is mostly complete, but it could be strengthened by noting how plan IDs are obtained or by explicitly distinguishing this from sibling plan tools.

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 for the schema. It does so effectively by explaining plan_ids as a list of plan IDs and format with its two allowed values and default. This adds real meaning beyond the raw property 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 clearly states the tool's purpose with a specific verb and resource: compare multiple plans side by side. It distinguishes itself from simple listing or retrieval tools, though it does not explicitly name sibling alternatives like plan_get_plan or plan_search_plans_by_specs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when a user has multiple plan IDs and wants a side-by-side comparison, but it provides no explicit when-to-use guidance, exclusions, or alternatives. The context is understandable but left to inference given the large sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_get_cheapest_planC

Get the cheapest available plan.

Args: plan_type: Optional plan type filter

Returns: Cheapest plan details

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of explaining behavior. It indicates a read/return operation but does not disclose what 'cheapest' compares (price metric, billing period), what 'available' means, or what happens when no plan matches the filter. This leaves key selection-criteria behavior unexplained.

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 extremely lean: a one-line purpose followed by tight Args and Returns sections. There is no redundant text, and the core purpose is 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 simple, one-optional-parameter read tool with an output schema, the description is minimally usable. However, in the context of a large family of plan-related tools, it does not explain valid plan_type values or distinguish 'cheapest available' from availability/region-based plan queries, leaving an agent to guess.

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 for the bare input schema. It adds only 'Optional plan type filter,' which restates the parameter's optionality without defining valid plan_type values, format, casing, or how filtering is applied. This is insufficient for a parameter that is central to the tool's behavior.

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: 'Get the cheapest available plan.' This is clearly distinct from list/get/search siblings in principle, and the optional plan_type filter adds scope. However, it does not explicitly draw the boundary against plan_compare_plans or plan_get_plan_by_type_and_spec.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus the many sibling plan tools such as plan_search_plans_by_specs, plan_get_plan_by_type_and_spec, or plan_get_plans_by_region_availability. The only implied context is the tool's name and first line; no exclusions, prerequisites, or alternative routing are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_get_planB

Get details of a specific plan.

Args: plan_id: The plan ID

Returns: Plan details

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. 'Get details' and 'Returns: Plan details' make the read-only nature inferable, but the description does not explicitly state that no changes are made, whether authentication is needed, or how errors are surfaced. For a simple getter this is acceptable 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured with Args and Returns sections. Every sentence earns its place, and there is no filler. It could be slightly more informative without becoming verbose, but structurally it is clean.

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 an output schema present, return details are covered. The tool is basically callable with a single plan_id, but the description omits guidance on where plan_id originates and how this tool relates to the many plan_* siblings. This is adequate for a trivial get-by-ID operation, but not fully 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%, so the description must compensate. It only says 'plan_id: The plan ID', which largely restates the parameter name without adding format, source, or example context. An agent is not told how to discover valid plan IDs or whether they come from plan_list_plans.

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 'Get details of a specific plan', which clearly identifies the verb (get), resource (plan), and scope (specific). This distinguishes it from list-style siblings like plan_list_plans, though it does not explicitly differentiate it from other lookup siblings such as plan_get_plan_by_type_and_spec.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives. It does not mention that plan_list_plans can provide valid plan IDs, nor does it explain when to prefer plan_get_plan_by_type_and_spec or plan_get_cheapest_plan instead. The agent is left to infer usage from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_get_plan_by_type_and_specB

Get plans by type and specific vCPU/RAM combination.

Args: plan_type: Plan type (vc2, vhf, voc) vcpus: Number of vCPUs ram_gb: RAM in GB format: Output format - 'compact' (default) or 'json'

Returns: Matching plans in requested format

ParametersJSON Schema
NameRequiredDescriptionDefault
vcpusYes
formatNocompact
ram_gbYes
plan_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full behavioral disclosure burden. It mentions the output format and 'matching plans' but does not explain behavior on no matches, exact-match semantics, pagination, error cases, or whether the operation is read-only. This is minimal beyond the obvious function purpose.

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 clean docstring with a one-line summary, bulleted parameter explanations, and a return note. Every section is useful, information is front-loaded, and there is 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?

With an output schema present, the return note is sufficient, and all four parameters are explained well enough to invoke the tool. The main missing context is how this tool relates to overlapping plan search siblings, but the essential call information is otherwise 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: it specifies plan_type allowed values (vc2, vhf, voc), vcpus as a count, ram_gb as GB, and format with its default and valid options. This adds meaningful semantics beyond the raw schema, though it omits constraints like positive integers.

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 action ('Get plans') and the filtering criteria ('by type and specific vCPU/RAM combination'). It distinguishes itself from broader tools like plan_list_plans, but it does not differentiate from the similarly named plan_search_plans_by_specs 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 guidance about when to use this tool instead of alternatives such as plan_search_plans_by_specs or plan_get_plan. The only usage signal is implied by the summary; no conditions, exclusions, or sibling comparisons are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_get_plans_by_region_availabilityA

Get plans available in a specific region.

Args: region: Region code (e.g., 'ewr', 'lax') format: Output format - 'compact' (default) or 'json'

Returns: Plans available in the specified region

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNocompact
regionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states it returns plans available in the region, which covers the core behavior, but it does not describe the exact structure of the response, whether it includes plan details or just identifiers, or any error conditions. For a read-only operation this is adequate but minimal.

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 concise and well-structured, with the purpose stated upfront, followed by parameter explanations and a returns note. Every sentence adds value with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two parameters and no nested objects, the description covers the essential aspects: what it does, parameters, and returns. Combined with the presence of an output schema, it is sufficient for an agent to invoke correctly. It lacks details on edge cases or relationships to other tools, but these are not critical for a straightforward read operation.

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 explain parameters, and it does: region is described with example codes, and format is described with default value and allowed options. It adds value beyond the raw schema, though it could further elaborate on the difference between 'compact' and 'json' formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get plans available in a specific region') with a specific resource ('plans') and a filter ('by region'). It distinguishes itself from sibling plan tools like plan_list_plans (all plans) and plan_search_plans_by_specs (by specs) through its focus on region availability, though it does not explicitly name any alternative.

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 when to use this toolโ€”when you need plans available in a specific regionโ€”but does not provide explicit guidance on when not to use it or compare it to alternatives such as plan_list_plans or region_find_regions_with_plan. The context is clear but exclusionary criteria are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_list_plansA

List all available plans. Supports compact table format for reduced token usage.

Args: plan_type: Optional plan type filter (e.g., 'all', 'vc2', 'vhf', 'voc') format: Output format - 'compact' (default, table) or 'json' (full details)

Returns: Plans in requested format

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNocompact
plan_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It explains the compact-versus-json output behavior, the default compact format, and the optional plan_type filter. It does not mention pagination, rate limits, or explicitly confirm this is a read-only operation, but those are minor gaps for a simple list tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: a one-sentence purpose, a single high-value note about token usage, and a terse Args/Returns block. Every sentence earns its place with no filler or redundant caveats.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two optional parameters, no enums, and an output schema, the description covers purpose, parameters, defaults, and return format. The only notable gap is lack of explicit routing to sibling tools like plan_list_vc2_plans or plan_search_plans_by_specs, but that is not necessary to invoke this tool correctly.

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 is the only source of parameter meaning. It explains plan_type with concrete examples ('all', 'vc2', 'vhf', 'voc') and format as either compact table or json with full details, adding real value beyond the bare schema. Exact allowed values for plan_type remain slightly open-ended, but the semantics are clear.

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 and object, 'List all available plans,' and immediately scopes the operation with optional plan_type filtering and output format. It is clearly about listing plans, but it does not explicitly distinguish itself from sibling tools like plan_list_vc2_plans or plan_search_plans_by_specs.

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 versus alternatives guidance is given; none of the sibling plan-list or plan-search tools are mentioned. The only usage hint is that compact format reduces token usage, which advises on output representation rather than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_list_vc2_plansA

List VC2 (Virtual Cloud Compute) plans.

Args: format: Output format - 'compact' (default) or 'json'

Returns: VC2 plans in requested format

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNocompact

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry behavioral disclosure. 'List' and 'Returns VC2 plans in requested format' make clear this is a read operation and show that output format is controllable. However, it does not mention pagination, rate limits, authentication requirements, or whether the list is complete.

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 compact and well-structured with Args and Returns sections. Every sentence adds useful information and the core purpose is front-loaded. No filler or redundant restatement of the tool name.

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 tool has an output schema and only one optional parameter, the description covers the essential invocation details. It could be slightly more complete by addressing sibling boundaries, but for a simple list operation the provided information is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is fully responsible for parameter meaning. It explains the format parameter, names the accepted values ('compact' or 'json'), and states the default. This fully compensates for the sparse 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 action and resource: 'List VC2 (Virtual Cloud Compute) plans.' This is clear and distinguishes the tool from generic plan tools by the VC2 qualifier. It does not explicitly contrast with sibling plan listers like plan_list_plans, so slightly 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 when VC2 plans are needed, but it does not explain when to prefer this over plan_list_plans, plan_list_vhf_plans, or plan_list_voc_plans. There is no explicit alternative routing or exclusion guidance, only the category in the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_list_vhf_plansC

List VHF (High Frequency) plans.

Args: format: Output format - 'compact' (default) or 'json'

Returns: VHF plans in requested format

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNocompact

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the output format options ('compact' or 'json') and that it returns VHF plans, but it doesn't describe pagination, filtering capabilities, ordering, or any side effects. For a read-only list operation, the lack of behavioral detail is a moderate gap, but the description does at least clarify the 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the core purpose. The Args and Returns sections are clearly structured and easy to parse. It wastes no words, though the Returns section is somewhat redundant with the purpose 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?

The tool has an output schema, which helps, and only one optional parameter. The description covers the parameter and the basic return format. However, it doesn't explain what a VHF plan is, how this differs from other plan list tools, or any filtering/pagination behavior. For a simple list tool this 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 compensate. It does explain the 'format' parameter: 'Output format - 'compact' (default) or 'json''. This adds meaning beyond the schema, which only shows a default value. However, it doesn't describe what 'compact' vs 'json' actually looks like in the response, and there are no enums in the schema to constrain valid values.

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: 'List VHF (High Frequency) plans.' This clearly identifies the tool's function. However, it doesn't explicitly distinguish it from sibling tools like plan_list_plans, plan_list_vc2_plans, or plan_list_voc_plans, though the 'VHF' qualifier in the name and description provides some differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention that plan_list_plans might be a more general option, or that plan_list_vc2_plans and plan_list_voc_plans are for other plan types. The only usage hint is the format parameter, which is about output format, not about when to choose this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_list_voc_plansB

List VOC (Optimized Cloud) plans.

Args: format: Output format - 'compact' (default) or 'json'

Returns: VOC plans in requested format

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNocompact

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full behavioral disclosure burden. However, it only states 'List' and describes the output format, with no mention of read-only behavior, pagination, authentication needs, or any side effects. This leaves significant behavioral context unspoken.

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 extremely concise and front-loaded with the core purpose, followed by clear sections for arguments and returns. Every sentence adds value, and there is no filler or irrelevant information. The structure is 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?

The tool is a straightforward listing operation with a single parameter and an output schema may be present in structured data. Given this low complexity, the description covers the essential aspects: it states what is returned and the parameter. It does not elaborate on the shape of VOC plans, but that is likely covered by the output schema.

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 description adds meaning to the sole parameter by explicitly documenting the 'format' options ('compact' default or 'json') and their meaning, which the schema (0% description coverage) does not provide. This compensates for the lacking parameter metadata, though it is terse.

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 verb 'List' and a specific resource 'VOC (Optimized Cloud) plans', which is clear. It is specific enough to distinguish from the foundational plan tools, though it does not explicitly name the sibling plan listers (e.g., plan_list_vc2_plans, plan_list_vhf_plans).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternative plan listing tools. It does not mention that this is one of several plan type specific listers, nor does it offer any when-to-use or 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.

plan_search_plans_by_specsA

Search plans by specifications.

Args: min_vcpus: Minimum number of vCPUs min_ram: Minimum RAM in MB min_disk: Minimum disk space in GB max_monthly_cost: Maximum monthly cost in USD format: Output format - 'compact' (default) or 'json'

Returns: Plans matching the criteria in requested format

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNocompact
min_ramNo
min_diskNo
min_vcpusNo
max_monthly_costNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden; it states that the tool returns matching plans in a requested format and documents the default 'compact' format. It does not discuss side effects, permissions, or edge behavior like how no filters are handled, but 'search' implies a read-only lookup and the return 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly structured: a one-line purpose, a compact Args list, and a Returns line. Every sentence carries useful information, and the core purpose 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 read-only search tool with five optional parameters and an output schema, the description covers the parameters, their units, and the return format. The main gap is the lack of navigation among the many plan_* siblings, but the description itself is complete enough for a straightforward filtered search.

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 descriptions cover 0% of the parameters, but the Args section adds meaningful semantics: units (MB, GB, USD), the meaning of each minimum/maximum, and format options ('compact' or 'json'). It leaves some nuance implicit, such as how multiple filters combine, but it substantially compensates for the 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 opens with 'Search plans by specifications,' a specific verb and resource that states the tool's core purpose. It clearly indicates this tool filters plans by resource and cost constraints, but it does not explicitly distinguish it from siblings like plan_get_plan_by_type_and_spec or plan_compare_plans.

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 parameter list ('min_vcpus', 'min_ram', etc.) implies the tool is for finding plans that meet hardware and budget thresholds. However, it gives no explicit when-to-use guidance and no exclusions, such as preferring plan_list_plans for unfiltered listing or plan_get_cheapest_plan for minimum-cost selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

region_find_regions_with_planA

Find all regions where a specific plan is available.

Args: plan_id: The plan ID to search for (e.g., "vc2-1c-1gb")

Returns: List of regions where the plan is available, with region details

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. The verb 'Find' and the 'Returns' section imply a read-only lookup, but the description does not explicitly state non-mutation, behavior for unknown plans, or potential edge cases such as empty results.

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 compact, front-loaded with the core behavior, and uses a clean Args/Returns structure. Every sentence contributes useful information and there is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only lookup, the description is largely complete: the parameter is explained, the return is summarized, and an output schema exists to provide structural details. The main missing piece is differentiation from the many related plan/region sibling tools.

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 add meaning to the bare plan_id string. It does this by explaining that plan_id is 'The plan ID to search for' and by giving a concrete example, 'vc2-1c-1gb'. This is genuinely helpful, though it could go further by explaining how to discover valid plan IDs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, 'Find', a clear resource, 'regions', and a specific selection criterion, 'where a specific plan is available.' It distinguishes itself from generic region listing, though it does not explicitly reference nearby sibling tools like region_get_availability or plan_get_plans_by_region_availability.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: call this when you know a plan_id and need all regions where that plan is offered. However, there is no explicit when-to-use/when-not-to-use guidance and no mention of alternatives, so an agent could still be uncertain about choosing this over the inverse plan/region availability tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

region_get_availabilityA

Get availability information for a specific region.

Args: region_id: The region ID to check availability for (e.g., "ewr", "lax")

Returns: Availability information including: - available_plans: List of available plan IDs in this region

This is useful for checking which instance plans are available in a specific region before creating instances.

ParametersJSON Schema
NameRequiredDescriptionDefault
region_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It describes the return payload ('available_plans: List of available plan IDs') and implies a read-only operation via 'Get'. However, it doesn't address potential error behavior, invalid region handling, or whether an empty list is expected when no plans are available.

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 well-structured with clear Args/Returns sections and a short usage note. It's efficient, though the closing sentence partially repeats the opening purpose. Overall it earns its 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 simple 1-parameter read operation with an output schema, the description covers the essential context: what input is needed, what kind of answer is returned, and when to use it. It doesn't mention edge cases or error conditions, but these are secondary for a straightforward availability check.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description is the sole source for parameter meaning. It defines region_id as 'The region ID to check availability for' and provides concrete examples ('ewr', 'lax'). This fully compensates for the schema's bare type declaration.

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 first sentence clearly states the action ('Get availability information') and the resource ('a specific region'). It implies a targeted lookup rather than a general list, which distinguishes it from broad tools like region_list and related region/plan tools, though it doesn't explicitly name sibling alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a concrete use case: 'useful for checking which instance plans are available in a specific region before creating instances.' This provides clear context for when to call it, though it doesn't explicitly state when not to use it or name alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

region_listA

List all available Vultr regions.

Returns: List of region objects with details including: - id: Region ID (e.g., "ewr", "lax", "nrt") - city: City name - country: Country code - continent: Continent name - options: Available options (e.g., ["ddos_protection"])

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It conveys a read-only enumeration and documents the returned fields, but it does not mention prerequisites, API authentication, rate limits, or any pagination/limits beyond what the output schema presumably covers.

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 compact and front-loaded: one clear sentence followed by a tight bulleted list of return fields. There is no filler, repetition of schema boilerplate, or unnecessary 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 zero-parameter list operation, the description sufficiently identifies the resource and the shape of the returned data, especially since an output schema exists. The only minor gap is the lack of explicit routing to filtered region alternatives.

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 there is no parameter ambiguity to resolve. The description correctly implies a no-input call, and the baseline for zero-parameter tools 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?

States the exact operation, 'List all available Vultr regions', with a clear verb and resource. The word 'all' helps differentiate it from filtered siblings like region_list_by_continent and region_list_with_ddos_protection, though it does not explicitly name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: use this tool when you need the complete set of available regions. It does not explicitly state when to prefer the filtered region siblings, but the 'all available' scope provides a readable use case without misleading exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

region_list_by_continentA

List all regions in a specific continent.

Args: continent: Continent name (e.g., "North America", "Europe", "Asia", "Australia")

Returns: List of regions in the specified continent

ParametersJSON Schema
NameRequiredDescriptionDefault
continentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It indicates a read-only listing operation and states the return type ('List of regions'). However, it does not disclose whether continent matching is exact or case-insensitive, what happens for invalid or unknown continent names, or whether any rate limits or pagination apply. Adequate for a simple lookup but not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured with Args and Returns sections. Every sentence serves a purposeโ€”stating the operation, describing the input, and stating the output. No filler or repetition.

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?

This is a simple one-parameter tool with an output schema available, so the description need not detail return structures. The description covers the essential behavior and parameter. Minor gaps remain around accepted continent name normalization, error handling, and relationship to sibling region tools, but these are not critical for this simple listing operation.

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%, but the description compensates by explaining the parameter as 'Continent name' and providing concrete examples ('North America', 'Europe', 'Asia', 'Australia'). This goes beyond the bare schema, which only names the parameter as a string. It could be improved with a complete enumeration of valid continents, but the meaning is clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the function: 'List all regions in a specific continent.' The verb 'list' plus the resource 'regions' combined with the scope 'by continent' distinguishes this tool from siblings like region_list and region_find_regions_with_plan. An agent can immediately understand what this tool does.

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 when to use this tool: whenever an agent needs to retrieve regions for a particular continent. However, it does not explicitly mention alternatives or exclusions, such as 'for all regions use region_list' or 'for availability use region_get_availability.' The intent is clear but the guidance is not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

region_list_with_ddos_protectionA

List all regions that support DDoS protection.

Returns: List of regions with DDoS protection capability

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the full burden of behavioral disclosure. It only states the purpose and that it returns a list; it does not mention that this is a read-only operation, whether it requires any authentication, or any potential limitations (e.g., rate limits, pagination). The description repeats the purpose in the 'Returns' section without adding new behavioral context, so it offers minimal transparency beyond the obvious.

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 but contains redundancy: the first sentence 'List all regions that support DDoS protection' is essentially repeated in the 'Returns' section 'List of regions with DDoS protection capability'. This wastes space and adds no new information. A single sentence would be more concise. The structure is simple and front-loaded, but the redundancy lowers the score.

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 list tool with an output schema (indicated), the description is mostly sufficient. However, it does not clarify how this tool relates to region_list or other region tools, nor does it mention that it is a filtered subset. Given the sibling context, a brief note such as 'This is a filtered version of region_list that only includes regions with DDoS protection' would improve completeness. The description covers the core purpose but lacks comparative context.

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 description does not need to explain any. The baseline for 0 parameters is 4, and the description does not add or detract from this. It correctly leaves parameter details to the empty schema, so this score 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 clearly states the specific resource ('all regions that support DDoS protection') and the action (list). It distinguishes this tool from sibling tools like region_list (which lists all regions) and region_list_by_continent by adding the DDoS protection filter. The verb 'list' and resource are unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that this tool should be used when the user needs regions with DDoS protection capability, but it does not explicitly state when to use this over alternatives like region_list or region_list_by_continent. There is no mention of scenarios where this tool is not appropriate. The usage is implied from the name and description, but not made explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

registry_createA

Create a new container registry subscription.

Args: name: Name for the container registry plan: Registry plan ("start_up", "business", "premium", etc.) region: Region code for the registry (e.g., "ewr", "lax", "fra") ctx: FastMCP context for resource change notifications

Returns: Created registry information including ID, URN, and configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
planYes
regionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It mentions the ctx parameter and return type but does not disclose side effects such as billing implications, irreversibility, or required permissions. For a mutation tool with zero annotation coverage, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with an Args section and a Returns section, front-loading the purpose. It is concise without unnecessary verbosity, though the inclusion of ctx (not in the schema) adds minor clutter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential parameters and return value, and an output schema exists so return details need not be exhaustive. However, it lacks guidance on retrieving valid plans or regions, and with no annotations, the behavioral context is incomplete. Overall adequate but not comprehensive.

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 schema has 0% description coverage, so the description compensates by explaining each parameter: name, plan, and region, with examples for plan and region. It adds meaning beyond the bare schema definitions, though it does not enumerate all valid plan options or provide full constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new container registry subscription' with a specific verb and resource. It is unambiguous and distinct from sibling tools like registry_update or registry_delete, making the purpose immediately obvious.

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 does not explicitly mention when to use this tool versus alternatives such as registry_update or registry_list_plans. The verb 'Create' implies its use for new registries, but there is no explicit guidance or exclusion, leaving the agent to infer the context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

registry_deleteB

Delete a container registry subscription.

Smart identifier resolution: Use registry name or ID.

Args: registry_identifier: Registry name or ID to delete ctx: FastMCP context for resource change notifications

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
registry_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the operation is a delete (destructive) and mentions 'resource change notifications' via ctx, but it does not disclose whether deletion is irreversible, whether it cascades to associated resources, whether confirmation is required, or what happens to dependent data. For a destructive operation, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose. The 'Smart identifier resolution' note is useful and placed early. The Args/Returns section is a bit redundant with the schema but adds the ctx context. No wasted sentences, though the Returns line is minimal.

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 delete tool with no annotations and no output schema details, the description is incomplete. It doesn't state whether deletion is reversible, what the success confirmation contains, or any side effects. The output schema exists but the description doesn't clarify what 'Success confirmation' means. Given the tool's destructive nature and the large sibling set, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does explain that registry_identifier accepts 'registry name or ID', which adds meaning beyond the bare schema property. However, it doesn't provide format details, examples, or disambiguation rules (e.g., what happens if both name and ID match). The ctx parameter is mentioned but not explained in terms of when it's 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 clearly states the action ('Delete a container registry subscription') and identifies the resource type. It distinguishes itself from sibling tools like registry_create and registry_update by the verb 'delete', and from other delete tools (e.g., db_delete, block_storage_delete) by naming the registry resource. However, it doesn't explicitly contrast with a sibling like registry_get_registry_info, though the verb makes the purpose clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'Smart identifier resolution: Use registry name or ID', which gives some guidance on how to invoke the tool. However, it does not state when to use this tool versus alternatives, nor does it mention any prerequisites or conditions (e.g., cannot delete a registry that has resources attached). The context is implied by the delete verb but not explicitly routed against siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

registry_generate_docker_credentialsA

Generate Docker credentials for container registry access.

Smart identifier resolution: Use registry name or ID.

Args: registry_identifier: Registry name or ID expiry_seconds: Expiration time in seconds (optional, default: no expiry) read_write: Whether to grant read-write access (default: True, False for read-only)

Returns: Docker credentials including username, password, and registry URL

ParametersJSON Schema
NameRequiredDescriptionDefault
read_writeNo
expiry_secondsNo
registry_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full behavioral burden, but it only discloses that it accepts name or ID and returns credentials. It does not mention side effects (e.g., whether existing credentials are invalidated), required permissions, or reversibility. For a credential-generation tool, this is a significant gap, so the score is low.

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 concise and well-structured, with a one-line purpose, a brief note on identifier resolution, and a clean Args/Returns format. It is front-loaded with the purpose and avoids unnecessary details, making it easy for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, the description need not detail return structure, but it does. It covers all parameters and their defaults, and the purpose is clear. However, it lacks guidance on when to use this versus sibling credential tools, and it does not mention any prerequisites or security considerations, so completeness is moderate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no property descriptions (0% coverage), so the description's Args section is the sole documentation for all three parameters. It explains registry_identifier as 'Registry name or ID', expiry_seconds as optional with default, and read_write as a boolean with default and meaning. This fully compensates for the missing schema descriptions, making parameter meaning clear.

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 'Generate Docker credentials for container registry access' with a specific verb and resource, and the Args section clarifies the identifier resolution. It is distinct from siblings like registry_generate_kubernetes_credentials and registry_get_docker_login_command by specifying Docker credentials, so the agent can differentiate without opening other tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives, such as registry_get_docker_login_command or registry_generate_kubernetes_credentials. It implies usage for Docker credential generation but offers no exclusions or conditions. The 'Smart identifier resolution' note is about parameter selection, not tool selection, so guidance is minimal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

registry_generate_kubernetes_credentialsA

Generate Kubernetes credentials for container registry access.

Smart identifier resolution: Use registry name or ID.

Args: registry_identifier: Registry name or ID expiry_seconds: Expiration time in seconds (optional, default: no expiry) read_write: Whether to grant read-write access (default: True, False for read-only) base64_encode: Whether to base64 encode the credentials (default: True)

Returns: Kubernetes secret YAML configuration for registry access

ParametersJSON Schema
NameRequiredDescriptionDefault
read_writeNo
base64_encodeNo
expiry_secondsNo
registry_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses smart identifier resolution, parameter defaults, and the YAML return format, but does not state whether generating credentials rotates or invalidates previously issued credentials, nor any permission requirements. This leaves a meaningful gap for an operation that grants registry access.

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 well-organized with purpose, an identifier-resolution note, an Args list, and a Returns section. It is appropriately sized for a 4-parameter tool with no schema descriptions, though 'Smart identifier resolution' is slightly redundant with the registry_identifier arg line.

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?

Since an output schema exists, the description need not detail the return shape, and it covers parameter semantics and the core use case well. It omits side-effect behavior such as whether existing credentials are invalidated and does not mention required permissions, but for most call scenarios an agent has enough to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description fully compensates with an Args block explaining every parameter: registry_identifier accepts name or ID, expiry_seconds defaults to no expiry, read_write defaults to true with false meaning read-only, and base64_encode defaults to true. This adds substantial meaning beyond the raw 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 action ('Generate Kubernetes credentials') and a resource ('container registry access'), and the return type ('Kubernetes secret YAML configuration') clearly distinguishes it from the sibling registry_generate_docker_credentials. An agent can identify exactly what this tool does 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?

The description provides clear context: it produces Kubernetes secret YAML for registry access, which implies when to use it. However, it does not explicitly mention the direct sibling registry_generate_docker_credentials or state when not to use this tool, leaving the alternative selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

registry_get_docker_login_commandA

Generate Docker login command for easy CLI access.

Smart identifier resolution: Use registry name or ID.

Args: registry_identifier: Registry name or ID expiry_seconds: Expiration time in seconds (optional, default: no expiry) read_write: Whether to grant read-write access (default: True, False for read-only)

Returns: Docker login command and credentials information

ParametersJSON Schema
NameRequiredDescriptionDefault
read_writeNo
expiry_secondsNo
registry_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses that the output is a login command plus credentials information, and that identifier resolution is flexible; the expiry and read_write parameters convey scoping behavior. It does not state whether credentials generation has side effects (e.g., creating persistent credentials) or requires permissions.

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 compact, front-loaded with purpose, and organized into short Args/Returns sections. The only minor redundancy is repeating 'registry name or ID' in both the smart-resolution note and the Args list.

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 generation tool, it covers the required parameter, optional behavior, and return payload, and an output schema exists. The main gap is the missing relationship to the similar sibling tool and side-effect/persistence behavior, but the core call is fully specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description fully compensates: registry_identifier is defined as name or ID, expiry_seconds is marked optional with a default, and read_write explains its default and meaning. This adds real semantic content beyond raw types.

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 action ('Generate Docker login command') and resource ('Docker login' access to a registry), and the smart identifier resolution note clarifies accepted input. It does not explicitly distinguish itself from the similar sibling registry_generate_docker_credentials, 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?

The phrase 'for easy CLI access' gives a clear use case, and the parameter notes describe when to set expiry/read_write. However, it gives no explicit guidance about when to choose this over registry_generate_docker_credentials or other registry tools, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

registry_get_registry_infoB

Get comprehensive registry information including usage and configuration.

Smart identifier resolution: Use registry name or ID.

Args: registry_identifier: Registry name or ID

Returns: Complete registry information with usage statistics and endpoints

ParametersJSON Schema
NameRequiredDescriptionDefault
registry_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral disclosure burden. It does reveal the smart name-or-ID resolution behavior and what the response contains (usage statistics and endpoints). However, it does not state error behavior for a non-existent registry, authentication requirements, or confirm the operation is read-only โ€” 'Get' implies it but never declares it.

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 line, with the smart-resolution behavior placed near the top where an agent will see it. The Args/Returns block is slightly redundant with the schema and output schema, but it carries the useful name-or-ID detail and return summary. No filler โ€” reasonably tight overall.

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 1-parameter getter with an output schema present, the description covers the essential identifier semantics and the high-level return contents. It omits prerequisites, what 'registry' refers to in context, and failure behavior on unknown identifiers. Adequate for the tool's simple contract but 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: it explains the single parameter accepts either a registry name or an ID, adding real meaning beyond the bare 'string' type in the schema. The Args line reinforces the name-or-ID contract. For a 1-param tool this fully compensates for the missing schema descriptions.

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 ('Get comprehensive registry information') and the domain (usage and configuration). The 'get info' framing naturally differentiates it from registry_create/registry_update/registry_delete and the credential-generating siblings, though it never names an alternative explicitly. 'Smart identifier resolution' adds specificity about how the resource is located.

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 nearby siblings like registry_get_docker_login_command, registry_generate_docker_credentials, or registry_generate_kubernetes_credentials โ€” all of which surface registry access information an agent could confuse with this one. No prerequisites, ownership requirements, or conditions for choosing this over an alternative are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

registry_list_plansA

List all available container registry plans.

Returns: List of available plans with pricing and feature details

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the disclosure burden. It communicates a read-only listing behavior and describes the returned content ('pricing and feature details'), which is useful. However, it does not mention potential limitations, such as whether plans are scoped by region or account, or whether any authentication is implied.

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 compact sentences, front-loading the action and resource, then briefly noting the return content. There is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so return structure is covered elsewhere. The description clearly states what the tool returns and there are no inputs to document. Minor context about whether 'all available' means all plans globally or only those available to the current account could improve completeness, but it is not essential for this simple no-parameter 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?

With zero parameters, the schema is trivially complete and the description has no need to explain arguments. The baseline for a zero-parameter tool is 4, and the description adds no redundant parameter information.

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 ('all available container registry plans'), making it clear this tool retrieves container registry plan information. It does not explicitly differentiate itself from sibling tools like plan_list_plans or db_list_plans, but the resource qualifier 'container registry' provides enough distinction.

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 provided on when to use this tool versus other plan-listing siblings. An agent must infer from the name that this is for container registry plans, but there is no explicit 'use this when' or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

registry_updateB

Update container registry plan.

Smart identifier resolution: Use registry name or ID.

Args: registry_identifier: Registry name or ID to update plan: New registry plan ("start_up", "business", "premium", etc.) ctx: FastMCP context for resource change notifications

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
planYes
registry_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description bears full responsibility for behavioral disclosure. It does mention smart identifier resolution and the ctx for resource change notifications, which are useful, but it omits side effects, authentication needs, reversibility of the plan change, or consequences of invalid plan values. For a mutation operation, this is a notable gap.

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 compact and well-structured with clear Args and Returns sections. The 'Smart identifier resolution' line is slightly redundant given the registry_identifier arg description, but it is still useful and non-verbose. No unnecessary prose.

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?

The description does not mention prerequisites (e.g., registry must exist), idempotency, error behavior, or how plan changes affect the registry. More critically, it lists 'ctx' as an argument while the input schema omits it, which will mislead an agent into sending an unrecognized parameter. The existing output schema does not compensate for these 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?

With 0% schema description coverage, the description must explain the parameters, and it does meaningfully. registry_identifier is described as accepting a name or ID, and plan lists example values ('start_up', 'business', 'premium', etc.). The inclusion of ctx (even though not in the schema) adds extra context. However, the 'etc.' is vague and no complete enum is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Update container registry plan.' It is unambiguous and distinct from sibling tools like registry_create, registry_delete, and registry_generate_docker_credentials, though it does not explicitly name alternatives. The 'Smart identifier resolution' note reinforces the core action.

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 choose this tool over alternatives (e.g., registry_list_plans to see plans before updating, registry_create for new registries). The only usage hint is about identifier resolution, which is more parameter semantics than usage context. 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.

reserved_ip_attachA

Attach a reserved IP to an instance.

Args: reserved_ip: The reserved IP address (e.g., "192.168.1.1" or "2001:db8::1") instance_id: The instance ID, label, or hostname (e.g., "web-server", "db.example.com", or UUID) ctx: FastMCP context for resource change notifications

Returns: Success message

Note: The instance must be in the same region as the reserved IP.

ParametersJSON Schema
NameRequiredDescriptionDefault
instance_idYes
reserved_ipYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations provided, so the description bears the full burden of behavioral disclosure. It mentions 'resource change notifications' via the ctx parameter, but does not disclose side effects, reversibility, failure conditions (e.g., if the IP is already attached), or any permissions required. For a mutation operation, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with Args, Returns, and Note sections. It is concise, with no wasted words. The region constraint is placed at the end as a note, which is acceptable. It could be slightly tighter by removing the ctx description, but it remains 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 two-parameter tool, the description covers parameter formats and a regional prerequisite. However, it omits important contextual details such as whether the reserved IP must be unattached, what happens if it is already attached, and the exact success response format. The output schema is not shown, but the description only says 'Success message' without details. These gaps reduce completeness for a mutation operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only string types with no descriptions (0% coverage). The description compensates excellently by giving concrete examples for both parameters: reserved_ip shows IPv4 and IPv6 formats, and instance_id clarifies it can be an ID, label, or hostname with examples. This adds substantial meaning 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 and resource: 'Attach a reserved IP to an instance.' It clearly distinguishes itself from the sibling tool 'reserved_ip_detach' by stating the opposite action. The 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a critical usage constraint: 'The instance must be in the same region as the reserved IP.' This tells the agent when the operation is valid. However, it does not explicitly contrast with alternative tools (e.g., 'use reserved_ip_detach to remove') or state when not to use it, such as when the IP is already attached. The region note is useful but the guidance is incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reserved_ip_convert_instance_ipA

Convert an existing instance IP to a reserved IP.

Args: ip_address: The IP address to convert instance_id: The instance ID, label, or hostname that owns the IP (e.g., "web-server" or UUID) ctx: FastMCP context for resource change notifications label: Optional label for the reserved IP

Returns: Created reserved IP information

This is useful when you want to keep an IP address even after destroying the instance. The IP will be converted to a reserved IP and remain attached to the instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNo
ip_addressYes
instance_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the primary behavioral outcome: 'The IP will be converted to a reserved IP and remain attached to the instance.' It also explains the intended use case (retaining IP after instance deletion). However, it does not mention prerequisites (e.g., IP must be currently assigned) or error conditions, which would be needed for full transparency.

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 well-organized with sections (Args, Returns, use case) and front-loads the purpose. It is not overly verbose, but the inclusion of 'ctx' in the Args list adds noise and is not a schema parameter, reducing overall 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?

The description covers the operation's purpose, parameters, return type, and a practical use case. It lacks explicit prerequisites (e.g., that the IP must be attached to the specified instance) and does not mention potential side effects like billing changes. Given the tool's moderate complexity and absence of annotations, it is fairly complete but not exhaustive.

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. It provides meaningful descriptions for each schema parameter: ip_address ('The IP address to convert'), instance_id ('The instance ID, label, or hostname...' with examples), and label ('Optional label'). This adds value beyond the schema. However, it includes 'ctx' in the Args list, which is not part of the input schema, potentially confusing an agent into passing an unsupported parameter.

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: 'Convert an existing instance IP to a reserved IP.' It clearly distinguishes from sibling tools like reserved_ip_create (creates a new reserved IP) and reserved_ip_attach (attaches an existing reserved IP), making the purpose 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 provides a clear use case: 'This is useful when you want to keep an IP address even after destroying the instance.' This implies when to use it, but it does not explicitly contrast with alternatives (e.g., reserved_ip_create for new IPs) or state when not to use it. Slightly below a 5 because exclusions are missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reserved_ip_createA

Create a new reserved IP in a specific region.

Args: region: The region ID where to reserve the IP (e.g., "ewr", "lax") ctx: FastMCP context for resource change notifications ip_type: Type of IP to reserve - "v4" for IPv4 or "v6" for IPv6 (default: "v4") label: Optional label for the reserved IP

Returns: Created reserved IP information

Example: Create a reserved IPv4 in New Jersey: create(region="ewr", ip_type="v4", label="web-server-ip")

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNo
regionYes
ip_typeNov4

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden for behavioral disclosure. It states that the tool creates a reserved IP and returns the created information, but it doesn't disclose potential side effects such as billing implications, requirement of a valid region, or whether the operation is idempotent. The description doesn't contradict annotations (since there are none), but it offers limited insight beyond the obvious 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?

The description is well-structured with Args, Returns, and Example sections, and it is not overly long. Every section contributes value, especially the example which makes the call pattern concrete. The only minor redundancy is the inclusion of the 'ctx' parameter in Args, which is not present in the schemahol, adding slight noise but not significant 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?

Given the tool's simplicity (3 parameters, 1 required, no nested objects) and the presence of an output schema, the description covers the essential information: parameters with defaults, an example, and a high-level return description. It doesn't mention error handling or preconditions like billing, but for a straightforward create operation, these are less critical. The extraneous 'ctx' arg is a small gap, but overall the agent has enough to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 for the schema's lack of parameter details. It does so thoroughly by explaining each schema parameter: region ('region ID where to reserve the IP, e.g., ewr, lax'), ip_type ('v4 for IPv4 or v6 for IPv6, default v4'), and label ('Optional label'). It also includes an example that maps values to parameters, making the semantics unambiguous.

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 starts with a clear verb and resource: 'Create a new reserved IP in a specific region.' It names the region requirement and provides an example, making it unmistakable that this tool creates a reserved IP. The name itself aligns with the action, and the description explicitly covers the essential inputs.

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 clearly implies usage when a new reserved IP is needed, and the example illustrates a real scenario. It doesn't explicitly mention when not to use it or compare with sibling tools like reserved_ip_attach or reserved_ip_convert_instance_ip, but the create vs. manage distinction is inherently clear from the action and scope. The context of the operation is sufficient for an agent to choose it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reserved_ip_deleteB

Delete a reserved IP.

Args: reserved_ip: The reserved IP address to delete (e.g., "192.168.1.1" or "2001:db8::1") ctx: FastMCP context for resource change notifications

Returns: Success message

Note: The IP must be detached from any instance before deletion.

ParametersJSON Schema
NameRequiredDescriptionDefault
reserved_ipYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the action (delete) but does not disclose any side effects, permission requirements, or reversibility. The note about detachment is useful but doesn't cover other behavioral aspects like whether the operation is deterministic or if there are any consequences for attached resources.

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 succinct, with the key action, parameter explanation, and a critical note about detachment. It is front-loaded with the main purpose. The 'Args' and 'Returns' sections are structured, though some parts could be more concise.

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 gives the essential information: what it does, what parameter to provide, and a prerequisite, as well as the return type (success message). Given that it's a simple delete operation with one parameter, and the existence of an output schema, it is adequately complete, though it doesn't mention error scenarios or edge cases.

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 description explains the parameter 'reserved_ip' with examples ('192.168.1.1' or '2001:db8::1'), which adds meaning beyond the schema's simple string type. However, the schema coverage is 0%, and the description does not provide exhaustive details, but the single parameter is well-documented with examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delete a reserved IP' with the resource specified (reserved_ip) and the action (delete). It is distinct from sibling tools like reserved_ip_attach, reserved_ip_detach, etc., which have different verbs. The example clarifies the format of the IP address.

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 includes a note: 'The IP must be detached from any instance before deletion.' This provides a prerequisite and implies when it's appropriate to use this tool. However, it doesn't explicitly mention alternatives or when not to use it, though the sibling set makes the purpose clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reserved_ip_detachB

Detach a reserved IP from its instance.

Args: reserved_ip: The reserved IP address to detach (e.g., "192.168.1.1" or "2001:db8::1") ctx: FastMCP context for resource change notifications

Returns: Success message

ParametersJSON Schema
NameRequiredDescriptionDefault
reserved_ipYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full disclosure burden. It only states the action and that it returns a success message; it doesn't note prerequisites (e.g., the IP must currently be attached), idempotency, reversibility, or side effects beyond a mention of resource change notifications.

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?

Approximately four short lines, with the action front-loaded. The Args/Returns structure is scannable; the only minor redundancy is describing 'ctx' in Args when it is not part of the input 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?

For a one-parameter mutating tool with no annotations, the description is minimum viable: it gives the action and parameter format. It lacks usage context, preconditions, and behavioral side effects that would make selection and invocation fully safe.

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 input schema is just a bare string with 0% coverage, and this description compensates by naming the parameter and giving IPv4/IPv6 example formats. It also introduces a context argument not in the schema, but the main parameter semantics are clear.

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 ('Detach') on a specific resource ('reserved IP') and the relationship to an instance. This makes the operation clear and distinguishable from sibling tools like attach/delete at a basic level, 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?

Contains no guidance on when to use this tool versus reserved_ip_attach, reserved_ip_delete, or reserved_ip_convert_instance_ip. The reader must infer the appropriate usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reserved_ip_list_attachedB

List all attached reserved IPs.

Returns: List of reserved IPs that are attached to instances, including the instance ID they're attached to

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the burden. It discloses the output includes instance IDs, which is useful. But it does not mention any read-only or side-effect behavior, filtering, or lack of parameters. Since it's a list operation, the description 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a concise two-part statement: a one-sentence title and a brief return description. It is front-loaded with the main purpose and includes the key detail about instance IDs. No fluff, though the 'Returns:' format could be more compact.

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 it's a simple list tool with no parameters, the description is mostly complete. However, it does not mention any potential limitations like pagination, or what 'attached' means exactly. With an output schema present, the return structure is presumably defined, so the description's job is lighter. Still, for a zero-param list tool, it covers the essentials.

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?

No parameters exist, so there are no parameter semantics to add. With 0 parameters, the baseline is 4, but because the description adds no additional semantic context (e.g., what 'attached' means or any scope), it provides minimal value beyond the fact it's a list. Schema coverage is 100% trivially. Score 3 reflects that the description is clear but adds little beyond the name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists attached reserved IPs, and clarifies they are attached to instances including the instance ID. This is specific enough to distinguish from reserved_ip_list_unattached, though it does not explicitly name 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: use this when you need attached reserved IPs, contrasting with unattached implicitly. But it does not explicitly state when to use this versus other reserved IP tools, nor mention any exclusions. It provides basic context but lacks clear routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reserved_ip_list_by_regionA

List all reserved IPs in a specific region.

Args: region: The region ID to filter by (e.g., "ewr", "lax")

Returns: List of reserved IPs in the specified region

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the behavioral disclosure burden, but 'List' and 'Returns' make the read-only, no-side-effect nature reasonably clear. It does not cover edge behavior such as pagination, invalid region IDs, or ordering, though the presence of an output schema mitigates the return-format gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences plus a minimal Args/Returns section, with the core purpose front-loaded. Every sentence earns its place and no word 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?

For a single-required-parameter list tool with an output schema, the description covers the essential semantics and return type. It loses one point only because it does not reference the related attached/unattached list variants to help an agent select among them when the request is for a subset.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema only specifies region as a string, so the description's clarification that it is a region ID to filter by, with concrete examples 'ewr' and 'lax', adds essential meaning. This fully compensates for the 0% schema description coverage.

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 first sentence, 'List all reserved IPs in a specific region,' names a specific verb (list), resource (reserved IPs), and filter scope (region). This distinguishes it from the sibling tools reserved_ip_list_unattached and reserved_ip_list_attached, which target subsets rather than all reserved IPs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the usage context: use when you need every reserved IP in a region. It does not explicitly state when to prefer this over reserved_ip_list_unattached or reserved_ip_list_attached, nor does it list any exclusions or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reserved_ip_list_unattachedA

List all unattached reserved IPs.

Returns: List of reserved IPs that are not attached to any instance

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It indicates a read-only operation via 'List' and adds 'all' to suggest completeness, but it does not mention pagination, sorting, or potential behavior such as empty results. There are no obvious side effects, but the lack of any safety signal or additional context keeps this at a mid score.

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 sentences, but the second sentence ('Returns: List...') largely repeats the first sentence's content. It is still efficient and front-loaded, but the redundancy prevents a perfect score.

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 that this is a zero-parameter list operation with an output schema present, the description is sufficient for an agent to understand the purpose and expected result. It does not need to explain parameters or return shaping, as those are covered elsewhere. It is complete enough for a tool of this simplicity.

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)Skip justification. With schema coverage at 100% and no parameters to describe, the baseline is 4. The description correctly omits parameter information because none exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') with a precise resource ('reserved IPs') and a clear scope ('unattached'), distinguishing it from siblings like reserved_ip_list_attached and reserved_ip_list_by_region. An agent can determine exactly what this tool does without inferring anything.

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?

There is no explicit guidance on when to use this tool versus alternatives such as reserved_ip_list_attached or reserved_ip_list_by_region. The usage is implied by the word 'unattached,' but the description does not state exclusion criteria or when another list tool would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reserved_ip_updateA

Update a reserved IP's label.

Args: reserved_ip: The reserved IP address (e.g., "192.168.1.1" or "2001:db8::1") label: New label for the reserved IP ctx: FastMCP context for resource change notifications

Returns: Success message

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYes
reserved_ipYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It clearly states the mutation (update label) and the success return, and it mentions ctx is used for resource change notifications. However, it does not disclose side effects, whether the update can occur while the IP is attached, or if the operation is reversible, leaving some behavioral ambiguity.

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 compact and front-loaded: the action is stated first, followed by focused Args and Returns sections with no filler. Each line adds information about invocation or outcome. The only minor noise is ctx, which is not in the input schema, but it is short and informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter update tool this is mostly adequate, and output schema presence means return details need no explanation. However, there is no guidance on prerequisites, when to use versus the many other reserved_ip tools, or behavior when the label is unchanged or the IP is not found, so an agent has to infer some context.

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?

Input schema coverage is 0%, and the description compensates well by explaining reserved_ip as the reserved IP address with both IPv4 and IPv6 examples, and label as the new label. It does not add constraints such as label format or length, but it gives enough meaning for correct invocation of both parameters.

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 begins with a specific, unambiguous action: 'Update a reserved IP's label.' It names the resource (reserved IP) and the exact attribute being modified (label), clearly distinguishing it from sibling reserved_ip_create, reserved_ip_delete, reserved_ip_attach, and reserved_ip_detach operations. An agent can tell what this tool does 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 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 prefer this tool over alternatives, when not to use it, or any prerequisites such as the reserved IP needing to exist. The context of 'when you need to change a label' is implied only by the name and first sentence, with no explicit routing to siblings or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

snapshot_createA

Create a snapshot from an instance.

Args: instance_id: The instance ID, label, or hostname (e.g., "web-server", "db.example.com", or UUID) description: Description for the snapshot (optional)

Returns: Created snapshot information

Note: Creating a snapshot may take several minutes depending on the instance size. The snapshot will appear with status 'pending' initially.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNo
instance_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the burden of disclosing behavior, and it does so by noting that creation 'may take several minutes' and that the snapshot initially appears with status 'pending.' This is a meaningful behavioral disclosure beyond the simple create action, though it stops short of explaining the full lifecycle or failure modes.

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 well-structured into Args, Returns, and Note sections, with every sentence adding useful information. The async timing warning and pending-state behavior earn their place without padding.

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 two-parameter snapshot creation tool, the description covers the required identifier formats, the optional description field, the return type, and the key behavioral caveat (long-running operation with pending status). An output schema exists, so the description need not exhaustively document the return shape. It provides what an agent needs to invoke the tool correctly and set expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description fully compensates by documenting both parameters: instance_id can be an ID, label, or hostname with examples, and description is explicitly marked optional with its purpose explained. This adds meaning that the bare schema does not provide.

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 pairing, 'Create a snapshot from an instance,' which clearly states the operation and its source. This also differentiates it from sibling tool snapshot_create_from_url, which creates snapshots from a URL rather than an instance. The parameter examples reinforce that the input is an instance identifier.

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 conveys the intended use case through 'from an instance,' but it does not explicitly name alternatives like snapshot_create_from_url or state when not to use this tool. There is no direct when/when-not guidance, so the usage context is 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.

snapshot_create_from_urlB

Create a snapshot from a URL.

Args: url: The URL of the snapshot to create (must be a valid snapshot URL) description: Description for the snapshot (optional)

Returns: Created snapshot information

Note: The URL must point to a valid Vultr snapshot file.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It does state the return value and the URL validity constraint, which is helpful. However, it is silent on permissions, synchronous vs asynchronous behavior, side effects, cost implications, and failure 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?

The description is organized with Args, Returns, and Note sections, and the main action is front-loaded. It is concise, though there is minor redundancy between the url argument note and the final note about valid snapshot files.

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 two-parameter tool with an output schema, the description covers the required input, the optional parameter, and the special URL constraint. It lacks usage-alternative context, which keeps it from being fully complete, but nothing essential for invoking it 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 description coverage is 0%, so the description must compensate. The Args section adds real meaning: 'url' is required and must be a valid snapshot URL, and 'description' is optional. This is materially more useful than the raw schema, which only declares their types.

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 first sentence, 'Create a snapshot from a URL,' names a specific action and resource. The note further clarifies that the URL must point to a valid Vultr snapshot file. It does not explicitly contrast with the sibling 'snapshot_create' tool, so it misses the top score but remains clearly scoped.

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 instead of snapshot_create or other snapshot operations. It also does not mention prerequisites, alternatives, or exclusions beyond the URL-validity note. The agent must infer 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.

snapshot_deleteA

Delete a snapshot.

Args: snapshot_id: The snapshot ID or description (e.g., "backup-2024-01" or UUID)

Returns: Status message confirming deletion

Warning: This action cannot be undone!

ParametersJSON Schema
NameRequiredDescriptionDefault
snapshot_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden for behavior. It explicitly warns 'This action cannot be undone', which is a critical irreversible destructive behavior, and it states the return type is a status message. It does not discuss permissions or failure cases, but the key safety property 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, well-organized, and free of filler. It uses an Args/Returns/Warning structure that is easy to scan, and every sentence adds useful information, including a practical example and an irreversible-action warning.

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 delete tool with no annotations and an output schema, the description covers the essential details: what to pass, the expected status return, and the irreversible nature. It doesn't mention edge cases like what happens when a snapshot ID does not exist, but the core calling contract is complete enough for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only says snapshot_id is a string, but the description adds real meaning: it accepts either a snapshot ID or a human-readable description, and gives concrete examples like 'backup-2024-01' or an UUID. This is helpful semantic guidance 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 and resource, 'Delete a snapshot', making the operation unmistakable. It also distinguishes itself from sibling snapshot_create, snapshot_create_from_url, and snapshot_update by the action and resource scope.

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 phrase 'Delete a snapshot' clearly conveys when this tool should be used: whenever a snapshot needs to be removed. It doesn't explicitly name alternatives such as snapshot_create or snapshot_update, but the delete-only scope and lack of exclusions give sufficient operational context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

snapshot_updateA

Update a snapshot description.

Args: snapshot_id: The snapshot ID or description (e.g., "backup-2024-01" or UUID) description: New description for the snapshot

Returns: Status message confirming update

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYes
snapshot_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the full burden. It does disclose the return shape ('Status message confirming update') and the quirky identifier resolution ('snapshot ID or description, e.g. backup-2024-01 or UUID'). But it does not say whether the previous description is fully overwritten, whether the change is irreversible, or whether any 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, organized as Purpose / Args / Returns with no filler. Each line earns its place, including the useful example for snapshot_id and the return-format note.

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 two-parameter update tool, this is nearly complete: it covers purpose, both parameter semantics, and the return shape, which an output schema would also cover. Minor omissions such as overwrite/reversibility caveats keep it from a 5.

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 fully โ€” and it does for both parameters: snapshot_id clarifies it accepts either a human-friendly name or a UUID with an example, and description explains what the new value means. The only gap is lack of constraints such as maximum description length.

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 opening line 'Update a snapshot description' states a specific verb and resource, and the scope is narrower than the sibling tools (snapshot_create, snapshot_delete, snapshot_create_from_url). An agent can immediately distinguish which snapshot operation this is without inspecting 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than explicit: 'Update a snapshot description' strongly suggests this is for changing the description field, and no other snapshot-update sibling exists. However, there is no explicit guidance about when to choose this over create/delete, no prerequisites, and no stated exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ssh_key_createA

Create a new SSH key.

Args: name: Name for the SSH key ssh_key: The SSH public key (e.g., "ssh-rsa AAAAB3NzaC1yc2...") ctx: FastMCP context for resource change notifications

Returns: Created SSH key information including: - id: SSH key ID - name: SSH key name - ssh_key: The public SSH key - date_created: Creation date

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
ssh_keyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It states that a new SSH key is created and describes the returned fields, but it does not disclose behavior around duplicate keys, name conflicts, authentication requirements, or whether the operation overwrites. The core side effect is clear, but deeper behavioral context is missing.

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 well-structured with Args and Returns sections and contains no filler. The inclusion of the ctx parameter, which is not in the input schema, adds minor clutter, but overall the description is appropriately sized 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 create tool, the description covers the required parameters, their meaning, and the return payload despite the output schema already existing. It lacks explicit usage guidance and edge-case information, but the low complexity and clear parameter descriptions make it reasonably 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. It adds meaningful semantics: 'Name for the SSH key' for the name parameter and a concrete example format for ssh_key ('ssh-rsa AAAAB3NzaC1yc2...'). This goes well beyond the bare schema and helps an agent understand expected input format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new SSH key' with a specific verb and resource, and the Args/Returns sections make the operation unambiguous. Among sibling tools like ssh_key_list, ssh_key_get, ssh_key_update, and ssh_key_delete, the create intent is immediately distinguishable.

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 provided about when to use this tool versus alternatives, such as checking for existing keys with ssh_key_list or modifying with ssh_key_update. There are no context cues, preconditions, or exclusion statements to help an agent decide between this and related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ssh_key_deleteB

Delete an SSH key.

Args: ssh_key_id: The SSH key ID or name (e.g., "my-laptop-key" or UUID) ctx: FastMCP context for resource change notifications

Returns: Status message confirming deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
ssh_key_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose that deletion triggers 'resource change notifications' via ctx and that it returns a status message, but it never states the destructive/irreversible nature of the operation or what happens on a non-existent key. For a mutation tool with zero annotation coverage, this is a meaningful gap.

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 with the core action 'Delete an SSH key,' followed by compact args and returns sections. No wasted sentences, though the inclusion of the ctx arg and returns details is moderately useful.

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?

An output schema exists, so return values are covered. For a single-parameter delete tool, the description documents ssh_key_id and ctx adequately. However, it lacks usage guidance and explicit behavioral warnings about destructiveness, leaving the definition only partially 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. It explains that ssh_key_id accepts either an ID or a name ('my-laptop-key' or UUID), which is valuable beyond the bare 'string' schema type. It also documents the ctx parameter, which is absent from the input schema. This adds real 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?

The description states a specific verb and resource: 'Delete an SSH key.' This clearly distinguishes it from siblings like ssh_key_list, ssh_key_get, ssh_key_create, and ssh_key_update by the delete verb. However, it doesn't explicitly name those siblings, so it's clear but not maximally differentiated.

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. It doesn't mention prerequisites (e.g., that the key must exist first, or when one would prefer ssh_key_update over delete), and provides no exclusions. 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.

ssh_key_getA

Get details for a specific SSH key.

Args: ssh_key_id: The SSH key ID or name (e.g., "my-laptop-key" or UUID)

Returns: SSH key details including name, public key, and creation date

ParametersJSON Schema
NameRequiredDescriptionDefault
ssh_key_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the burden. The 'Get' verb implies a safe read with no side effects, and the Returns section specifies what data will be available (name, public key, creation date). It doesn't discuss failure modes or permissions, but for a simple retrieval these are not required.

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?

Compact docstring-style format with separate Args and Returns sections. Every line adds useful information, with no filler or redundancy.

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 one parameter, an output schema, and a simple read operation, the description covers input format and output content. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description fully documents the single parameter, clarifying it accepts either an ID or name and giving an example. This exceeds schema information and leaves no ambiguity.

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 verb 'Get' + resource 'details for a specific SSH key'. The singular 'specific' distinguishes it from ssh_key_list, and the operation type contrasts with create/update/delete siblings. Clear and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternative guidance. The description implies this is the lookup for a single key, but it never names ssh_key_list or otherwise contrasts with sibling tools. Usage must be inferred from the tool name and argument.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ssh_key_listA

List all SSH keys in your Vultr account.

Args: format: Output format - 'compact' (default, one key per line) or 'json' (full details)

Returns: All SSH keys in the requested format

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNocompact

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses output format behavior ('compact' one key per line, 'json' full details), which is useful, but it does not explicitly state that this is a read-only operation, mention pagination or ordering, or discuss any response limitations. For a simple list tool, this 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured with a clear opening sentence followed by Args and Returns sections. Every sentence adds information; there is no fluff, and the most important purpose statement is front-loaded.

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?

Given the tool's low complexity, single optional parameter, and presence of an output schema, the description is complete enough for an agent to invoke it correctly. It explains the parameter options and return format, and the sibling list clarifies how it differs from other SSH key tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only the parameter name, type, and default with 0% description coverage. The description fully compensates by explaining the two valid enum-like values, their meanings, and which is the default. This gives the agent everything needed to populate the format parameter correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'List all SSH keys in your Vultr account.' This clearly distinguishes it from sibling tools like ssh_key_get, which retrieves a specific key, and makes the tool's 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usageโ€”when you need all SSH keysโ€”but does not explicitly state when to prefer this over ssh_key_get, ssh_key_create, or other key-related tools. There are no exclusions or alternative routing hints, leaving the agent to infer selection from the name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ssh_key_updateB

Update an existing SSH key.

Args: ssh_key_id: The SSH key ID or name (e.g., "my-laptop-key" or UUID) ctx: FastMCP context for resource change notifications name: New name for the SSH key (optional) ssh_key: New SSH public key (optional)

Returns: Updated SSH key information

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
ssh_keyNo
ssh_key_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the operation is an update and returns updated SSH key information, but it doesn't disclose whether the update is partial or full replacement, whether the ssh_key must be a valid public key format, whether the operation is idempotent, or any side effects like invalidating existing connections. The 'ctx' parameter hints at resource change notifications but the description doesn't explain what that means for the caller.

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 compact and front-loaded with the core purpose. The Args section is well-organized and each parameter gets a brief explanation. The Returns line is useful. Minor waste: the ctx parameter description is vague and the docstring format is slightly redundant with the schema, but overall it's 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?

The tool has an output schema, so return values are covered. The description covers the required parameter and both optional parameters. However, for a mutation tool with no annotations, it lacks important context: no mention of prerequisites (key must exist), no error conditions (invalid key ID, invalid public key format), no side effects (does updating the key break existing SSH sessions?), and no guidance on whether both optional fields can be updated in one call. The sibling list shows ssh_key_get and ssh_key_list exist, so the description could have referenced them for lookup before update.

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 does explain ssh_key_id (ID or name with example), name (new name, optional), and ssh_key (new public key, optional), which adds meaning beyond the bare schema. However, it doesn't clarify the format of the ssh_key parameter (e.g., OpenSSH format, key type), whether name and ssh_key can be updated independently or together, or what happens if both are omitted. The ctx parameter is mentioned but not explained in terms of how the caller should use it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Update' and the resource 'an existing SSH key', which distinguishes it from ssh_key_create and ssh_key_delete. It also lists the updatable fields (name, ssh_key), making the tool's purpose unambiguous. However, it doesn't explicitly differentiate from ssh_key_get or ssh_key_list, though the verb 'update' makes that distinction obvious.

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: you need an existing SSH key ID and can optionally provide a new name or public key. It doesn't explicitly state when to use this tool versus alternatives like ssh_key_create (for new keys) or ssh_key_delete (for removal), but the sibling names and the 'Update' verb make the primary use case clear. No explicit exclusions or alternative routing guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

startup_script_create_common_startup_scriptA

Create a common startup script from templates.

Args: script_type: Type of script ('docker_install', 'nodejs_install', 'security_updates', 'ssh_setup') ssh_port: SSH port to use for 'ssh_setup' script type (default: 22)

Returns: Created startup script details

ParametersJSON Schema
NameRequiredDescriptionDefault
ssh_portNo
script_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It explicitly states the primary action ('Create') and returns ('Created startup script details'), which is helpful. However, it does not disclose side effects beyond creation, such as whether the script is immediately usable, if it overwrites anything, or what permissions or prerequisites 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?

The description is tight and well-structured: a one-sentence summary, then an Args list, then a Returns line. Every statement adds value and there is no filler. It is a textbook docstring shape, though it remains compact enough to be scanned quickly by an agent.

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 create tool with an output schema present, the description covers the key invocation details: the purpose, the parameter values, and what is returned. The only real gap is contextual guidance about when this tool fits among the many startup_script siblings and how this differs from a general create_startup_script. That gap is meaningful but does not block correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description fully compensates. It lists all valid script_type values ('docker_install', 'nodejs_install', 'security_updates', 'ssh_setup') and explains the conditional nature of ssh_port, including its default. This goes well beyond the bare schema and makes both parameters actionable with no ambiguity.

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, and method: 'Create a common startup script from templates.' The qualifiers 'common' and 'from templates' partially distinguish it from the sibling startup_script_create_startup_script, but the sibling is not named and the description does not explicitly clarify when the 'common' variant is preferred over a regular create.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like startup_script_create_startup_script, startup_script_update_startup_script, or startup_script_list_startup_scripts. The enumerated script_type values imply the templates available, but there is no explicit 'use this when...' or 'rather than...' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

startup_script_create_startup_scriptB

Create a new startup script.

Args: name: Name for the startup script script: The script content script_type: Type of script ('boot' or 'pxe')

Returns: Created startup script details

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
scriptYes
script_typeNoboot

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden of behavioral disclosure. It states that a resource is created and that details are returned, but it does not mention permissions, side effects, naming constraints, script size limits, or whether the boot/pxe type affects lifecycle behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose. The Args and Returns sections are compact, and every line adds useful information without unnecessary filler.

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 is adequate for a simple create operation and covers the required parameters plus return details. However, it lacks guidance on which sibling create tool to use and does not disclose any behavioral constraints or prerequisites, which is a meaningful gap given the absence 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?

The schema has zero description coverage, but the description compensates by explaining each parameter: name, script, and script_type. It also clarifies the allowed script_type values ('boot' or 'pxe'), though it does not reinforce that script_type has a default value or describe any constraints on script content.

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: 'Create a new startup script.' It also distinguishes itself from update/get/list/delete startup script siblings, but it does not differentiate itself from the sibling startup_script_create_common_startup_script, so there is some ambiguity about which create path to choose.

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 explicit guidance about when to use this tool versus alternatives like startup_script_create_common_startup_script or the various boot/pxe list tools. The usage context is only implied by the name and the 'Create' verb, with no exclusions or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

startup_script_delete_startup_scriptA

Delete a startup script. Smart identifier resolution: use script name or UUID.

Args: script_identifier: The startup script name or ID to delete

Returns: Success message

ParametersJSON Schema
NameRequiredDescriptionDefault
script_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the destructive action ('Delete'), the identifier resolution behavior, and the return type. However, it doesn't mention permanence, failure behavior, or whether scripts referenced by instances can be deleted, leaving some important behavioral traits unspecified.

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 brief and well-structured, with the main action front-loaded and separate sections for identifier resolution, arguments, and returns. Every sentence adds value; no fluff or repetition of schema details.

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 deletion tool with one parameter and an output schema, the description covers the essential calling context. Minor gaps remain: no mention of edge cases like deleting boot/PXE scripts or behavior when the script is attached to an instance. Still, it is sufficiently complete for straightforward use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema only specifies a string for script_identifier, but the description compensates fully: it explains that parameter is a startup script name or ID and that smart identifier resolution accepts both. For a single parameter this is excellent documentation 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 ('Delete') and resource ('startup script'), clearly distinguishing it from sibling tools like startup_script_list_startup_scripts, startup_script_get_startup_script, and startup_script_update_startup_script. The smart identifier resolution note adds useful scope without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use vs alternatives is provided, but the purpose is obvious from the first sentence and tool name. It doesn't mention when to prefer list/get/create/update tools, nor prerequisites like ensuring the script is not in use. The identifier resolution note gives some usage context but doesn't cover exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

startup_script_get_startup_scriptA

Get details of a specific startup script. Smart identifier resolution: use script name or UUID.

Args: script_identifier: The startup script name or ID

Returns: Startup script details

ParametersJSON Schema
NameRequiredDescriptionDefault
script_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It does disclose one useful behavior: 'Smart identifier resolution' accepts either a script name or UUID. It also signals read-only intent via 'Get details,' but it does not address not-found behavior, errors, or other 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 compact and front-loaded with the tool's purpose, followed by the resolution behavior and argument/return summary. There is slight redundancy between 'Get details' and 'Returns: Startup script details,' but overall every line 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 single-parameter getter with an output schema present, the description covers the essential invocation detail: the identifier can be a name or UUID. It does not explain how to discover the identifier or what happens on ambiguous or missing matches, but these are minor for this tool's simplicity.

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 input schema only specifies a string, so the description adds meaningful semantics by stating that script_identifier is 'the startup script name or ID' and that resolution supports names or UUIDs. This compensates for the 0% schema description coverage, though it lacks examples or explicit format constraints.

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 specific verb and resource: 'Get details of a specific startup script.' The word 'specific' distinguishes it from list and search siblings, and 'details' separates it from content-focused tools. It does not explicitly name or contrast a sibling, so it falls short of full 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?

Usage is implied rather than explicit: call this when you need details of a single startup script and have its name or UUID. There is no direct guidance about when to choose this over startup_script_list_startup_scripts or startup_script_search_startup_scripts, and no exclusions or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

startup_script_get_startup_script_contentA

Get the content of a startup script. Smart identifier resolution: use script name or UUID.

Args: script_identifier: The startup script name or ID

Returns: Script content

ParametersJSON Schema
NameRequiredDescriptionDefault
script_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosing behavior. It reveals smart identifier resolution (name or UUID) and says the return value is script content, but it does not disclose error behavior, permission requirements, output encoding, or whether content is returned whole or truncated. Acceptable but minimal for a read-only getter.

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 compact and well-organized with clear 'Args' and 'Returns' sections, front-loaded purpose, and zero filler. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter getter with an output schema, the description provides enough to invoke the tool correctly: what the parameter accepts and what the return is. It lacks error context and selection guidance, but those overlap with other dimensions; overall it is complete for the tool's simplicity.

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 schema only defines script_identifier as a string with 0% description coverage. The description compensates by explaining that the identifier can be a script name or UUID, which adds meaningful semantic guidance beyond the raw schema type.

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: 'Get the content of a startup script.' The word 'content' clearly distinguishes it from the sibling tool 'startup_script_get_startup_script', which presumably returns metadata, though it does not explicitly name the 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?

No guidance is given on when to use this tool versus related startup script tools such as list, get, create, or search. The note about smart identifier resolution concerns how to supply the argument, not when to choose this tool over alternatives, so usage context is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

startup_script_list_boot_scriptsB

List boot startup scripts.

Returns: List of boot startup scripts

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure, but it only restates the listing action and return type. It does not explicitly state that this is a read-only operation, whether it returns user-specific or all boot scripts, or whether pagination or filtering exists. The verb 'List' implies read-only, but the description adds little beyond that.

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 front-loaded, but it is redundant: the 'Returns: List of boot startup scripts' line essentially repeats the first sentence. The second line does not earn its place, so while there is no bloat, the structure is not maximally effective.

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 list operation with an output schema, the basic call context is present and easy to understand. However, the presence of closely related sibling list tools makes the missing guidance about which script category this covers a meaningful gap. An agent could call the wrong sibling without clarification.

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 and 100% schema description coverage, so there is nothing for the description to explain about parameters. According to the rubric, a no-parameter tool gets a baseline of 4, and no param-related gap exists.

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 and resource: 'List boot startup scripts.' It names a specific resource type ('boot startup scripts') that helps distinguish it from sibling tools like startup_script_list_startup_scripts and startup_script_list_pxe_scripts. However, it does not explain what distinguishes a boot startup script from another startup script, so the differentiation is only implicit in the 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 alternatives such as startup_script_list_startup_scripts or startup_script_list_pxe_scripts. The description provides no context, prerequisites, or exclusions, leaving the agent to infer the right choice from names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

startup_script_list_pxe_scriptsB

List PXE startup scripts.

Returns: List of PXE startup scripts

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It only states the action and return type, but does not mention pagination, ordering, or any data volume considerations. For a list operation, this is minimal but not harmful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and to the point, with the purpose front-loaded. The 'Returns:' section is somewhat redundant since an output schema exists, but it's not verbose.

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, the description is adequate. The output schema provides return structure, and the name is clear. However, it could mention any filtering or pagination behavior to be 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 has zero parameters, so there are no parameter semantics to explain. The description correctly indicates no parameters are needed, which is fully sufficient.

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 ('PXE startup scripts'), which is clear. It distinguishes from siblings like startup_script_list_startup_scripts and startup_script_list_boot_scripts by the 'PXE' qualifier, though it doesn't explicitly contrast 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 tool name and description imply a read-only operation, which is clear enough for a simple listing tool. However, there is no explicit guidance on when to use this over similar tools like startup_script_list_boot_scripts, and no note on prerequisites or filters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

startup_script_list_startup_scriptsB

List all startup scripts.

Returns: List of startup scripts

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden of behavioral disclosure. It only states the action without explaining scope, filtering, ordering, or pagination behavior. It conveys a read-only property but adds no detail about what 'all' encompasses or potential limitations.

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 first sentence is concise and front-loaded, but the 'Returns: List of startup scripts' line merely restates the resource and adds little value. It is a complete but not fully efficient usage of 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?

An output schema exists and this is a simple no-parameter list operation, so the description is mostly sufficient. However, it omits any explanation of how this listing differs from the two other startup_script list variants (boot, PXE) and the search tool, which can lead an agent to select the wrong sibling.

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 and the schema coverage is 100%, so there is nothing for the description to add. Baseline 4 applies: with no parameters, the description cannot be expected to provide parameter-level semantics.

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 and resource: 'List all startup scripts.' This distinguishes it from the generic 'get' and 'search' siblings, but it does not explicitly differentiate it from startup_script_list_boot_scripts or startup_script_list_pxe_scripts, 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like startup_script_search_startup_scripts, list_boot_scripts, or list_pxe_scripts. An agent cannot determine whether 'all startup scripts' means all types or why it should choose this over the search variant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

startup_script_search_startup_scriptsB

Search startup scripts by name or content.

Args: query: Search term to look for in script names or content

Returns: List of matching startup scripts

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only states that it searches by name or content and returns matching scripts, but does not disclose matching semantics (partial versus exact, case sensitivity), pagination, result format details, or whether it filters by any other dimension. The description provides minimal additional behavior beyond the obvious read-only search nature.

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, stating the action immediately. It includes a structured Args/Returns layout that is easy to parse, with no redundant phrasing. It could be more concise by trimming the 'Args' label, but overall it is 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 simple one-parameter search tool, the description covers the core action and parameter meaning, and the output schema presumably documents the return list. However, it omits search behavior specifics (e.g., whether search is case-insensitive, partial matches, or if it searches all script types), which an agent may need to set correct expectations.

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 schema has 0% description coverageโ€”no description for the 'query' parameterโ€”so the description must compensate. It does so effectively by explaining that query is a 'search term to look for in script names or content', which gives meaningful semantic context beyond the raw type/string. This directly addresses the parameter's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Search startup scripts by name or content', which is a specific verb with a resource and search scope. It distinguishes from siblings like list_startup_scripts or get_startup_script by the search semantics, but does not explicitly name alternatives to differentiate them further.

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 sibling startup_script tools such as list_startup_scripts, get_startup_script, or get_startup_script_content. No exclusions or alternative recommendations are provided, leaving the agent to infer that search is for locating scripts by term rather than by ID or listing all.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

startup_script_update_startup_scriptA

Update a startup script. Smart identifier resolution: use script name or UUID.

Args: script_identifier: The startup script name or ID name: New name for the script script: New script content

Returns: Updated startup script details

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
scriptNo
script_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry behavioral disclosure. It clearly communicates an update action and lists the mutable fields, plus notes the return value. It does not explain permissions, partial-update semantics, concurrency, or what happens when only the identifier is supplied.

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 focused and front-loaded, with a one-line purpose followed by compact relay-like usage. Every section stays on topic and does not repeat schema boilerplate, while the Returns note acknowledges the response without going into unnecessary detail.

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 a simple update operation and the output schema exists, so detailed return value description is not needed. However, for a mutation with no annotations, the definition leaves some gaps around permission requirements, optional field semantics, and what kind of identifier resolution is attempted first. It is sufficient for a straightforward call but not comprehensive.

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 compensates by explaining that script_identifier may be a name or ID, and defining name and script as new values. This adds genuine meaning beyond the raw schema, though it does not clarify optional-field interaction or whether at least one update field is required.

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 'Update a startup script,' clearly stating the verb and resource. It also adds the smart identifier resolution detail, which helps distinguish this from create/delete/get startup-script siblings, though it does not explicitly compare against them by name.

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 conveys that this is for modifying an existing startup script and mentions that the script identifier can be a name or UUID. However, it does not explicitly state when to choose this tool over create, get, or list variants, nor does it describe prerequisite conditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

storage_gateway_add_exportA

Add a new export to a storage gateway.

Smart identifier resolution: Use gateway label or ID.

Args: gateway_identifier: Gateway label or ID export_config: Export configuration with keys: - label: Export label - vfs_uuid: VFS UUID to export - pseudo_root_path: Pseudo root path (e.g., "/") - allowed_ips: List of allowed IP addresses

Returns: Created export information

ParametersJSON Schema
NameRequiredDescriptionDefault
export_configYes
gateway_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the transparency burden. It does disclose the core creation behavior ('Add a new export'), identifier flexibility, and the returned output. However, it does not mention permissions, idempotency, failure behavior, or what changes when an export is created.

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 compact and well-structured: a one-line purpose, an identifier note, an Args block, and a Returns line. Every sentence adds information; there is no filler or repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a nested export_config and no schema descriptions, this is largely complete: it describes both parameters, their semantics, and the output. It falls short only by not indicating which export_config keys are required or optional.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates well by explaining that gateway_identifier accepts a label or ID and by enumerating export_config's keys: label, vfs_uuid, pseudo_root_path, and allowed_ips. This adds substantial meaning beyond the opaque additionalProperties object.

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 says 'Add a new export to a storage gateway,' which is a specific verb plus a specific resource. This clearly separates it from gateway-level sibling operations like storage_gateway_create and from storage_gateway_delete_export.

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 purpose implies when the tool should be used, but the description does not explicitly provide when-to-use guidance, exclusions, or alternative tool names. 'Smart identifier resolution' is helpful input guidance, not usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

storage_gateway_createB

Create a new storage gateway.

Args: label: Label for the storage gateway (for easy identification) gateway_type: Type of storage gateway (e.g., "nfs4") region: Region code where the gateway will be created (e.g., "ewr", "lax") export_config: Export configuration with keys: - label: Export label - vfs_uuid: VFS UUID to export - pseudo_root_path: Pseudo root path (e.g., "/") - allowed_ips: List of allowed IP addresses network_config: Network configuration with keys: - primary: Dict with ipv4_public_enabled, ipv6_public_enabled, vpc (optional) tags: Optional list of tags to apply

Returns: Created storage gateway information

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
labelYes
regionYes
gateway_typeYes
export_configYes
network_configYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the tool creates a resource but doesn't disclose side effects, required permissions, idempotency, or what happens on failure. It also doesn't mention whether the gateway is immediately active or requires additional steps. This is a significant gap for a creation 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 description is well-structured with clear sections for args and returns, and it's reasonably concise. The parameter list is detailed but not bloated. It could be slightly tighter by removing the 'Returns' section since an output schema exists, but the structure is clear and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main parameters and return value, but with no annotations and an output schema that is not shown in detail, it's missing behavioral context like permissions, idempotency, or post-creation steps. For a complex creation tool with nested objects, 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.

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. It does a good job explaining each parameter, including nested structures for export_config and network_config, and provides examples for gateway_type and region. However, it doesn't fully specify all possible keys or constraints for nested objects, and tags is only briefly mentioned.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a new storage gateway, with a specific verb and resource. It lists the key parameters and their purposes, which helps distinguish it from sibling tools like storage_gateway_update or storage_gateway_add_export. However, it doesn't explicitly differentiate itself from those siblings, so it loses a point.

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 showing required parameters and examples, but it doesn't explicitly state when to use this tool versus alternatives like storage_gateway_update or storage_gateway_add_export. There's no mention of prerequisites or conditions that would make this the right choice, 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.

storage_gateway_deleteB

Delete a storage gateway.

Smart identifier resolution: Use gateway label or ID.

Args: gateway_identifier: Gateway label or ID to delete

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
gateway_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral disclosure burden. It states that the tool deletes a storage gateway but does not disclose irreversibility, impact on exports or data, permissions required, or whether the operation can be undone. 'Returns: Success confirmation' is not behavioral transparency for a destructive operation.

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 compact, front-loaded with the operation, and includes only the essential parameter and return information. Each sentence contributes a distinct piece of value with no 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?

For a destructive mutation with no annotations, the description is too thin. It omits any warning about cascade effects, irreversibility, requirements, or confirmations that a user or agent should check before invoking the delete. The output schema does not compensate for missing destructive-operation context.

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 input schema provides no description and coverage is 0%, so the description must explain the parameter. It does this well by stating that gateway_identifier accepts either a gateway label or ID and noting smart identifier resolution. This gives the agent enough semantic understanding to select an appropriate identifier, though it does not detail disambiguation rules or identifier lookup.

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 and resource: 'Delete a storage gateway.' It is clear and distinguishes this from deleting exports or other resources, though it does not explicitly contrast itself with siblings like storage_gateway_delete_export. The first sentence mostly restates the tool name but adds enough clarity to be usable.

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 choose this tool over alternatives, no prerequisites, and no warnings about dependencies. The only usage-related note, 'Use gateway label or ID,' is about the parameter, not about when to call delete versus an update or export deletion. An agent would have to infer the appropriate context entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

storage_gateway_delete_exportB

Delete an export from a storage gateway.

Smart identifier resolution: Use gateway label or ID.

Args: gateway_identifier: Gateway label or ID export_id: Export ID to delete

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
export_idYes
gateway_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states the operation and returns a success confirmation. It does not mention potential irreversible changes, any permissions required, or what happens if the export is in use. The description adds minimal behavioral context beyond the action itself.

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 very concise with no redundant sentences. It includes a brief example of the Args format and a Returns line, which is efficient and front-loaded with the action and key 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?

Given that this is a simple delete operation with two parameters and an output schema (though not detailed), the description covers the essential invocation details. However, it lacks information on edge cases (e.g., what happens if export doesn't exist, or idempotency). Since output schema exists, return details are not required, but behavioral risks are not addressed.

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%, but the description gives a short line for each parameter: 'Gateway label or ID' and 'Export ID to delete'. This adds meaning beyond the schema's raw types (string/integer), clarifying that gateway_identifier is a label or ID. This is helpful but not detailed (e.g., ID format, label constraints).

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 verb 'delete' and resource 'export from a storage gateway', which clearly indicates the action and target. It is distinguishable from siblings like 'storage_gateway_delete' (which likely deletes the gateway itself) and 'storage_gway_add_export' (which adds exports), so the purpose 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?

The description does not explain when to use this tool versus alternatives or any prerequisites (e.g., need to check the export exists, or that the gateway must be in a certain state). It provides no context on when deletion is appropriate or what might block it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

storage_gateway_get_cost_analysisB

Get cost analysis and projections for a storage gateway.

Smart identifier resolution: Use gateway label or ID.

Args: gateway_identifier: Gateway label or ID

Returns: Detailed cost analysis and projections

ParametersJSON Schema
NameRequiredDescriptionDefault
gateway_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description mentions 'Smart identifier resolution' which is a useful behavioral trait, but it doesn't disclose whether this is a read-only operation, whether it requires specific permissions, whether it hits external APIs, or what the cost analysis includes. For a tool with no annotations, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the main purpose. The 'Args' and 'Returns' sections are clearly structured and easy to parse. It wastes no words, though the 'Returns' section is vague ('Detailed cost analysis and projections') and could be more specific without adding much 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?

The tool has an output schema, so return values are partially covered by structured data. However, the description doesn't explain what 'cost analysis and projections' includes, whether it's a snapshot or time-series, or how the identifier resolution behaves in edge cases. For a read-only analysis tool with one parameter, this is adequate but leaves room for an agent to misunderstand the output's 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 description coverage is 0%, so the description must compensate. It does explain the single parameter 'gateway_identifier' as 'Gateway label or ID', which adds meaning beyond the bare schema type 'string'. However, it doesn't provide examples, format constraints, or how to disambiguate labels from IDs. With only one parameter, the description is adequate but not rich.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Get cost analysis and projections for a storage gateway.' This is a specific verb and resource, and it distinguishes itself from sibling tools like storage_gateway_get_gateway_status or storage_gateway_optimize_gateway_configuration. However, it doesn't explicitly name a sibling alternative, so it doesn't fully 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 description implies usage context by mentioning 'Smart identifier resolution: Use gateway label or ID.' This tells the agent what input to provide, but it doesn't explicitly state when to use this tool versus alternatives like storage_gateway_get_gateway_status or storage_gateway_optimize_gateway_configuration. There is no exclusion guidance, so it's adequate but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

storage_gateway_get_gateway_statusA

Get comprehensive status information for a storage gateway.

Smart identifier resolution: Use gateway label or ID.

Args: gateway_identifier: Gateway label or ID

Returns: Detailed status including health, exports, and network configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
gateway_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses the smart identifier resolution behavior (label or ID accepted) and the return scope (health, exports, network configuration), which is useful. However, it doesn't disclose whether this is a read-only operation, potential errors, or any side effects, though the name and 'Get' verb imply a safe read.

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 compact and front-loaded with the core purpose. The smart identifier resolution note and return summary are useful and concise. It could be slightly more structured with explicit sections, but every sentence earns its place and there is no fluff.

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 read tool with an output schema present, the description is largely complete. It covers what the tool does, what the parameter means, and what the return includes. It doesn't mention error cases or when to prefer sibling status tools, but the output schema and simple parameter reduce the need for more.

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. It does: it explains the single parameter gateway_identifier accepts a gateway label or ID, adding meaning beyond the bare string type in the schema. This fully covers the parameter's semantics, though it doesn't provide examples or format 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 clearly states the tool retrieves comprehensive status information for a storage gateway, with a specific verb ('Get') and resource ('storage gateway'). It distinguishes itself from sibling tools like storage_gateway_get_mount_instructions and storage_gateway_get_cost_analysis by focusing on health, exports, and network configuration, though it doesn't explicitly name a sibling alternative.

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 noting it returns health, exports, and network configuration, which suggests when an agent needs gateway status. However, it doesn't explicitly state when to use this tool versus alternatives like storage_gateway_list_by_status or storage_gateway_get_mount_instructions, nor does it provide exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

storage_gateway_get_mount_instructionsA

Get NFS mount instructions for a storage gateway.

Smart identifier resolution: Use gateway label or ID.

Args: gateway_identifier: Gateway label or ID

Returns: NFS mounting instructions and configuration examples

ParametersJSON Schema
NameRequiredDescriptionDefault
gateway_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It does clarify that the tool resolves either a label or an ID ('Smart identifier resolution') and that it returns instructions and configuration examples, which are useful. However, it does not mention side effects, read-only nature, authentication requirements, or error behavior. For a read-only getter, this is acceptable but not rich; thus a 3.

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 concise and well-structured: a single clear purpose sentence followed by a compact 'Args' and 'Returns' section. The most critical information (the purpose) is front-loaded, and there is no extraneous text. Every sentence adds value, making it an exemplary concise description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter, the description provides all necessary information: the parameter meaning, the return type (mounting instructions and configuration examples). It relies on the output schema for structural details, which is appropriate. It could have mentioned prerequisites like gateway existence, but this is a minor omission for a read-only getter, so a 4 is justified.

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 input schema only defines a string with no description. The description adds meaning by stating 'gateway_identifier: Gateway label or ID', which clarifies the accepted formats and resolves ambiguity. Since the schema coverage is 0%, the description successfully compensates by explaining the parameter, earning a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and a clear resource ('NFS mount instructions for a storage gateway'). It also introduces the 'Smart identifier resolution' behavior, which distinguishes it from other storage_gateway tools that modify or list. This is enough for an agent to select this tool unambiguously among siblings like storage_gateway_create or storage_gateway_get_gateway_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the usage: when the agent needs NFS mount instructions for a storage gateway, call this tool. However, it does not explicitly state when to prefer this over alternatives, nor does it mention any prerequisites or exclusions. The absence of any comparative guidance lowers the score to a 3, since usage is implied but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

storage_gateway_list_by_regionB

List storage gateways in a specific region.

Args: region: Region code to filter by (e.g., "ewr", "lax", "fra")

Returns: List of gateways in the specified region

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the operation is a list (read-only) and returns gateways, but it doesn't disclose pagination, sorting, whether the region filter is exact or partial, or what happens with invalid region codes. The return type is mentioned but not detailed.

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 concise and front-loaded with the main purpose. The Args/Returns structure is clear and easy to scan. It earns its place without unnecessary fluff, though the Returns section is somewhat redundant with the output 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?

The tool is simple with one parameter and an output schema, so the description is mostly adequate. However, it lacks guidance on edge cases like invalid regions, empty results, or how the output is structured beyond 'list of gateways'. Given the output schema exists, the return format is covered, but behavioral details like error handling are 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 0%, so the description must compensate. It does explain the 'region' parameter with examples ('ewr', 'lax', 'fra'), which adds meaning beyond the bare schema. However, it doesn't specify the expected format (e.g., case sensitivity, full names vs codes) or whether the region must match a known region list.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists storage gateways filtered by region, with a specific verb and resource. It distinguishes itself from siblings like storage_gateway_list_by_type and storage_gateway_list_by_status by focusing on region filtering, though it doesn't explicitly name 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?

The description implies usage context by specifying the region parameter and its purpose, but it doesn't explicitly state when to prefer this tool over alternatives like storage_gateway_list_by_type or storage_gateway_list_by_status. The context is clear enough for an agent to infer the use case, but explicit guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

storage_gateway_list_by_statusC

List storage gateways by status.

Args: status: Status to filter by (e.g., "active", "pending")

Returns: List of gateways with the specified status

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only says it returns a list of gateways, but does not explicitly state that this is a read-only operation, describe potential errors, or mention any side effects or safety guarantees.

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 concise, front-loads the purpose, and uses clear 'Args:' and 'Returns:' sections. There is no unnecessary filler or redundancy. Each sentence adds value, and the format is easy to scan.

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 the presence of multiple storage_gateway_list_by_* siblings, the description should mention how it differs or when to use it. It also does not describe the allowed status values or whether listing is limited/paginated. The output schema exists, but the description alone leaves important context gaps for an agent to choose this tool 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?

The schema has 0% coverage, so the description must compensate. It explains the status parameter as 'Status to filter by' and gives examples ('active', 'pending'), which adds meaning beyond the bare string type in the schema. However, it does not specify allowed values or formats, 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?

Description clearly states 'List storage gateways by status' with a specific verb and resource. It provides enough to understand the core action, though it doesn't explicitly differentiate from siblings like storage_gateway_list_by_region or storage_gateway_list_by_type, relying on the tool name for that distinction.

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 provided about when to use this tool instead of the sibling list tools (by region, by type). An agent has no information to decide between them other than the tool name, and there are no exclusions, prerequisites, or context clues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

storage_gateway_list_by_typeB

List storage gateways by type.

Args: gateway_type: Gateway type to filter by (e.g., "nfs4")

Returns: List of gateways of the specified type

ParametersJSON Schema
NameRequiredDescriptionDefault
gateway_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only states that a list of gateways of the specified type is returned, with no information about pagination, exact-match behavior, edge cases like empty results, or error conditions. Minimal behavioral context beyond the obvious.

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 compact, front-loaded with the primary purpose, and organized into clear Args/Returns sections. Every sentence adds useful information; there is no repetition or filler.

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 list operation with an output schema present, the core behavior is adequately covered. However, valid gateway type values and comparison with sibling list-by-region/status tools are missing, leaving some practical context incomplete.

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 input schema only declares gateway_type as a string, but the description's Args section adds meaning by defining it as a filter and giving an example value ('nfs4'). This meaningfully compensates for the 0% schema description 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 action on a resource ('List storage gateways') with a clear filter dimension ('by type'). It is easy to distinguish from sibling list tools by name pattern, though it does not explicitly name them. No ambiguity about what the tool returns.

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 instead of storage_gateway_list_by_region or storage_gateway_list_by_status. The description implies the tool is for type-based filtering, but does not explain how to discover valid types or when the other filters would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

storage_gateway_optimize_gateway_configurationB

Analyze and provide optimization recommendations for a storage gateway.

Smart identifier resolution: Use gateway label or ID.

Args: gateway_identifier: Gateway label or ID

Returns: Configuration analysis and optimization recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
gateway_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It implies a read-only analysis operation through 'Analyze' and 'recommendations', and adds the useful behavioral trait that labels can be used in addition to IDs. However, it does not explicitly confirm that no modifications are made or mention any 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 compact and front-loaded, with clear Args and Returns sections. Minor redundancy exists between the opening sentence and the Returns line, but no filler or unnecessary detail is present.

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 analysis tool with an output schema, the description covers the essential invocation information. It lacks explicit guidance on prerequisites or error scenarios, but given the low complexity and the presence of an output schema, the description is adequately 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. It does so by explaining that `gateway_identifier` accepts a label or an ID, adding meaningful semantic detail beyond the bare string type in the input 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 clearly states a specific action ('Analyze and provide optimization recommendations') on a specific resource ('storage gateway'). The purpose is distinct from sibling tools like storage_gateway_get_gateway_status or storage_gateway_get_cost_analysis, though it does not explicitly name 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given for when to use this tool versus other storage_gateway analysis or management tools. The only usage-related note is about identifier resolution ('Use gateway label or ID'), which is a parameter detail rather than contextual selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

storage_gateway_updateA

Update storage gateway configuration.

Smart identifier resolution: Use gateway label or ID.

Args: gateway_identifier: Gateway label or ID to update label: New label for the gateway tags: New tags for the gateway

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
labelNo
gateway_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It does add useful context: 'Smart identifier resolution: Use gateway label or ID' and 'Returns: Success confirmation'. But it does not disclose whether tags are replaced or merged, what happens when optional fields are omitted, or any side effects of updating a gateway, so behavioral transparency is only moderate.

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 well-structured: a one-line overview, a useful smart-identifier note, a compact Args list, and a Returns line. It is front-loaded and has no filler, though the Returns line is slightly redundant given an output schema exists.

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 three-parameter update with an output schema, the description covers the identifier resolution and every parameter, which is sufficient for basic invocation. The main missing context is update semantics and routing among related storage_gateway_* tools, but these gaps do not make correct invocation ambiguous.

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. It explains all three parameters: gateway_identifier accepts a label or ID, label is the new label, and tags are the new tags. This adds real meaning beyond the bare schema, though the exact update behavior for tags remains somewhat ambiguous.

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 'Update storage gateway configuration' and enumerates the specific fields being changed (label, tags). It is distinguishable from create/delete storage gateway tools, though it does not explicitly contrast with storage_gateway_optimize_gateway_configuration, 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 reasonably implied by the verb 'Update' and the parameter descriptions ('New label', 'New tags'), and the smart identifier resolution note gives a helpful prerequisite. However, the description never explicitly says when to prefer this tool over storage_gateway_create or other storage gateway alternatives, leaving the agent to infer the selection context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subaccount_analyze_costsA

Analyze costs and usage patterns for a subaccount.

Args: subaccount_id: The subaccount ID, name, email, or UUID analysis_days: Number of days to analyze (default: 30)

Returns: Detailed cost analysis including projections and recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_daysNo
subaccount_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden of behavioral disclosure. 'Analyze' and the Returns line indicate a read-only analysis that produces projections and recommendations. It does not explicitly state that no resources are modified or mention permission requirements, but the core non-mutating behavior is reasonably clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the purpose, and organized into clear Args and Returns sections. There is no filler or redundant restatement of the tool name.

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 analysis tool with an output schema present, the description covers accepted identifier formats, the analysis time window, and the general nature of the response. It could add explicit read-only or permission context, but nothing essential for invoking the tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 meaningfully documents both parameters: subaccount_id accepts an ID, name, email, or UUID, and analysis_days is defined as a number of days with a default of 30. This goes well beyond the bare string/integer 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 opens with a specific action ('Analyze costs and usage patterns') and a clear resource scope ('for a subaccount'). It is not a tautology and is clear in its intent, though it does not explicitly differentiate it from sibling tools like subaccount_monitor_usage or billing_analyze_spending_trends.

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 when a subaccount-level cost/usage analysis with projections and recommendations is needed. However, it does not state when not to use the tool or name alternatives, leaving the agent to infer selection from the name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subaccount_createA

Create a new subaccount.

Args: email: Email address for the subaccount (required) subaccount_name: Display name for the subaccount (optional) subaccount_id: Custom identifier for the subaccount (optional)

Returns: Created subaccount information

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes
subaccount_idNo
subaccount_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It communicates that the operation creates a subaccount, but it does not mention permissions required, uniqueness constraints on email or subaccount_id, whether the operation can fail for existing accounts, or any side effects beyond creation. This is a significant gap for a 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-front-loaded with a one-sentence purpose, followed by an Args list and a Returns note. Every line earns its place, and there is no redundant or promotional language.

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 three-parameter creation tool with an output schema, the description is mostly adequate: parameters are documented and the return is indicated. However, the lack of usage guidance and behavioral context, especially around permission and uniqueness requirements, leaves the agent without important decision-making information.

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. It adds meaningful semantics for all three parameters: email, display name, and custom identifier, and marks email as required. It lacks constraints like format or uniqueness, but the basic meaning is clear and covers every parameter.

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 'Create a new subaccount,' a specific verb and resource that immediately distinguishes it from the sibling subaccount tools, which are all find/analyze/setup/monitor operations. The parameter list reinforces the creation purpose without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives such as subaccount_find_by_email or subaccount_setup_permissions. There are no exclusions, prerequisites, or conditions. The intended use is only implied by the tool name and the word 'Create.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subaccount_find_by_emailA

Find subaccounts by email address.

Args: email: Email address to search for

Returns: List of matching subaccounts

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It conveys a read-style search operation that returns a list of matches, which is helpful. However, it does not disclose edge cases such as exact vs. partial matching, whether no matches return an empty list, pagination, or authentication expectations, leaving meaningful behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well structured with Args and Returns sections. Every sentence contributes useful information, and no filler is present, making it easy to scan and 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?

Given the tool's low complexity (one string parameter), the presence of an output schema, and the short return description, this is nearly complete for correct invocation. It names the search key and the output shape, though it would benefit from usage guidance and edge-case notes.

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 input schema gives no description coverage for parameters, so the description must supply meaning. It correctly explains that the 'email' parameter is the email address to search for, which is sufficient for an agent to fill the required argument. It could add matching semantics, but for a single simple field it compensates well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Find') and resource ('subaccounts') with an explicit search key ('email address'), making the tool's purpose instantly clear. It also naturally differentiates from the sibling 'subaccount_find_by_name' by indicating the lookup field.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as subaccount_find_by_name or subaccount_create. There are no exclusions, scenarios, or prerequisites stated, so an agent receives no context for choosing this tool over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subaccount_find_by_nameA

Find subaccounts by name (partial match).

Args: name: Name to search for (case-insensitive partial match)

Returns: List of matching subaccounts

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals key behaviors: the search is case-insensitive, allows partial matches, and returns a list of results. This goes beyond a bare statement of purpose and helps set expectations for the operation.

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 exceptionally concise and well-structured: it opens with the core purpose, then lists the single argument with its semantics, and closes with the return type. Every sentence earns its place; there is no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only search tool with an output schema, the description covers the essential information: what to pass and what to expect. The only minor gap is that it does not explicitly state the scope of the search (e.g., all subaccounts), but that is reasonably implied by the tool name and context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite the schema having 0% description coverage for its single parameter, the description fully compensates by explaining the 'name' parameter: it is the search term, matched case-insensitively and partially. This is exactly the semantic detail an agent needs.

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 begins with a specific verb and resource: 'Find subaccounts by name (partial match).' It clearly states the matching method (partial match) and distinguishes the tool from its sibling subaccount_find_by_email, which searches by a different attribute.

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 about when to use this tool versus alternatives. The sibling subaccount_find_by_email exists, but the description does not mention it or provide any conditions for choosing one over the other. The user is left to infer that this tool is for name-based searches.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subaccount_get_balance_summaryA

Get a summary of all subaccount balances and charges.

Returns: Summary of subaccount financial status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. 'Get' and 'Returns' signal a read-only retrieval, and it states the scope ('all subaccount balances and charges'), but it does not describe aggregation behavior, permission requirements, or whether the data is real-time. No contradiction with annotations exists.

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 front-loaded, which is appropriate for a zero-parameter tool. However, the 'Returns: Summary of subaccount financial status' line merely restates the first sentence and adds no new information, so not every line 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-parameter retrieval tool, this description is sufficient: the output schema covers return details, and the resource scope is stated. The absence of usage guidance and broader subaccount context keeps it from being fully complete, but an agent can safely invoke this tool with what is provided.

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 input schema is empty, so the schema already conveys that no arguments are needed. The description adds useful scope by saying the summary covers 'all' subaccounts, which explains why no parameterization is required.

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 ('Get') and a distinct resource ('summary of all subaccount balances and charges'), which differentiates it from sibling tools like subaccount_get_status_overview and subaccount_analyze_costs. It is clear, though it does not explicitly name siblings and leaves mild scope ambiguity in 'all subaccount balances.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: call this when you need an overall subaccount financial summary. However, it gives no explicit when-to-use guidance, no exclusions, and no pointers to alternatives such as subaccount_monitor_usage or subaccount_analyze_costs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subaccount_get_status_overviewB

Get an overview of all subaccount statuses and key metrics.

Returns: Comprehensive overview of subaccount health and status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It says the tool returns a 'comprehensive overview' but doesn't disclose what specific statuses or metrics are included, whether it aggregates across all subaccounts, whether it requires any special permissions, or what the output structure looks like. The phrase 'comprehensive overview' is vague and doesn't add meaningful behavioral detail beyond the name.

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 front-loaded with the main purpose, but the 'Returns:' section is redundant with the first sentence and adds no new information. It's not bloated, but the second line is filler that doesn't 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 zero-parameter read-only overview tool, the description is mostly adequate, but it lacks specificity about what 'statuses and key metrics' actually means. The output schema exists and may compensate for return-value details, but the description doesn't clarify the scope (e.g., all subaccounts in the account) or any filtering/aggregation behavior. It's minimally viable but leaves an agent guessing about the exact nature of the overview.

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 there is no parameter semantics burden on the description. The schema coverage is 100% (vacuously), and the description correctly implies no inputs are needed. Baseline 4 is appropriate for a no-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 states a specific verb ('Get') and resource ('overview of all subaccount statuses and key metrics'), which clearly identifies the tool's function. It distinguishes itself from sibling tools like subaccount_find_by_email and subaccount_get_balance_summary by focusing on statuses and health metrics, though it doesn't explicitly name 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?

The description implies this is the go-to tool for a high-level subaccount health overview, but it doesn't explicitly state when to use it versus alternatives like subaccount_get_balance_summary or subaccount_monitor_usage. There is no exclusion guidance or mention of prerequisites, but the context is reasonably clear for a zero-parameter overview tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subaccount_monitor_usageB

Monitor usage across all subaccounts and identify potential issues.

Returns: List of subaccounts with usage monitoring data and alerts

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral disclosure burden. It states a monitoring action and a return type, but it does not explain what counts as a potential issue, whether alerts are precomputed, whether the operation is strictly read-only, or if there are any rate or cost implications.

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 scoped sentences with no filler; the action and return summary are front-loaded. Every word contributes to understanding what the tool does.

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 tool with an output schema, the description is mostly sufficient, but 'potential issues' is vague and there is no indication of how this tool relates to billing or status-overview siblings. An agent may not know what kind of issues are surfaced or when monitoring 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 accepts zero parameters and schema coverage is 100%, so there are no parameter documentation gaps. The description adds useful scope context with 'across all subaccounts,' which is sufficient for a parameterless 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 action ('Monitor usage') and resource ('all subaccounts'), and adds the goal of identifying potential issues. It is clear, but it does not explicitly distinguish itself from sibling tools like subaccount_analyze_costs or subaccount_get_status_overview, 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?

No guidance is given on when to use this tool versus alternatives such as subaccount_get_balance_summary, subaccount_analyze_costs, or subaccount_get_status_overview. The intended context is only implied by the word 'monitor'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subaccount_setup_permissionsB

Configure permissions for a subaccount.

Args: subaccount_id: The subaccount ID, name, email, or UUID permissions: List of permissions to grant (e.g., ["instances", "dns", "billing"])

Returns: Permission configuration status

ParametersJSON Schema
NameRequiredDescriptionDefault
permissionsYes
subaccount_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It only says 'Configure permissions' with a vague return statement, but does not disclose side effects (e.g., whether existing permissions are overwritten), required authentication/authorization, or idempotency. The description leaves the mutation behavior entirely unspecified.

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 well-structured, with a clear title line, bulleted Args, and Returns. It avoids fluff and front-loads the main purpose. The only slight inefficiency is repeating the parameter names in the Args section, which is acceptable.

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 tool with an output schema, the description is mostly sufficient but leaves gaps: it does not specify valid permission values, the effect on existing permissions, or any prerequisites. An agent might call it incorrectly without knowing the available permissions or the semantics of the operation. The presence of an output schema helps, but the description still omits critical operational details.

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 provides useful clarifications: subaccount_id can be ID, name, email, or UUID; permissions is a list with an example. However, it does not enumerate valid permission values or explain the format beyond the example, leaving the agent to guess what strings are acceptable.

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 'Configure permissions for a subaccount' clearly, using a specific verb and object. It distinguishes this from sibling tools like subaccount_create or subaccount_find_by_name, which have different purposes. The Args and Returns sections further clarify what it 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?

No guidance is given on when to use this tool versus alternatives. The sibling list includes many permission-related tools (e.g., user_setup_standard_user, collection_update_collection_permissions), but the description does not explain why one would choose this tool over those, nor mention prerequisites or context like whether it replaces or appends permissions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

user_add_ip_whitelist_entryA

Add an IP address or subnet to a user's whitelist.

Args: user_id: The user ID (UUID) or email address subnet: The IP address or subnet to add (e.g., "8.8.8.0", "192.168.1.100") subnet_size: The subnet size (e.g., 24 for /24, 32 for single IP) ctx: FastMCP context for resource change notifications

Returns: Status message confirming addition

ParametersJSON Schema
NameRequiredDescriptionDefault
subnetYes
user_idYes
subnet_sizeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears the full burden of behavioral disclosure. It adds some value by noting that it returns a status message and mentions ctx for resource change notifications. However, it omits important behavioral traits like permission requirements, duplicate handling, idempotency, and validation rules for subnet_size.

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 purpose, followed by an organized Args section and a Returns line. It is concise and scannable, though the inclusion of ctx (not present in the input schema) is slightly extraneous and could cause minor confusion.

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 mutation tool with three parameters, the description is mostly complete: it explains each parameter and the return type. However, it lacks validation constraints, duplicate-entry behavior, and any explicit relationship to sibling whitelist tools, so an agent must make assumptions when deciding whether an entry already exists or how to undo the operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 clearly explains all three schema parameters: user_id accepts a UUID or email, subnet includes example IP/CIDR-like values, and subnet_size includes examples like 24 for /24 and 32 for single IP. This is exactly the kind of semantic detail an agent needs that the schema lacks.

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 and resource: 'Add an IP address or subnet to a user's whitelist.' This clearly distinguishes the tool from its siblings like user_get_ip_whitelist, user_get_ip_whitelist_entry, and user_remove_ip_whitelist_entry. No ambiguity about what action is performed.

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 its purpose statement but does not explicitly state when to choose this tool over alternatives such as user_remove_ip_whitelist_entry or user_get_ip_whitelist_entry. There is no when-to-use guidance, prerequisites, or exclusion criteria, so an agent must infer usage from the action name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

user_analyze_user_permissionsB

Analyze a user's current permissions and provide recommendations.

Args: user_id: The user ID (UUID) or email address to analyze

Returns: Analysis of user permissions including: - current_permissions: List of current permissions - permission_analysis: Analysis of each permission - security_recommendations: Security recommendations - suggested_changes: Suggested permission changes

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It says the tool 'analyzes' and 'provides recommendations,' which strongly implies a read-only operation, but it never explicitly states that permissions are not modified or that no side effects occur. This is a meaningful gap for a permissions-related tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a clear one-sentence purpose followed by labeled Args and Returns sections. Every line adds useful information, and the format makes the input and output easy for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with an output schema, the description covers the input format and key return fields well. However, it lacks explicit read-only/side-effect disclosure and usage guidance against similar permission-related sibling tools. These omissions leave the description incomplete for an agent making a fully informed call.

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 compensate. It does by explaining that user_id accepts either a UUID or an email address, adding real semantic value beyond the bare 'string' type. It does not provide examples or explain how to locate the user ID, but for a single parameter this is adequate.

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 ('Analyze a user's current permissions') and a clear resource ('user permissions'), with an additional recommendation component. It is distinguishable from siblings like user_list_available_permissions because it targets current permissions and outputs recommendations, though it does not explicitly name any 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 guidance on when to use this tool versus alternatives such as user_get, user_list_available_permissions, or subaccount_setup_permissions. The purpose implies it is for auditing/recommending permission changes, but the description provides no exclusions, prerequisites, or comparison to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

user_createB

Create a new user.

Args: email: User's email address first_name: User's first name last_name: User's last name password: User's password ctx: FastMCP context for resource change notifications ctx: FastMCP context for resource change notifications api_enabled: Enable API access for this user service_user: Create as service user (API-only, no portal login) acls: List of permissions to grant. Available permissions: - manage_users: Manage other users - subscriptions_view: View subscriptions - subscriptions: Manage subscriptions - provisioning: Provision resources - billing: Access billing information - support: Access support tickets - abuse: Handle abuse reports - dns: Manage DNS - upgrade: Upgrade plans - objstore: Manage object storage - loadbalancer: Manage load balancers - firewall: Manage firewalls - alerts: Manage alerts

Returns: Created user information, including API key if service_user is True

ParametersJSON Schema
NameRequiredDescriptionDefault
aclsNo
emailYes
passwordYes
last_nameYes
first_nameYes
api_enabledNo
service_userNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It does disclose the return value and the API-only nature of service_user, but it omits important behavioral details like email uniqueness, password handling, required permissions, or side effects beyond creation.

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 structured and front-loaded with 'Create a new user', and the ACL list is useful. However, the duplicate 'ctx' line and the presence of a non-schema ctx parameter make it less clean than it could be.

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 create operation with no annotations and 7 parameters, the description lacks important context such as uniqueness constraints, required parent account context, permission prerequisites, or how this relates to sibling setup tools. The return line is useful, but the overall context is incomplete.

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 is the primary source of parameter meaning. It explains service_user, api_enabled, and provides a full list of acceptable ACL values. The duplicate 'ctx' line and the inclusion of ctx as a parameter when it is absent from the schema slightly reduce the 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 clearly states 'Create a new user' with a specific verb and resource. It does not explicitly differentiate from siblings like user_setup_standard_user or user_setup_service_user, but the create/update/delete family is generally distinguishable.

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 user_setup_standard_user or user_setup_service_user. The service_user parameter description hints at one use case, but there is no when-to-use or 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.

user_deleteB

Delete a user.

Args: user_id: The user ID (UUID) or email address to delete ctx: FastMCP context for resource change notifications

Returns: Status message confirming deletion

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations present, so the description must carry behavioral disclosure. It only states the obvious mutation ('Delete a user') without mentioning irreversibility, cascading effects, permission requirements, or side effects. The return status is mentioned but that's minor.

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 succinct and front-loaded with the main action. The Args/Returns sections are structured but add minimal waste; could be trimmed but still 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 simple one-parameter delete with an output schema, the description covers the essentials. However, it lacks any caution about irreversible consequences or related resources, which would be helpful for a destructive operation. Given no annotations, this is a moderate 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?

Schema has zero description for user_id; the description adds crucial semantic that user_id can be a UUID or email address, giving the agent actionable input format. This is high-value compensation 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 clear verb 'Delete' and resource 'user', distinguishing from sibling user_* tools like user_get, user_create, user_update. The one-line description 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no guidance on when to use this tool versus other user management tools, nor any prerequisites or conditions for deletion. No mention of 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.

user_getA

Get detailed information about a specific user.

Args: user_id: The user ID (UUID) or email address (e.g., "user@example.com" or UUID)

Returns: Detailed user information including permissions and settings

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It does state that the operation 'Returns: Detailed user information including permissions and settings,' which clarifies the read-oriented outcome. However, it does not address authorization requirements, potential errors, or rate-limit behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured with 'Args' and 'Returns' sections. The main purpose is front-loaded in the first sentence, and every line provides useful information without redundancy.

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 single-parameter retrieval tool with an output schema present, the description covers the essential details: what the tool does, what input it accepts, and what kind of information is returned. Nothing critical appears missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema only declares user_id as a string, while the description adds valuable semantic meaning: the accepted forms are 'UUID or email address' with an example format. This fully compensates for the 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Get' with the resource 'user' and clearly states the scope: 'detailed information about a specific user.' It is unambiguous and easily distinguished from siblings like user_create, user_delete, and user_get_ip_whitelist.

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 clearly establishes the usage context: when detailed information about a specific user is needed. It does not explicitly name alternatives or exclusion conditions, but for a simple retrieval tool the context is clear enough and no misleading guidance is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

user_get_ip_whitelistA

Get the IP whitelist for a user.

Args: user_id: The user ID (UUID) or email address

Returns: List of IP whitelist entries with subnet, subnet_size, date_added, and ip_type

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the return structure (subnet, subnet_size, date_added, ip_type) and the parameter type (UUID or email), which is useful. However, it does not mention that this is a read-only operation (though 'Get' implies it), any prerequisites, or error behavior. It is adequate but not exhaustive for a simple get operation.

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 compact and well-structured with clear Args and Returns sections. It front-loads the purpose and provides all necessary details without redundancy. Every sentence adds value; 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?

The description covers the essential aspects: purpose, parameter format, and return fields. Given the simplicity of the tool (single param, straightforward list retrieval), it is nearly complete. It lacks explicit guidance on when to use this vs the singular entry tool, but that is more of a usage guideline. For the tool's complexity, it is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description enriches the schema by specifying that user_id can be either a UUID or an email address, which is critical for correct invocation. The schema only defines 'string', so the description adds significant meaning beyond the structured field. Since there is only one parameter and it is fully clarified, this is excellent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('IP whitelist for a user'), and the return type ('List of IP whitelist entries') distinguishes it from the sibling tool user_get_ip_whitelist_entry, which fetches a single entry. The purpose is unambiguous and immediately differentiates from related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives like user_get_ip_whitelist_entry. The description implies it returns the entire list, and the sibling name suggests singular vs plural, but the description itself does not state conditions or exclusions. The usage is implied by the purpose and return type rather than explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

user_get_ip_whitelist_entryA

Get a specific IP whitelist entry for a user.

Args: user_id: The user ID (UUID) or email address subnet: The IP address or subnet (e.g., "8.8.8.0") subnet_size: The subnet size (e.g., 24 for /24)

Returns: IP whitelist entry details

ParametersJSON Schema
NameRequiredDescriptionDefault
subnetYes
user_idYes
subnet_sizeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It makes clear this is a retrieval operation that returns entry details, but it does not disclose authentication needs, not-found behavior, or explicitly confirm there are no side effects. For a simple read operation, this is minimally 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized into Args and Returns sections with no filler. Every line adds useful information, and the main purpose is stated first.

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 three-parameter read operation with an output schema, the description covers the required parameters and the return concept. It does not discuss exact-match semantics or prerequisite existence of the entry, but these are minor gaps for a simple GET-like tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides only types with 0% schema description coverage, so the description compensates fully. It explains that user_id can be a UUID or email, gives a concrete subnet example ('8.8.8.0'), and clarifies subnet_size with the '/24' example.

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 opening sentence clearly states the operation ('Get'), the resource ('specific IP whitelist entry'), and the scope ('for a user'). The word 'specific' distinguishes it from the sibling listing tool user_get_ip_whitelist and the add/remove tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is for retrieving a single whitelist entry rather than listing all entries, but it never explicitly names alternatives or states when to choose this tool over user_get_ip_whitelist. Use context is implied by the tool name and the word 'specific'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

user_list_available_permissionsA

List all available permissions that can be granted to users.

Returns: Dictionary of available permissions with descriptions and risk levels

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It does mention the return type and content (dictionary with descriptions and risk levels), which is useful. However, it doesn't disclose any side effects or permissions required; as it is a read-only listing, that is probably fine, but the lack of annotations means more clarity would be better. No contradiction.

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 concise, two sentences, with the main purpose in the first sentence and return details in the second. No fluff.

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 tool has no parameters and an output schema that likely details the structure, the description is adequate. It provides the purpose and return content. It doesn't mention filtering or pagination, but for a simple list tool, that might not be needed. Slight gap: no indication of when to use it vs alternatives, but that is covered under usage guidelines.

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 0 parameters, so the schema provides no parameter documentation. The description doesn't need to explain parameters, but it does describe what is returned. Since there are no params, a baseline of 4 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 states a specific verb ('List') and resource ('all available permissions'), which is clear. However, it doesn't explicitly differentiate from sibling tools like user_analyze_user_permissions.

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 it is used to list permissions, and the sibling list includes tools like user_analyze_user_permissions, but no explicit when-not-to-use or alternatives are provided. The context signals suggest it is a listing operation, so usage is somewhat clear but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

user_remove_ip_whitelist_entryA

Remove an IP address or subnet from a user's whitelist.

Args: user_id: The user ID (UUID) or email address subnet: The IP address or subnet to remove (e.g., "8.8.8.0", "192.168.1.100") subnet_size: The subnet size (e.g., 24 for /24, 32 for single IP) ctx: FastMCP context for resource change notifications

Returns: Status message confirming removal

ParametersJSON Schema
NameRequiredDescriptionDefault
subnetYes
user_idYes
subnet_sizeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the behavioral burden. It clearly discloses that this is a removal operation and states that a status message is returned, but it does not address idempotency, access impact, error behavior, or required permissions. This is adequate but minimal for a mutating network-security 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 description is well-structured and front-loaded, with a clear one-line purpose followed by a compact Args/Returns breakdown. It earns its length except for the 'ctx' argument, which is not present in the input schema and may introduce confusion.

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 three-parameter removal tool, the description is nearly complete: all schema parameters are documented with examples, and the return is stated. It lacks explicit side-effect or idempotency details, but the destructive nature is clear from the verb and resource.

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%, and the description compensates well: user_id accepts UUID or email, subnet is explained with concrete examples, and subnet_size is defined using /24 and /32 conventions. The only ambiguity is that 'ctx' is listed as an argument but does not appear in the input 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 ('Remove') and a specific resource ('an IP address or subnet from a user's whitelist'). This clearly distinguishes the tool from sibling operations such as user_get_ip_whitelist_entry, user_add_ip_whitelist_entry, and user_get_ip_whitelist.

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 operation is inferable from the name and the opening verb, but the description gives no explicit when-to-use or when-not-to-use guidance, and it does not mention alternatives or prerequisites. Usage is implied rather than directly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

user_setup_service_userB

Set up a new service user (API-only access) with specified permissions.

Args: email: Service user's email address first_name: Service user's first name last_name: Service user's last name ctx: FastMCP context for resource change notifications permissions: List of permissions to grant. If None, grants basic API access.

Returns: Created service user information including API key

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes
last_nameYes
first_nameYes
permissionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that this creates a new service user and returns API key information โ€“ covering the primary behavioral effect. However, it does not mention whether any existing users are modified, if special permissions are required to call the tool, or other side effects. It also introduces a 'ctx' parameter not present in the schema, which could confuse the agent about invocation.

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 well-organized as a docstring with Args and Returns sections. It is concise, front-loads the main purpose, and avoids unnecessary fluff. The inclusion of 'Returns' is helpful. Minor waste: the ctx arg is redundant/unclear, slightly detracting from conciseness, but overall it is clean.

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 a simple creation operation with 4 parameters and an output schema. The description covers the core behavior and return value. However, it does not specify any prerequisites (e.g., admin rights, existing account) or the exact format of permission strings. The mismatch involving 'ctx' further reduces completeness. Given the availability of an output schema, the description 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?

The schema has 0% property descriptions and 4 parameters, so the description must compensate. It provides a line for each parameter (email, first_name, last_name, permissions) and notes the default behavior of permissions (None grants basic API access). However, it does not explain valid permission values or formats, and it includes a 'ctx' parameter that is absent from the input schema, which is misleading. Overall, it offers partial compensation but not full.

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 'Set up a new service user (API-only access) with specified permissions' โ€“ a specific verb and resource. It differentiates from standard users via 'API-only access,' but does not explicitly name sibling tools like user_create or user_setup_standard_user, leaving some ambiguity. Still, 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide guidance on when to use this tool versus alternatives. It does not mention any conditions, exclusions, or mention of other user-creation tools (e.g., user_create or user_setup_standard_user). The only hint is the 'API-only' qualifier, but there is no explicit 'use this when' or 'not for standard users' statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

user_setup_standard_userB

Set up a new user with standard permission sets.

Args: email: User's email address first_name: User's first name last_name: User's last name password: User's password ctx: FastMCP context for resource change notifications permissions_level: Permission level - "basic", "developer", "admin", or "readonly" - basic: subscriptions_view, dns, support - readonly: subscriptions_view, support - developer: subscriptions_view, subscriptions, provisioning, dns, support, objstore, loadbalancer, firewall - admin: all permissions except manage_users - superadmin: all permissions including manage_users

Returns: Created user information with applied permissions

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes
passwordYes
last_nameYes
first_nameYes
permissions_levelNobasic

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It states that a user is created and permission sets are applied, but does not mention side effects such as idempotency, existing email conflicts, required admin privileges, or reversibility. The inclusion of 'ctx' for notifications hints at side effects but is not explained. This is insufficient for a mutation tool with zero annotation support.

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 structured with a clear one-line summary followed by an Args block and a Returns block. The permission-level breakdown is verbose but directly useful for tool selection and parameter choice. It is not excessively long, and the key action is front-loaded. Some redundancy exists in repeating the permission level string both in the argument list and the bullet list.

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 output schema covers return values, and the description briefly mentions 'Created user information with applied permissions', so return semantics are adequate. However, the description omits error conditions, account constraints, prerequisite permissions, and the meaning of 'ctx' relative to the schema. For a user creation tool with no annotations, this is a notable gap that could lead to incorrect invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is the only source of parameter meaning. It adds useful detail for permissions_level with enumerated values and permission mappings, but the descriptions for email, first_name, last_name, and password are trivial restatements with no constraints or validation. Additionally, 'ctx' is listed in the description but does not appear in the input schema, creating ambiguity about whether it is a valid 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 states a specific verb ('Set up') and resource ('a new user') with a clear qualifier ('standard permission sets'), which distinguishes it from the sibling tool user_setup_service_user. However, it does not explicitly contrast with user_create, so the differentiation is partly reliant on the tool name rather than the description text.

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 permission level list and 'standard permission sets' imply this is for human users with predefined roles, but there is no explicit statement of when to choose this over user_create or user_setup_service_user. No exclusions or alternative conditions are provided, leaving the agent to infer usage context from the name and permission descriptions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

user_updateB

Update an existing user's settings.

Args: user_id: The user ID (UUID) or email address to update ctx: FastMCP context for resource change notifications api_enabled: Enable/disable API access acls: List of permissions to grant. Available permissions: - manage_users: Manage other users - subscriptions_view: View subscriptions - subscriptions: Manage subscriptions - provisioning: Provision resources - billing: Access billing information - support: Access support tickets - abuse: Handle abuse reports - dns: Manage DNS - upgrade: Upgrade plans - objstore: Manage object storage - loadbalancer: Manage load balancers - firewall: Manage firewalls - alerts: Manage alerts

Returns: Updated user information

ParametersJSON Schema
NameRequiredDescriptionDefault
aclsNo
user_idYes
api_enabledNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure, and it falls short. It states the update nature and that updated user information is returned, but does not mention required permissions to perform the update, what happens when the user_id doesn't exist, whether partial updates are allowed (e.g., only acls set, api_enabled null), or whether changes are reversible. For a mutation tool, this is a meaningful gap.

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 structure is clean: a one-line purpose, an Args block, and a Returns block. The permission list is long but justified since it carries essential semantic value. Minimal filler; every element 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 mutation tool with three parameters and no annotations, it covers the parameters and return value well, but omits prerequisites (admin/role requirements), error behavior for nonexistent users, and the effect of supplying only one of the two optional fields. The existing output schema covers return structure, so that's acceptable; the remaining gaps concern operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 do all the work โ€” and it does exceptionally well. It explains user_id accepts a UUID or email, api_enabled toggles API access, and the acls parameter includes a full enumeration of 13 permissions with the meaning of each. This far exceeds what the bare schema (just 'string' items, no enums) provides.

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 specific and unambiguous statement โ€” 'Update an existing user's settings' โ€” pairing a clear verb with the resource and its scope. It differentiates from siblings like user_create and user_delete by the operation type, though it doesn't explicitly name any sibling to contrast against.

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. With siblings like user_setup_standard_user, user_setup_service_user, and user_list_available_permissions in close proximity, an agent has no help deciding which path to take for a given task. The only contextual hint is the 'ctx' argument for resource change notifications, which is not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vpc_attach_to_instanceA

Attach VPC or VPC 2.0 to an instance.

Smart identifier resolution: Use VPC/instance description/label/hostname or ID.

Args: vpc_identifier: VPC/VPC 2.0 description or ID to attach instance_identifier: Instance label, hostname, or ID to attach to vpc_type: Type of VPC ("vpc" or "vpc2", defaults to "vpc")

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
vpc_typeNovpc
vpc_identifierYes
instance_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description takes on the disclosure burden; it does add useful behavioral context by advertising smart identifier resolution (description/label/hostname or ID) and stating that it returns a success confirmation. It does not, however, disclose potential side effects such as replacing an existing attachment, idempotency, authorization needs, or failure behavior, which are relevant for a mutating operation.

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 compact and well-structured with a one-line purpose, a single useful note about identifier resolution, a tight Args list, and a Returns line. No sentence is redundant or 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 simple attach operation, the core call contract is covered: what it does, what parameters mean, and what response to expect. However, since there are no annotations and the operation mutates infrastructure, it would be more complete with information about prerequisites, effects on existing network configuration, or failure conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description fully compensates by documenting all three parameters in the Args block: accepted identifier forms for vpc_identifier and instance_identifier, and the allowed values plus default for vpc_type. This is exactly the meaning the bare schema lacks.

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 pair, 'Attach VPC or VPC 2.0 to an instance,' which clearly identifies the operation and distinguishes it from the sibling vpc_detach_from_instance and from VPC create/update/delete tools. It also states the scope (VPC/VPC 2.0) and the target resource (instance) without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by the name and opening sentence, and the sibling detach tool makes the attach/detach contrast obvious. However, the description does not explicitly state when to prefer this tool, what prerequisites apply, or which alternatives to consider, so the guidance is left mostly to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vpc_createA

Create a new VPC.

Args: region: Region code where the VPC will be created (e.g., "ewr", "lax", "fra") description: Description/label for the VPC ctx: FastMCP context for resource change notifications v4_subnet: IPv4 subnet for the VPC (e.g., "10.0.0.0", defaults to auto-assigned) v4_subnet_mask: IPv4 subnet mask (e.g., 24, defaults to 24)

Returns: Created VPC information including ID and subnet details

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYes
v4_subnetNo
descriptionYes
v4_subnet_maskNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the disclosure burden. It does disclose defaulting behavior for v4_subnet and v4_subnet_mask and summarizes the return value. It does not address permissions, billing, idempotency, or whether this is the legacy path versus vpc_create_vpc2.

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 a clear one-liner and then organized into compact Args and Returns sections. It is not bloated, but the 'ctx' line is extraneous for a tool caller and prevents a perfect score.

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 is enough to construct a basic call: required fields, optional subnet fields, defaults, and return summary are all present. It is incomplete as a selection aid because it never mentions the closely related vpc_create_vpc2 family, and no annotations or schema descriptions help fill that void.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema description coverage is 0%, and the description compensates thoroughly: every schema parameter is explained with an example or default, and optionality is clarified. The only minor blemish is the 'ctx' entry, which does not appear in the input 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 opening line 'Create a new VPC' uses a specific verb and resource, clearly identifying the action. It does not distinguish itself from the sibling vpc_create_vpc2, which also appears to create a VPC, so it stops short of the top score.

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 vpc_create versus vpc_create_vpc2, vpc_update, or any other sibling tool. An agent must infer selection from the tool name alone, and the overlap with vpc_create_vpc2 makes this a real gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vpc_create_vpc2A

Create a new VPC 2.0 network.

Args: region: Region code where the VPC 2.0 will be created (e.g., "ewr", "lax", "fra") description: Description/label for the VPC 2.0 ip_type: IP type ("v4" or "v6", defaults to "v4") ip_block: IP block for the VPC 2.0 (e.g., "10.0.0.0", defaults to auto-assigned) prefix_length: Prefix length (e.g., 24 for /24, defaults to 24)

Returns: Created VPC 2.0 information including ID and IP block details

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYes
ip_typeNov4
ip_blockNo
descriptionYes
prefix_lengthNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions defaults for ip_type, ip_block, and prefix_length, and notes the return value, but does not disclose side effects, permission requirements, reversibility, or any constraints on the create operation. This is thin for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a one-line purpose, followed by a compact args list with per-parameter explanations, and a returns line. It is front-loaded and avoids verbosity, making it easy to scan.

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 presence of an output schema (signal indicates it exists) and the tool's simple create nature, the description covers all parameters and the return value. However, it lacks context on constraints like region availability, limits, or interactions with existing VPCs, which would be useful but not critical for a basic create operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no property descriptions (0% coverage), so the description fully compensates. It explains each parameter with examples (region codes, IP block), defaults (ip_type='v4', prefix_length=24), and clarifies meaning (description as label). This is excellent given the barren 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 clearly states the action ('Create a new VPC 2.0 network') with a specific verb and resource. It also lists expected parameters, making it distinct from sibling tools like vpc_create (presumably VPC 1.0) and vpc_update_vpc2.

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 its siblings (e.g., vpc_create) or under what conditions it is appropriate. The description merely states what it does, leaving the agent to infer the distinction from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vpc_deleteB

Delete a VPC.

Smart identifier resolution: Use VPC description or ID.

Args: vpc_identifier: VPC description or ID to delete ctx: FastMCP context for resource change notifications

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
vpc_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden. It states only that the tool deletes a VPC and returns success confirmation. It does not disclose irreversibility, potential failure conditions (e.g., if resources are attached), or any side effects beyond deletion. The 'Smart identifier resolution' is helpful but is more about parameter handling than behavioral traits.

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 very concise, with the action stated in the first line, followed by a brief note about identifier resolution, then an Args/Returns block. There is no irrelevant or repetitive content; every sentence earns its place. The structure is clear and front-loaded.

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 the destructive nature of deletion and the presence of a sibling 'vpc_delete_vpc2,' the description is incomplete. It does not clarify which VPC type it targets, nor does it mention constraints like needing to detach resources first or that deletion is irreversible. The output is only described as 'Success confirmation,' which is minimal. These gaps could lead an agent to misuse the tool or fail in edge cases.

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 input schema provides only a parameter name and type (string) with no description (schema coverage 0%). The description compensates by explaining that 'vpc_identifier' accepts either a VPC description or ID, and adds a second parameter 'ctx' for resource change notifications. This adds meaningful semantic information beyond the bare 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 clearly states the verb and resource: 'Delete a VPC.' This distinguishes it conceptually from other tools, but it does not explicitly differentiate from the sibling 'vpc_delete_vpc2,' so an agent might be unsure whether this handles classic VPCs only. It is a clear, concise purpose statement but lacks explicit 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions how to specify the identifier ('Use VPC description or ID') but provides no guidance on when to choose this tool over alternatives like 'vpc_delete_vpc2.' There is no mention of exclusions, prerequisites, or which VPC types are covered, so the agent gets no direct usage-direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vpc_delete_vpc2B

Delete a VPC 2.0 network.

Smart identifier resolution: Use VPC 2.0 description or ID.

Args: vpc2_identifier: VPC 2.0 description or ID to delete

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
vpc2_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description states it returns 'Success confirmation' but doesn't disclose destructive consequences, whether the operation is reversible, whether associated resources are also deleted, or whether there are any safety checks. For a delete operation, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose. The 'Smart identifier resolution' note is useful and placed early. The Args/Returns structure is clear and scannable. Minor redundancy: 'VPC 2.0 description or ID' appears in both the description and the Args section, but this is not a significant issue.

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 delete operation with no annotations and no output schema details beyond 'Success confirmation', the description is incomplete. It doesn't mention what happens to attached resources, whether confirmation is required, or any error conditions. The sibling vpc_delete exists, suggesting a distinction that should be clarified. The description is adequate for a simple call but lacks important operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does explain that vpc2_identifier is 'VPC 2.0 description or ID to delete', which adds meaning beyond the bare string type in the schema. However, it doesn't clarify the format of the description or ID, or how the smart resolution handles ambiguity. The description adds some value but not comprehensive parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Delete a VPC 2.0 network') and identifies the resource type. It distinguishes itself from the sibling vpc_delete (which presumably deletes VPC 1.0) by the explicit '2.0' qualifier in both the name and description. However, it doesn't explicitly contrast with vpc_delete, so an agent might not fully understand the difference between the two delete tools without additional 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?

The description mentions 'Smart identifier resolution: Use VPC 2.0 description or ID' which gives some guidance on how to identify the target resource. However, it doesn't state when to use this tool versus vpc_delete, nor does it mention any prerequisites or conditions (e.g., whether the VPC must be detached from instances first). The usage context is implied but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vpc_detach_from_instanceA

Detach VPC or VPC 2.0 from an instance.

Smart identifier resolution: Use VPC/instance description/label/hostname or ID.

Args: vpc_identifier: VPC/VPC 2.0 description or ID to detach instance_identifier: Instance label, hostname, or ID to detach from vpc_type: Type of VPC ("vpc" or "vpc2", defaults to "vpc")

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
vpc_typeNovpc
vpc_identifierYes
instance_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are empty, so the description carries all responsibility for behavioral disclosure. It states that a VPC is detached and that a success confirmation is returned, but does not discuss mutability, even whether detaching is reversible, whether the VPC must already be attached, or what side effects may occur. The description is not fully transparent given the lack of 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 compact, logically organized with sections for the main action, identifier resolution, arguments, and return value. There is no wasted text, and the description fits on a single screen while staying clearly 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?

Given there is an output schema, the return value is adequately covered. However, the description lacks context on behavior such as whether the VPC must currently be attached, what happens if it is not, and how the detachment affects instance connectivity. It's adequate minimal, but leaves gaps for a mutating action.

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 schema description coverage at 0%, the description fully compensates by describing all three parameters, their expected value types and defaults (e.g., vpc_identifier accepts VPC/VPC 2.0 description or ID; instance_identifier accepts label, hostname, or ID; vpc_type has defaults). The 'Smart identifier resolution' example also provides real guidance. Some detail about ambiguity is missing, but it is largely adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Detach VPC or VPC 2.0 from an instance.' It uses a specific verb and resource, and is easily distinguished from sibling tools like vpc_attach_to_instance. No ambiguity about what the tool 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 provides little guidance on when to use this tool versus alternatives. It mentions smart identifier resolution, but does not explain when this detach tool is appropriate, nor does it mention any prerequisites, exclusions, or use cases where another sibling tool would be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vpc_get_network_infoB

Get comprehensive network information for VPC or VPC 2.0.

Smart identifier resolution: Use VPC/VPC 2.0 description or ID.

Args: identifier: VPC/VPC 2.0 description or ID vpc_type: Type to search ("vpc", "vpc2", or "auto" to search both)

Returns: Comprehensive network information with usage recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
vpc_typeNoauto
identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden of disclosing behavioral traits. It mentions the return value (comprehensive network information with usage recommendations) but does not state that the operation is read-only, whether it requires specific permissions, or if any side effects occur. Since it's a 'get' tool, read-only is implied, but not stated, and there's no mention of rate limits or error conditions.

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 concise, front-loaded with the main purpose, and structured into short sections for smart resolution, args, and returns. Every sentence adds value. It is not overly verbose, though the 'Smart identifier resolution' line could be integrated into the Args description, but the structure is effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has two parameters, both explained, and an output schema exists, so the return summary is adequate. However, it lacks usage guidance against siblings, behavioral details like read-only confirmation, and any mention of prerequisites or error handling. For a read-only get tool, it is mostly complete, but the missing usage guidance and behavioral transparency prevent a higher score.

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 description explicitly explains both parameters: identifier as 'VPC/VPC 2.0 description or ID' and vpc_type with allowed values ('vpc', 'vpc2', 'auto'). Since the input schema has no descriptions (0% coverage), the description fully compensates by adding meaning to both parameters. It is clear and actionable, though it could include examples or formatting hints, but the semantics are well covered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves comprehensive network information for VPC or VPC 2.0, specifying the resource and the action. It also mentions smart identifier resolution using description or ID, which adds specificity. However, it does not explicitly contrast with sibling tools like vpc_list_by_region or vpc_list_instance_networks, so it could be slightly clearer on how it differs from those.

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 guidance on how to use the identifier parameter (description or ID) and the vpc_type parameter (with 'auto' to search both), but it does not state when to use this tool versus alternatives. There is no mention of conditions that would favor vpc_list_by_region for listing all VPCs or vpc_get for a specific one. The usage context is only implied by the tool name, not explicitly spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vpc_list_by_regionA

List VPCs and VPC 2.0 networks in a specific region.

Args: region: Region code to filter by (e.g., "ewr", "lax", "fra")

Returns: Combined list of VPCs and VPC 2.0 networks in the specified region

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the basic operation and return type. It does not disclose potential limitations like pagination, sorting, access scoping (e.g., only user-owned VPCs), or error conditions. For a list operation, this is a meaningful gap that could lead an agent to assume an unbounded or fully detailed response.

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 concise and well-structured. It leads with the core purpose, then uses an Args section for the parameter and a Returns section for the output. No redundant or vague sentences. Every part earns its place, making it easy for an agent to parse quickly.

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 that an output schema exists (as indicated by context), the description need not enumerate return fields. It covers the input parameter and the general shape of the output ('Combined list'). For a simple list-by-region tool, this is sufficient. The only minor gap is lack of mention of pagination or result limits, but these are not critical for a typical list operation and the output schema likely handles field details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides only a 'string' type for region with no description (0% schema coverage). The description fully compensates by explaining the parameter's purpose and providing concrete examples of valid region codes (ewr, lax, fra). This adds meaningful semantics beyond the schema, enabling correct invocation without external knowledge.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the resource ('VPCs and VPC 2.0 networks') and scopes it to a specific region. It distinguishes this tool from other VPC operations (create, update, delete, attach, etc.) and from other list-by-region tools for different resources. The region parameter is exemplified with real codes, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: when you need a combined listing of VPCs and VPC 2.0 networks for a given region. It does not explicitly name alternatives or state when not to use it, but given the tool's unique purpose among siblings (there is no other VPC list tool), the usage context is clear enough. It also provides region code examples, which helps selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vpc_list_instance_networksA

List all VPCs and VPC 2.0 networks attached to an instance.

Smart identifier resolution: Use instance label, hostname, or ID.

Args: instance_identifier: Instance label, hostname, or ID

Returns: Combined list of VPCs and VPC 2.0 networks attached to the instance

ParametersJSON Schema
NameRequiredDescriptionDefault
instance_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that identifier resolution accepts instance label, hostname, or ID, which is a behavioral trait not evident from the schema. It also states that the result is a combined list of both VPC types. With no annotations provided, this adds meaningful behavioral context beyond the function name.

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 uses clear labels (Args, Returns), but it duplicates information: the Returns line repeats the opening sentence, and the Args line repeats the smart-identifier sentence. While not verbose, the redundancy means not every sentence adds new 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 one-parameter read-only list operation, the description provides everything an agent needs: the scope, accepted identifier formats, and the return composition. The output schema supplies the structured return shape, so no additional detail is required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema defines instance_identifier as a string with no description, so the description carries the full burden of explaining the parameter. It explicitly lists acceptable formats (label, hostname, or ID) and names the parameter. This fully compensates for the 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and identifies the exact resource: VPCs and VPC 2.0 networks attached to an instance. This clearly distinguishes the tool from siblings like vpc_list_by_region and vpc_get_network_info. The mention of 'attached to an instance' removes ambiguity about 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 does not explicitly state when this tool should be preferred over alternatives such as vpc_list_by_region. However, the resource-scoped purpose ('attached to an instance') implies the usage context. There is no explicit exclusion or alternative guidance, so the score is 3.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vpc_updateC

Update VPC description.

Smart identifier resolution: Use VPC description or ID.

Args: vpc_identifier: VPC description or ID to update description: New description for the VPC ctx: FastMCP context for resource change notifications

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYes
vpc_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavior, but it only mentions returning a success confirmation. It does not state whether the operation is idempotent, whether it requires special permissions, or the impact on dependent resources. The behavior is implied as a simple update, but the description carries the full burden and falls short.

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 concise, with a clear heading and a single sentence stating the purpose, followed by a bulleted argument list and a Returns line. It is appropriately front-loaded with the core purpose. No wasted words, though the argument list is somewhat redundant with 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?

The output schema exists, so the description need not explain return values in detail. The tool is simple with only two parametersable coverage is minimal but adequate for the simplicity. However, given no annotations and an output schema that may not be self-explanatory, the description could be stronger on prerequisites and side effects, making it minimally viable 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 compensate. It does explain that vpc_identifier can be a description or ID and that description is the new value, which adds meaning beyond the raw schema. However, it does not clarify the format or constraints of the description field (e.g., length, charset), leaving some ambiguity. Baseline 3 is appropriate given partial compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Update VPC description') and the resource (VPC), and mentions smart identifier resolution. It distinguishes itself from the vpc_update_vpc2 sibling by focusing on the description update, though the distinction is implicit rather than 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?

The description provides no guidance on when to use this tool versus alternatives like vpc_update_vpc2 or vpc_attach_to_instance. It does not specify prerequisites (e.g., whether the VPC must exist or be in a certain state) or explicit exclusions. The 'Smart identifier resolution' hint is useful but not sufficient to route the agent effectively.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vpc_update_vpc2B

Update VPC 2.0 description.

Smart identifier resolution: Use VPC 2.0 description or ID.

Args: vpc2_identifier: VPC 2.0 description or ID to update description: New description for the VPC 2.0

Returns: Success confirmation

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYes
vpc2_identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It explicitly notes this is an update operation and that it returns a success confirmation, and it discloses the unusual 'description or ID' identifier behavior. However, it does not address potential edge cases such as ambiguous descriptions, whether the update is idempotent, or any prerequisites.

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 compact, front-loaded with the core purpose, and structured into clear Args and Returns sections. Every line earns its place and there is no redundant wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter update with an output schema, the description covers the main action, both parameters, and the return type. It is missing guidance on when to prefer this over sibling VPC tools and details about how identifier resolution behaves when a description is not unique, but overall it is minimally sufficient.

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 schema provides 0% description coverage, so the Args section is essential. It successfully explains that vpc2_identifier accepts either a VPC 2.0 description or an ID, and that description is the new value. This adds meaningful semantics beyond the raw string types, though the term 'description' in both roles could confuse.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Update VPC 2.0 description') and the target resource, which is more specific than the sibling vpc_update. However, the repeated use of 'description' for both the identifier resolution and the new value creates slight ambiguity, and it does not explicitly distinguish itself from the vpc_update 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?

No guidance is given on when to use this tool versus alternatives such as vpc_update or vpc_update_vpc2. The 'Smart identifier resolution' line explains how to specify the target, not when this tool is the right choice, so an agent receives no routing context.

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. 581 tool updatesv1.0.1
    • Removedadd_export
    • Removedadd_ip_whitelist_entry
    • Removedanalyze_cdn_performance
    • Removedanalyze_costs
    • Removedanalyze_domain
    • Removedanalyze_inference_usage
    • Removedanalyze_kubernetes_cluster_costs
    • Removedanalyze_spending_trends
    • Removedanalyze_user_permissions
    • Removedattach
    • Removedattach_to_instance
    • Addedbare_metal_create_bare_metal_server
    • Addedbare_metal_delete_bare_metal_server
    • Addedbare_metal_get_bare_metal_bandwidth
    • Addedbare_metal_get_bare_metal_neighbors
    • Addedbare_metal_get_bare_metal_plan
    • Addedbare_metal_get_bare_metal_server
    • Addedbare_metal_get_bare_metal_server_summary
    • Addedbare_metal_get_bare_metal_user_data
    • Addedbare_metal_list_bare_metal_plans
    • Addedbare_metal_list_bare_metal_servers
    • Addedbare_metal_list_bare_metal_servers_by_region
    • Addedbare_metal_list_bare_metal_servers_by_status
    • Addedbare_metal_reboot_bare_metal_server
    • Addedbare_metal_reinstall_bare_metal_server
    • Addedbare_metal_search_bare_metal_plans
    • Addedbare_metal_start_bare_metal_server
    • Addedbare_metal_stop_bare_metal_server
    • Addedbare_metal_update_bare_metal_server
    • Addedbilling_analyze_spending_trends
    • Addedbilling_get_account_info
    • Addedbilling_get_cost_breakdown_by_service
    • Addedbilling_get_current_balance
    • Addedbilling_get_current_month_summary
    • Addedbilling_get_invoice
    • Addedbilling_get_last_month_summary
    • Addedbilling_get_monthly_usage_summary
    • Addedbilling_get_payment_summary
    • Addedbilling_list_billing_history
    • Addedbilling_list_invoice_items
    • Addedbilling_list_invoices
    • Addedblock_storage_attach
    • Addedblock_storage_create
    • Addedblock_storage_delete
    • Addedblock_storage_detach
    • Addedblock_storage_get_mounting_instructions
    • Addedblock_storage_get_volume_status
    • Addedblock_storage_list_attached
    • Addedblock_storage_list_by_region
    • Addedblock_storage_list_unattached
    • Addedblock_storage_update
    • Addedcdn_analyze_cdn_performance
    • Addedcdn_create_cdn_ssl_certificate
    • Addedcdn_create_cdn_zone
    • Addedcdn_delete_cdn_ssl_certificate
    • Addedcdn_delete_cdn_zone
    • Addedcdn_get_cdn_available_regions
    • Addedcdn_get_cdn_ssl_certificate
    • Addedcdn_get_cdn_zone
    • Addedcdn_get_cdn_zone_logs
    • Addedcdn_get_cdn_zone_stats
    • Addedcdn_get_cdn_zone_summary
    • Addedcdn_list_cdn_zones
    • Addedcdn_purge_cdn_zone
    • Addedcdn_setup_cdn_for_website
    • Addedcdn_update_cdn_zone
    • Addedcollection_add_resource_to_collection
    • Addedcollection_create_collection
    • Addedcollection_delete_collection
    • Addedcollection_list_collections_by_project
    • Addedcollection_promote_collection_environment
    • Addedcollection_remove_resource_from_collection
    • Addedcollection_update_collection_permissions
    • Removedcompare_plans
    • Removedconfigure_basic_web_lb
    • Removedconvert_instance_ip
    • Removedcreate
    • Removedcreate_bare_metal_server
    • Removedcreate_cdn_ssl_certificate
    • Removedcreate_cdn_zone
    • Removedcreate_common_startup_script
    • Removedcreate_connection_pool
    • Removedcreate_domain
    • Removedcreate_forwarding_rule
    • Removedcreate_from_url
    • Removedcreate_group
    • Removedcreate_ipv4
    • Removedcreate_iso
    • Removedcreate_kafka_topic
    • Removedcreate_kubernetes_cluster
    • Removedcreate_kubernetes_node_pool
    • Removedcreate_logical_database
    • Removedcreate_read_replica
    • Removedcreate_record
    • Removedcreate_rule
    • Removedcreate_serverless_inference
    • Removedcreate_startup_script
    • Removedcreate_user
    • Removedcreate_vpc2
    • Addeddb_analyze_database_migration_status
    • Addeddb_analyze_database_performance
    • Addeddb_create
    • Addeddb_create_connection_pool
    • Addeddb_create_kafka_topic
    • Addeddb_create_logical_database
    • Addeddb_create_read_replica
    • Addeddb_create_user
    • Addeddb_delete
    • Addeddb_delete_connection_pool
    • Addeddb_delete_kafka_topic
    • Addeddb_delete_logical_database
    • Addeddb_delete_user
    • Addeddb_fork_database
    • Addeddb_get_connection_pool
    • Addeddb_get_kafka_topic
    • Addeddb_get_logical_database
    • Addeddb_get_maintenance_updates
    • Addeddb_get_migration_status
    • Addeddb_get_usage
    • Addeddb_get_user
    • Addeddb_list_available_versions
    • Addeddb_list_backups
    • Addeddb_list_connection_pools
    • Addeddb_list_databases
    • Addeddb_list_kafka_topics
    • Addeddb_list_plans
    • Addeddb_list_users
    • Addeddb_promote_read_replica
    • Addeddb_restore_from_backup
    • Addeddb_setup_mysql_database
    • Addeddb_setup_postgresql_database
    • Addeddb_start_maintenance
    • Addeddb_start_migration
    • Addeddb_start_version_upgrade
    • Addeddb_stop_migration
    • Addeddb_update
    • Addeddb_update_connection_pool
    • Addeddb_update_kafka_topic
    • Addeddb_update_user
    • Addeddb_update_user_access_control
    • Removeddelete
    • Removeddelete_bare_metal_server
    • Removeddelete_cdn_ssl_certificate
    • Removeddelete_cdn_zone
    • Removeddelete_connection_pool
    • Removeddelete_domain
    • Removeddelete_export
    • Removeddelete_forwarding_rule
    • Removeddelete_group
    • Removeddelete_ipv4
    • Removeddelete_iso
    • Removeddelete_kafka_topic
    • Removeddelete_kubernetes_cluster
    • Removeddelete_kubernetes_cluster_with_resources
    • Removeddelete_kubernetes_node
    • Removeddelete_kubernetes_node_pool
    • Removeddelete_logical_database
    • Removeddelete_record
    • Removeddelete_rule
    • Removeddelete_serverless_inference
    • Removeddelete_ssl
    • Removeddelete_startup_script
    • Removeddelete_user
    • Removeddelete_vpc2
    • Removeddetach
    • Removeddetach_from_instance
    • Removeddisable_auto_ssl
    • Addeddns_analyze_domain
    • Addeddns_create_domain
    • Addeddns_create_record
    • Addeddns_delete_domain
    • Addeddns_delete_record
    • Addeddns_export_zone_file
    • Addeddns_get_domain
    • Addeddns_get_record
    • Addeddns_import_zone_file
    • Addeddns_list_domains
    • Addeddns_list_records
    • Addeddns_setup_website
    • Addeddns_update_record
    • Addeddns_validate_record
    • Removedexport_zone_file
    • Removedfind_by_email
    • Removedfind_by_name
    • Removedfind_by_region
    • Removedfind_regions_with_plan
    • Addedfirewall_create_group
    • Addedfirewall_create_rule
    • Addedfirewall_delete_group
    • Addedfirewall_delete_rule
    • Addedfirewall_get_group
    • Addedfirewall_get_rule
    • Addedfirewall_list_groups
    • Addedfirewall_list_rules
    • Addedfirewall_setup_web_server_rules
    • Addedfirewall_update_group
    • Removedfork_database
    • Removedgenerate_docker_credentials
    • Removedgenerate_kubernetes_credentials
    • Removedget
    • Removedget_account_info
    • Removedget_application
    • Removedget_application_deployment_guide
    • Removedget_applications_by_vendor
    • Removedget_availability
    • Removedget_balance_summary
    • Removedget_bandwidth
    • Removedget_bare_metal_bandwidth
    • Removedget_bare_metal_neighbors
    • Removedget_bare_metal_plan
    • Removedget_bare_metal_server
    • Removedget_bare_metal_server_summary
    • Removedget_bare_metal_user_data
    • Removedget_cdn_available_regions
    • Removedget_cdn_ssl_certificate
    • Removedget_cdn_zone
    • Removedget_cdn_zone_logs
    • Removedget_cdn_zone_stats
    • Removedget_cdn_zone_summary
    • Removedget_cheapest_plan
    • Removedget_configuration_summary
    • Removedget_connection_pool
    • Removedget_cost_analysis
    • Removedget_cost_breakdown_by_service
    • Removedget_current_balance
    • Removedget_current_month_summary
    • Removedget_deployment_examples
    • Removedget_docker_login_command
    • Removedget_domain
    • Removedget_firewall_rule
    • Removedget_forwarding_rule
    • Removedget_gateway_status
    • Removedget_group
    • Removedget_health_status
    • Removedget_inference_deployment_guide
    • Removedget_inference_usage
    • Removedget_invoice
    • Removedget_ip_whitelist
    • Removedget_ip_whitelist_entry
    • Removedget_iso
    • Removedget_iso_by_name
    • Removedget_kafka_topic
    • Removedget_kubernetes_available_upgrades
    • Removedget_kubernetes_cluster
    • Removedget_kubernetes_cluster_config
    • Removedget_kubernetes_cluster_resources
    • Removedget_kubernetes_cluster_status
    • Removedget_kubernetes_node
    • Removedget_kubernetes_node_pool
    • Removedget_kubernetes_versions
    • Removedget_last_month_summary
    • Removedget_logical_database
    • Removedget_maintenance_updates
    • Removedget_marketplace_app_variables
    • Removedget_migration_status
    • Removedget_monthly_usage_summary
    • Removedget_mount_instructions
    • Removedget_mounting_instructions
    • Removedget_network_info
    • Removedget_operating_system
    • Removedget_os_by_name
    • Removedget_payment_summary
    • Removedget_plan
    • Removedget_plan_by_type_and_spec
    • Removedget_plans_by_region_availability
    • Removedget_popular_marketplace_apps
    • Removedget_record
    • Removedget_registry_info
    • Removedget_rule
    • Removedget_s3_config
    • Removedget_serverless_inference
    • Removedget_startup_script
    • Removedget_startup_script_content
    • Removedget_status_overview
    • Removedget_storage_summary
    • Removedget_usage
    • Removedget_user
    • Removedget_volume_status
    • Removedget_vpc2
    • Removedimport_zone_file
    • Addedinference_analyze_inference_usage
    • Addedinference_create_serverless_inference
    • Addedinference_delete_serverless_inference
    • Addedinference_get_inference_deployment_guide
    • Addedinference_get_inference_usage
    • Addedinference_get_serverless_inference
    • Addedinference_list_serverless_inference
    • Addedinference_monitor_inference_performance
    • Addedinference_optimize_inference_costs
    • Addedinference_update_serverless_inference
    • Addedinstance_create
    • Addedinstance_create_ipv4
    • Addedinstance_delete
    • Addedinstance_delete_ipv4
    • Addedinstance_get_bandwidth
    • Addedinstance_list_ipv4
    • Addedinstance_list_ipv6
    • Addedinstance_reboot
    • Addedinstance_reinstall
    • Addedinstance_start
    • Addedinstance_stop
    • Addedinstance_update
    • Addediso_create_iso
    • Addediso_delete_iso
    • Addediso_get_iso
    • Addediso_get_iso_by_name
    • Addediso_list_custom_isos
    • Addediso_list_isos
    • Addediso_list_public_isos
    • Addedk8s_analyze_kubernetes_cluster_costs
    • Addedk8s_create_kubernetes_cluster
    • Addedk8s_create_kubernetes_node_pool
    • Addedk8s_delete_kubernetes_cluster
    • Addedk8s_delete_kubernetes_cluster_with_resources
    • Addedk8s_delete_kubernetes_node
    • Addedk8s_delete_kubernetes_node_pool
    • Addedk8s_get_kubernetes_available_upgrades
    • Addedk8s_get_kubernetes_cluster
    • Addedk8s_get_kubernetes_cluster_config
    • Addedk8s_get_kubernetes_cluster_resources
    • Addedk8s_get_kubernetes_cluster_status
    • Addedk8s_get_kubernetes_node
    • Addedk8s_get_kubernetes_node_pool
    • Addedk8s_get_kubernetes_versions
    • Addedk8s_list_kubernetes_clusters
    • Addedk8s_list_kubernetes_node_pools
    • Addedk8s_list_kubernetes_nodes
    • Addedk8s_recycle_kubernetes_node
    • Addedk8s_scale_kubernetes_node_pool
    • Addedk8s_setup_kubernetes_cluster_for_workload
    • Addedk8s_update_kubernetes_cluster
    • Addedk8s_update_kubernetes_node_pool
    • Addedk8s_upgrade_kubernetes_cluster
    • Addedlb_configure_basic_web_lb
    • Addedlb_create
    • Addedlb_create_forwarding_rule
    • Addedlb_delete
    • Addedlb_delete_forwarding_rule
    • Addedlb_delete_ssl
    • Addedlb_disable_auto_ssl
    • Addedlb_get
    • Addedlb_get_configuration_summary
    • Addedlb_get_firewall_rule
    • Addedlb_get_forwarding_rule
    • Addedlb_get_health_status
    • Addedlb_list_firewall_rules
    • Addedlb_list_forwarding_rules
    • Addedlb_update
    • Removedlist
    • Removedlist_application_categories
    • Removedlist_application_images
    • Removedlist_applications
    • Removedlist_attached
    • Removedlist_available_permissions
    • Removedlist_available_versions
    • Removedlist_backups
    • Removedlist_bare_metal_plans
    • Removedlist_bare_metal_servers
    • Removedlist_bare_metal_servers_by_region
    • Removedlist_bare_metal_servers_by_status
    • Removedlist_billing_history
    • Removedlist_boot_scripts
    • Removedlist_by_continent
    • Removedlist_by_region
    • Removedlist_by_status
    • Removedlist_by_type
    • Removedlist_cdn_zones
    • Removedlist_cluster_tiers
    • Removedlist_clusters
    • Removedlist_connection_pools
    • Removedlist_custom_isos
    • Removedlist_databases
    • Removedlist_domains
    • Removedlist_firewall_rules
    • Removedlist_forwarding_rules
    • Removedlist_groups
    • Removedlist_instance_networks
    • Removedlist_invoice_items
    • Removedlist_invoices
    • Removedlist_ipv4
    • Removedlist_ipv6
    • Removedlist_isos
    • Removedlist_kafka_topics
    • Removedlist_kubernetes_clusters
    • Removedlist_kubernetes_node_pools
    • Removedlist_kubernetes_nodes
    • Removedlist_linux_os
    • Removedlist_marketplace_applications
    • Removedlist_oneclick_applications
    • Removedlist_operating_systems
    • Removedlist_os_by_family
    • Removedlist_plans
    • Removedlist_public_isos
    • Removedlist_pxe_scripts
    • Removedlist_records
    • Removedlist_rules
    • Removedlist_serverless_inference
    • Removedlist_startup_scripts
    • Removedlist_unattached
    • Removedlist_users
    • Removedlist_vc2_plans
    • Removedlist_vhf_plans
    • Removedlist_voc_plans
    • Removedlist_vpc2
    • Removedlist_windows_os
    • Removedlist_with_ddos_protection
    • Addedmarketplace_get_application
    • Addedmarketplace_get_application_deployment_guide
    • Addedmarketplace_get_applications_by_vendor
    • Addedmarketplace_get_deployment_examples
    • Addedmarketplace_get_marketplace_app_variables
    • Addedmarketplace_get_popular_marketplace_apps
    • Addedmarketplace_list_application_categories
    • Addedmarketplace_search_applications
    • Removedmonitor_inference_performance
    • Removedmonitor_usage
    • Addedobject_storage_create
    • Addedobject_storage_delete
    • Addedobject_storage_find_by_region
    • Addedobject_storage_get
    • Addedobject_storage_get_s3_config
    • Addedobject_storage_get_storage_summary
    • Addedobject_storage_list_cluster_tiers
    • Addedobject_storage_list_clusters
    • Addedobject_storage_regenerate_keys
    • Addedobject_storage_update
    • Addedobject_storage_validate_s3_access
    • Removedoptimize_gateway_configuration
    • Removedoptimize_inference_costs
    • Addedos_get_operating_system
    • Addedos_get_os_by_name
    • Addedos_list_application_images
    • Addedos_list_linux_os
    • Addedos_list_operating_systems
    • Addedos_list_os_by_family
    • Addedos_list_windows_os
    • Addedos_search_os_by_name
    • Addedplan_compare_plans
    • Addedplan_get_cheapest_plan
    • Addedplan_get_plan
    • Addedplan_get_plan_by_type_and_spec
    • Addedplan_get_plans_by_region_availability
    • Addedplan_list_plans
    • Addedplan_list_vc2_plans
    • Addedplan_list_vhf_plans
    • Addedplan_list_voc_plans
    • Addedplan_search_plans_by_specs
    • Removedpromote_read_replica
    • Removedpurge_cdn_zone
    • Removedreboot
    • Removedreboot_bare_metal_server
    • Removedrecycle_kubernetes_node
    • Removedregenerate_keys
    • Addedregion_find_regions_with_plan
    • Addedregion_get_availability
    • Addedregion_list
    • Addedregion_list_by_continent
    • Addedregion_list_with_ddos_protection
    • Addedregistry_create
    • Addedregistry_delete
    • Addedregistry_generate_docker_credentials
    • Addedregistry_generate_kubernetes_credentials
    • Addedregistry_get_docker_login_command
    • Addedregistry_get_registry_info
    • Addedregistry_list_plans
    • Addedregistry_update
    • Removedreinstall
    • Removedreinstall_bare_metal_server
    • Removedremove_ip_whitelist_entry
    • Addedreserved_ip_attach
    • Addedreserved_ip_convert_instance_ip
    • Addedreserved_ip_create
    • Addedreserved_ip_delete
    • Addedreserved_ip_detach
    • Addedreserved_ip_list_attached
    • Addedreserved_ip_list_by_region
    • Addedreserved_ip_list_unattached
    • Addedreserved_ip_update
    • Removedrestore_from_backup
    • Removedscale_kubernetes_node_pool
    • Removedsearch_applications
    • Removedsearch_bare_metal_plans
    • Removedsearch_os_by_name
    • Removedsearch_plans_by_specs
    • Removedsearch_startup_scripts
    • Removedsetup_cdn_for_website
    • Removedsetup_kubernetes_cluster_for_workload
    • Removedsetup_mysql_database
    • Removedsetup_permissions
    • Removedsetup_postgresql_database
    • Removedsetup_service_user
    • Removedsetup_standard_user
    • Removedsetup_web_server_rules
    • Removedsetup_website
    • Addedsnapshot_create
    • Addedsnapshot_create_from_url
    • Addedsnapshot_delete
    • Addedsnapshot_update
    • Addedssh_key_create
    • Addedssh_key_delete
    • Addedssh_key_get
    • Addedssh_key_list
    • Addedssh_key_update
    • Removedstart
    • Removedstart_bare_metal_server
    • Removedstart_maintenance
    • Removedstart_migration
    • Removedstart_version_upgrade
    • Addedstartup_script_create_common_startup_script
    • Addedstartup_script_create_startup_script
    • Addedstartup_script_delete_startup_script
    • Addedstartup_script_get_startup_script
    • Addedstartup_script_get_startup_script_content
    • Addedstartup_script_list_boot_scripts
    • Addedstartup_script_list_pxe_scripts
    • Addedstartup_script_list_startup_scripts
    • Addedstartup_script_search_startup_scripts
    • Addedstartup_script_update_startup_script
    • Removedstop
    • Removedstop_bare_metal_server
    • Removedstop_migration
    • Addedstorage_gateway_add_export
    • Addedstorage_gateway_create
    • Addedstorage_gateway_delete
    • Addedstorage_gateway_delete_export
    • Addedstorage_gateway_get_cost_analysis
    • Addedstorage_gateway_get_gateway_status
    • Addedstorage_gateway_get_mount_instructions
    • Addedstorage_gateway_list_by_region
    • Addedstorage_gateway_list_by_status
    • Addedstorage_gateway_list_by_type
    • Addedstorage_gateway_optimize_gateway_configuration
    • Addedstorage_gateway_update
    • Addedsubaccount_analyze_costs
    • Addedsubaccount_create
    • Addedsubaccount_find_by_email
    • Addedsubaccount_find_by_name
    • Addedsubaccount_get_balance_summary
    • Addedsubaccount_get_status_overview
    • Addedsubaccount_monitor_usage
    • Addedsubaccount_setup_permissions
    • Removedupdate
    • Removedupdate_bare_metal_server
    • Removedupdate_cdn_zone
    • Removedupdate_connection_pool
    • Removedupdate_group
    • Removedupdate_kafka_topic
    • Removedupdate_kubernetes_cluster
    • Removedupdate_kubernetes_node_pool
    • Removedupdate_record
    • Removedupdate_serverless_inference
    • Removedupdate_startup_script
    • Removedupdate_user
    • Removedupdate_user_access_control
    • Removedupdate_vpc2
    • Removedupgrade_kubernetes_cluster
    • Addeduser_add_ip_whitelist_entry
    • Addeduser_analyze_user_permissions
    • Addeduser_create
    • Addeduser_delete
    • Addeduser_get
    • Addeduser_get_ip_whitelist
    • Addeduser_get_ip_whitelist_entry
    • Addeduser_list_available_permissions
    • Addeduser_remove_ip_whitelist_entry
    • Addeduser_setup_service_user
    • Addeduser_setup_standard_user
    • Addeduser_update
    • Removedvalidate_record
    • Removedvalidate_s3_access
    • Addedvpc_attach_to_instance
    • Addedvpc_create
    • Addedvpc_create_vpc2
    • Addedvpc_delete
    • Addedvpc_delete_vpc2
    • Addedvpc_detach_from_instance
    • Addedvpc_get_network_info
    • Addedvpc_list_by_region
    • Addedvpc_list_instance_networks
    • Addedvpc_update
    • Addedvpc_update_vpc2
  2. 244 tool updatesv1.0.0
    • Changedadd_export2 fields changed
      • removedInput schema / properties / export_config / title
        Removed value: -"Export Config"
      • removedInput schema / properties / gateway_identifier / title
        Removed value: -"Gateway Identifier"
    • Changedadd_ip_whitelist_entry3 fields changed
      • removedInput schema / properties / subnet / title
        Removed value: -"Subnet"
      • removedInput schema / properties / subnet_size / title
        Removed value: -"Subnet Size"
      • removedInput schema / properties / user_id / title
        Removed value: -"User Id"
    • Changedanalyze_cdn_performance2 fields changed
      • removedInput schema / properties / days / title
        Removed value: -"Days"
      • removedInput schema / properties / zone_identifier / title
        Removed value: -"Zone Identifier"
    • Changedanalyze_costs2 fields changed
      • removedInput schema / properties / analysis_days / title
        Removed value: -"Analysis Days"
      • removedInput schema / properties / subaccount_id / title
        Removed value: -"Subaccount Id"
    • Changedanalyze_domain1 field changed
      • removedInput schema / properties / domain / title
        Removed value: -"Domain"
    • Changedanalyze_inference_usage1 field changed
      • removedInput schema / properties / subscription_id / title
        Removed value: -"Subscription Id"
    • Changedanalyze_kubernetes_cluster_costs1 field changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
    • Changedanalyze_spending_trends1 field changed
      • removedInput schema / properties / months / title
        Removed value: -"Months"
    • Changedanalyze_user_permissions1 field changed
      • removedInput schema / properties / user_id / title
        Removed value: -"User Id"
    • Changedattach3 fields changed
      • removedInput schema / properties / instance_identifier / title
        Removed value: -"Instance Identifier"
      • removedInput schema / properties / live / title
        Removed value: -"Live"
      • removedInput schema / properties / volume_identifier / title
        Removed value: -"Volume Identifier"
    • Changedattach_to_instance3 fields changed
      • removedInput schema / properties / instance_identifier / title
        Removed value: -"Instance Identifier"
      • removedInput schema / properties / vpc_identifier / title
        Removed value: -"Vpc Identifier"
      • removedInput schema / properties / vpc_type / title
        Removed value: -"Vpc Type"
    • Changedcompare_plans3 fields changed
      • removedInput schema / properties / plan_ids / title
        Removed value: -"Plan Ids"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedconfigure_basic_web_lb7 fields changed
      • removedInput schema / properties / backend_instances / title
        Removed value: -"Backend Instances"
      • removedInput schema / properties / domain_sub / title
        Removed value: -"Domain Sub"
      • removedInput schema / properties / domain_zone / title
        Removed value: -"Domain Zone"
      • removedInput schema / properties / enable_ssl / title
        Removed value: -"Enable Ssl"
      • removedInput schema / properties / label / title
        Removed value: -"Label"
      • removedInput schema / properties / region / title
        Removed value: -"Region"
      • removedInput schema / properties / ssl_redirect / title
        Removed value: -"Ssl Redirect"
    • Changedconvert_instance_ip3 fields changed
      • removedInput schema / properties / instance_id / title
        Removed value: -"Instance Id"
      • removedInput schema / properties / ip_address / title
        Removed value: -"Ip Address"
      • removedInput schema / properties / label / title
        Removed value: -"Label"
    • Changedcreate7 fields changed
      • removedInput schema / properties / acls / title
        Removed value: -"Acls"
      • removedInput schema / properties / api_enabled / title
        Removed value: -"Api Enabled"
      • removedInput schema / properties / email / title
        Removed value: -"Email"
      • removedInput schema / properties / first_name / title
        Removed value: -"First Name"
      • removedInput schema / properties / last_name / title
        Removed value: -"Last Name"
      • removedInput schema / properties / password / title
        Removed value: -"Password"
      • removedInput schema / properties / service_user / title
        Removed value: -"Service User"
    • Changedcreate_bare_metal_server17 fields changed
      • removedInput schema / properties / attach_private_network / title
        Removed value: -"Attach Private Network"
      • removedInput schema / properties / attach_vpc / title
        Removed value: -"Attach Vpc"
      • removedInput schema / properties / attach_vpc2 / title
        Removed value: -"Attach Vpc2"
      • removedInput schema / properties / enable_ddos_protection / title
        Removed value: -"Enable Ddos Protection"
      • removedInput schema / properties / enable_ipv6 / title
        Removed value: -"Enable Ipv6"
      • removedInput schema / properties / enable_private_network / title
        Removed value: -"Enable Private Network"
      • removedInput schema / properties / hostname / title
        Removed value: -"Hostname"
      • removedInput schema / properties / iso_id / title
        Removed value: -"Iso Id"
      • removedInput schema / properties / label / title
        Removed value: -"Label"
      • removedInput schema / properties / os_id / title
        Removed value: -"Os Id"
      • removedInput schema / properties / persistent_pxe / title
        Removed value: -"Persistent Pxe"
      • removedInput schema / properties / plan / title
        Removed value: -"Plan"
      • removedInput schema / properties / region / title
        Removed value: -"Region"
      • removedInput schema / properties / script_id / title
        Removed value: -"Script Id"
      • removedInput schema / properties / ssh_key_ids / title
        Removed value: -"Ssh Key Ids"
      • removedInput schema / properties / tag / title
        Removed value: -"Tag"
      • removedInput schema / properties / user_data / title
        Removed value: -"User Data"
    • Changedcreate_cdn_ssl_certificate4 fields changed
      • removedInput schema / properties / certificate / title
        Removed value: -"Certificate"
      • removedInput schema / properties / certificate_chain / title
        Removed value: -"Certificate Chain"
      • removedInput schema / properties / private_key / title
        Removed value: -"Private Key"
      • removedInput schema / properties / zone_identifier / title
        Removed value: -"Zone Identifier"
    • Changedcreate_cdn_zone8 fields changed
      • removedInput schema / properties / block_ai_bots / title
        Removed value: -"Block Ai Bots"
      • removedInput schema / properties / block_bad_bots / title
        Removed value: -"Block Bad Bots"
      • removedInput schema / properties / block_ip_addresses / title
        Removed value: -"Block Ip Addresses"
      • removedInput schema / properties / cors_policy / title
        Removed value: -"Cors Policy"
      • removedInput schema / properties / gzip_compression / title
        Removed value: -"Gzip Compression"
      • removedInput schema / properties / origin_domain / title
        Removed value: -"Origin Domain"
      • removedInput schema / properties / origin_scheme / title
        Removed value: -"Origin Scheme"
      • removedInput schema / properties / regions / title
        Removed value: -"Regions"
    • Changedcreate_common_startup_script2 fields changed
      • removedInput schema / properties / script_type / title
        Removed value: -"Script Type"
      • removedInput schema / properties / ssh_port / title
        Removed value: -"Ssh Port"
    • Changedcreate_connection_pool6 fields changed
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / mode / title
        Removed value: -"Mode"
      • removedInput schema / properties / name / title
        Removed value: -"Name"
      • removedInput schema / properties / size / title
        Removed value: -"Size"
      • removedInput schema / properties / username / title
        Removed value: -"Username"
    • Changedcreate_domain3 fields changed
      • removedInput schema / properties / dns_sec / title
        Removed value: -"Dns Sec"
      • removedInput schema / properties / domain / title
        Removed value: -"Domain"
      • removedInput schema / properties / ip / title
        Removed value: -"Ip"
    • Changedcreate_forwarding_rule5 fields changed
      • removedInput schema / properties / backend_port / title
        Removed value: -"Backend Port"
      • removedInput schema / properties / backend_protocol / title
        Removed value: -"Backend Protocol"
      • removedInput schema / properties / frontend_port / title
        Removed value: -"Frontend Port"
      • removedInput schema / properties / frontend_protocol / title
        Removed value: -"Frontend Protocol"
      • removedInput schema / properties / load_balancer_id / title
        Removed value: -"Load Balancer Id"
    • Changedcreate_from_url2 fields changed
      • removedInput schema / properties / description / title
        Removed value: -"Description"
      • removedInput schema / properties / url / title
        Removed value: -"Url"
    • Changedcreate_group1 field changed
      • removedInput schema / properties / description / title
        Removed value: -"Description"
    • Changedcreate_ipv42 fields changed
      • removedInput schema / properties / instance_id / title
        Removed value: -"Instance Id"
      • removedInput schema / properties / reboot / title
        Removed value: -"Reboot"
    • Changedcreate_iso1 field changed
      • removedInput schema / properties / url / title
        Removed value: -"Url"
    • Changedcreate_kafka_topic6 fields changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / name / title
        Removed value: -"Name"
      • removedInput schema / properties / partitions / title
        Removed value: -"Partitions"
      • removedInput schema / properties / replication / title
        Removed value: -"Replication"
      • removedInput schema / properties / retention_bytes / title
        Removed value: -"Retention Bytes"
      • removedInput schema / properties / retention_hours / title
        Removed value: -"Retention Hours"
    • Changedcreate_kubernetes_cluster6 fields changed
      • removedInput schema / properties / enable_firewall / title
        Removed value: -"Enable Firewall"
      • removedInput schema / properties / ha_controlplanes / title
        Removed value: -"Ha Controlplanes"
      • removedInput schema / properties / label / title
        Removed value: -"Label"
      • removedInput schema / properties / node_pools / title
        Removed value: -"Node Pools"
      • removedInput schema / properties / region / title
        Removed value: -"Region"
      • removedInput schema / properties / version / title
        Removed value: -"Version"
    • Changedcreate_kubernetes_node_pool9 fields changed
      • removedInput schema / properties / auto_scaler / title
        Removed value: -"Auto Scaler"
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
      • removedInput schema / properties / label / title
        Removed value: -"Label"
      • removedInput schema / properties / labels / title
        Removed value: -"Labels"
      • removedInput schema / properties / max_nodes / title
        Removed value: -"Max Nodes"
      • removedInput schema / properties / min_nodes / title
        Removed value: -"Min Nodes"
      • removedInput schema / properties / node_quantity / title
        Removed value: -"Node Quantity"
      • removedInput schema / properties / plan / title
        Removed value: -"Plan"
      • removedInput schema / properties / tag / title
        Removed value: -"Tag"
    • Changedcreate_logical_database2 fields changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / name / title
        Removed value: -"Name"
    • Changedcreate_read_replica4 fields changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / label / title
        Removed value: -"Label"
      • removedInput schema / properties / plan / title
        Removed value: -"Plan"
      • removedInput schema / properties / region / title
        Removed value: -"Region"
    • Changedcreate_record6 fields changed
      • removedInput schema / properties / data / title
        Removed value: -"Data"
      • removedInput schema / properties / domain / title
        Removed value: -"Domain"
      • removedInput schema / properties / name / title
        Removed value: -"Name"
      • removedInput schema / properties / priority / title
        Removed value: -"Priority"
      • removedInput schema / properties / record_type / title
        Removed value: -"Record Type"
      • removedInput schema / properties / ttl / title
        Removed value: -"Ttl"
    • Changedcreate_rule8 fields changed
      • removedInput schema / properties / firewall_group_id / title
        Removed value: -"Firewall Group Id"
      • removedInput schema / properties / ip_type / title
        Removed value: -"Ip Type"
      • removedInput schema / properties / notes / title
        Removed value: -"Notes"
      • removedInput schema / properties / port / title
        Removed value: -"Port"
      • removedInput schema / properties / protocol / title
        Removed value: -"Protocol"
      • removedInput schema / properties / source / title
        Removed value: -"Source"
      • removedInput schema / properties / subnet / title
        Removed value: -"Subnet"
      • removedInput schema / properties / subnet_size / title
        Removed value: -"Subnet Size"
    • Changedcreate_serverless_inference1 field changed
      • removedInput schema / properties / label / title
        Removed value: -"Label"
    • Changedcreate_startup_script3 fields changed
      • removedInput schema / properties / name / title
        Removed value: -"Name"
      • removedInput schema / properties / script / title
        Removed value: -"Script"
      • removedInput schema / properties / script_type / title
        Removed value: -"Script Type"
    • Changedcreate_user5 fields changed
      • removedInput schema / properties / access_level / title
        Removed value: -"Access Level"
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / encryption / title
        Removed value: -"Encryption"
      • removedInput schema / properties / password / title
        Removed value: -"Password"
      • removedInput schema / properties / username / title
        Removed value: -"Username"
    • Changedcreate_vpc25 fields changed
      • removedInput schema / properties / description / title
        Removed value: -"Description"
      • removedInput schema / properties / ip_block / title
        Removed value: -"Ip Block"
      • removedInput schema / properties / ip_type / title
        Removed value: -"Ip Type"
      • removedInput schema / properties / prefix_length / title
        Removed value: -"Prefix Length"
      • removedInput schema / properties / region / title
        Removed value: -"Region"
    • Changeddelete1 field changed
      • removedInput schema / properties / user_id / title
        Removed value: -"User Id"
    • Changeddelete_bare_metal_server1 field changed
      • removedInput schema / properties / server_identifier / title
        Removed value: -"Server Identifier"
    • Changeddelete_cdn_ssl_certificate1 field changed
      • removedInput schema / properties / zone_identifier / title
        Removed value: -"Zone Identifier"
    • Changeddelete_cdn_zone1 field changed
      • removedInput schema / properties / zone_identifier / title
        Removed value: -"Zone Identifier"
    • Changeddelete_connection_pool2 fields changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / pool_name / title
        Removed value: -"Pool Name"
    • Changeddelete_domain1 field changed
      • removedInput schema / properties / domain / title
        Removed value: -"Domain"
    • Changeddelete_export2 fields changed
      • removedInput schema / properties / export_id / title
        Removed value: -"Export Id"
      • removedInput schema / properties / gateway_identifier / title
        Removed value: -"Gateway Identifier"
    • Changeddelete_forwarding_rule2 fields changed
      • removedInput schema / properties / forwarding_rule_id / title
        Removed value: -"Forwarding Rule Id"
      • removedInput schema / properties / load_balancer_id / title
        Removed value: -"Load Balancer Id"
    • Changeddelete_group1 field changed
      • removedInput schema / properties / firewall_group_id / title
        Removed value: -"Firewall Group Id"
    • Changeddelete_ipv42 fields changed
      • removedInput schema / properties / instance_id / title
        Removed value: -"Instance Id"
      • removedInput schema / properties / ipv4 / title
        Removed value: -"Ipv4"
    • Changeddelete_iso3 fields changed
      • removedInput schema / properties / iso_id / title
        Removed value: -"Iso Id"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changeddelete_kafka_topic2 fields changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / topic_name / title
        Removed value: -"Topic Name"
    • Changeddelete_kubernetes_cluster1 field changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
    • Changeddelete_kubernetes_cluster_with_resources1 field changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
    • Changeddelete_kubernetes_node3 fields changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
      • removedInput schema / properties / node_identifier / title
        Removed value: -"Node Identifier"
      • removedInput schema / properties / nodepool_identifier / title
        Removed value: -"Nodepool Identifier"
    • Changeddelete_kubernetes_node_pool2 fields changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
      • removedInput schema / properties / nodepool_identifier / title
        Removed value: -"Nodepool Identifier"
    • Changeddelete_logical_database2 fields changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / db_name / title
        Removed value: -"Db Name"
    • Changeddelete_record2 fields changed
      • removedInput schema / properties / domain / title
        Removed value: -"Domain"
      • removedInput schema / properties / record_id / title
        Removed value: -"Record Id"
    • Changeddelete_rule2 fields changed
      • removedInput schema / properties / firewall_group_id / title
        Removed value: -"Firewall Group Id"
      • removedInput schema / properties / firewall_rule_id / title
        Removed value: -"Firewall Rule Id"
    • Changeddelete_serverless_inference1 field changed
      • removedInput schema / properties / subscription_id / title
        Removed value: -"Subscription Id"
    • Changeddelete_ssl1 field changed
      • removedInput schema / properties / load_balancer_id / title
        Removed value: -"Load Balancer Id"
    • Changeddelete_startup_script3 fields changed
      • removedInput schema / properties / script_identifier / title
        Removed value: -"Script Identifier"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changeddelete_user2 fields changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / username / title
        Removed value: -"Username"
    • Changeddelete_vpc21 field changed
      • removedInput schema / properties / vpc2_identifier / title
        Removed value: -"Vpc2 Identifier"
    • Changeddetach2 fields changed
      • removedInput schema / properties / live / title
        Removed value: -"Live"
      • removedInput schema / properties / volume_identifier / title
        Removed value: -"Volume Identifier"
    • Changeddetach_from_instance3 fields changed
      • removedInput schema / properties / instance_identifier / title
        Removed value: -"Instance Identifier"
      • removedInput schema / properties / vpc_identifier / title
        Removed value: -"Vpc Identifier"
      • removedInput schema / properties / vpc_type / title
        Removed value: -"Vpc Type"
    • Changeddisable_auto_ssl1 field changed
      • removedInput schema / properties / load_balancer_id / title
        Removed value: -"Load Balancer Id"
    • Changedexport_zone_file3 fields changed
      • removedInput schema / properties / domain / title
        Removed value: -"Domain"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedfind_by_email1 field changed
      • removedInput schema / properties / email / title
        Removed value: -"Email"
    • Changedfind_by_name1 field changed
      • removedInput schema / properties / name / title
        Removed value: -"Name"
    • Changedfind_by_region1 field changed
      • removedInput schema / properties / region / title
        Removed value: -"Region"
    • Changedfind_regions_with_plan3 fields changed
      • removedInput schema / properties / plan_id / title
        Removed value: -"Plan Id"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedfork_database5 fields changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / label / title
        Removed value: -"Label"
      • removedInput schema / properties / plan / title
        Removed value: -"Plan"
      • removedInput schema / properties / region / title
        Removed value: -"Region"
      • removedInput schema / properties / vpc_id / title
        Removed value: -"Vpc Id"
    • Changedgenerate_docker_credentials3 fields changed
      • removedInput schema / properties / expiry_seconds / title
        Removed value: -"Expiry Seconds"
      • removedInput schema / properties / read_write / title
        Removed value: -"Read Write"
      • removedInput schema / properties / registry_identifier / title
        Removed value: -"Registry Identifier"
    • Changedgenerate_kubernetes_credentials4 fields changed
      • removedInput schema / properties / base64_encode / title
        Removed value: -"Base64 Encode"
      • removedInput schema / properties / expiry_seconds / title
        Removed value: -"Expiry Seconds"
      • removedInput schema / properties / read_write / title
        Removed value: -"Read Write"
      • removedInput schema / properties / registry_identifier / title
        Removed value: -"Registry Identifier"
    • Changedget1 field changed
      • removedInput schema / properties / user_id / title
        Removed value: -"User Id"
    • Changedget_application1 field changed
      • removedInput schema / properties / app_id / title
        Removed value: -"App Id"
    • Changedget_application_deployment_guide1 field changed
      • removedInput schema / properties / app_id / title
        Removed value: -"App Id"
    • Changedget_applications_by_vendor1 field changed
      • removedInput schema / properties / vendor / title
        Removed value: -"Vendor"
    • Changedget_availability1 field changed
      • removedInput schema / properties / region_id / title
        Removed value: -"Region Id"
    • Changedget_bandwidth1 field changed
      • removedInput schema / properties / instance_id / title
        Removed value: -"Instance Id"
    • Changedget_bare_metal_bandwidth1 field changed
      • removedInput schema / properties / server_identifier / title
        Removed value: -"Server Identifier"
    • Changedget_bare_metal_neighbors1 field changed
      • removedInput schema / properties / server_identifier / title
        Removed value: -"Server Identifier"
    • Changedget_bare_metal_plan1 field changed
      • removedInput schema / properties / plan_id / title
        Removed value: -"Plan Id"
    • Changedget_bare_metal_server1 field changed
      • removedInput schema / properties / server_identifier / title
        Removed value: -"Server Identifier"
    • Changedget_bare_metal_server_summary1 field changed
      • removedInput schema / properties / server_identifier / title
        Removed value: -"Server Identifier"
    • Changedget_bare_metal_user_data1 field changed
      • removedInput schema / properties / server_identifier / title
        Removed value: -"Server Identifier"
    • Changedget_cdn_ssl_certificate1 field changed
      • removedInput schema / properties / zone_identifier / title
        Removed value: -"Zone Identifier"
    • Changedget_cdn_zone1 field changed
      • removedInput schema / properties / zone_identifier / title
        Removed value: -"Zone Identifier"
    • Changedget_cdn_zone_logs4 fields changed
      • removedInput schema / properties / end_date / title
        Removed value: -"End Date"
      • removedInput schema / properties / per_page / title
        Removed value: -"Per Page"
      • removedInput schema / properties / start_date / title
        Removed value: -"Start Date"
      • removedInput schema / properties / zone_identifier / title
        Removed value: -"Zone Identifier"
    • Changedget_cdn_zone_stats1 field changed
      • removedInput schema / properties / zone_identifier / title
        Removed value: -"Zone Identifier"
    • Changedget_cdn_zone_summary1 field changed
      • removedInput schema / properties / zone_identifier / title
        Removed value: -"Zone Identifier"
    • Changedget_cheapest_plan1 field changed
      • removedInput schema / properties / plan_type / title
        Removed value: -"Plan Type"
    • Changedget_configuration_summary1 field changed
      • removedInput schema / properties / load_balancer_id / title
        Removed value: -"Load Balancer Id"
    • Changedget_connection_pool2 fields changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / pool_name / title
        Removed value: -"Pool Name"
    • Changedget_cost_analysis1 field changed
      • removedInput schema / properties / gateway_identifier / title
        Removed value: -"Gateway Identifier"
    • Changedget_cost_breakdown_by_service1 field changed
      • removedInput schema / properties / days / title
        Removed value: -"Days"
    • Changedget_docker_login_command3 fields changed
      • removedInput schema / properties / expiry_seconds / title
        Removed value: -"Expiry Seconds"
      • removedInput schema / properties / read_write / title
        Removed value: -"Read Write"
      • removedInput schema / properties / registry_identifier / title
        Removed value: -"Registry Identifier"
    • Changedget_domain1 field changed
      • removedInput schema / properties / domain / title
        Removed value: -"Domain"
    • Changedget_firewall_rule2 fields changed
      • removedInput schema / properties / firewall_rule_id / title
        Removed value: -"Firewall Rule Id"
      • removedInput schema / properties / load_balancer_id / title
        Removed value: -"Load Balancer Id"
    • Changedget_forwarding_rule2 fields changed
      • removedInput schema / properties / forwarding_rule_id / title
        Removed value: -"Forwarding Rule Id"
      • removedInput schema / properties / load_balancer_id / title
        Removed value: -"Load Balancer Id"
    • Changedget_gateway_status1 field changed
      • removedInput schema / properties / gateway_identifier / title
        Removed value: -"Gateway Identifier"
    • Changedget_group1 field changed
      • removedInput schema / properties / firewall_group_id / title
        Removed value: -"Firewall Group Id"
    • Changedget_health_status1 field changed
      • removedInput schema / properties / load_balancer_id / title
        Removed value: -"Load Balancer Id"
    • Changedget_inference_deployment_guide1 field changed
      • removedInput schema / properties / subscription_id / title
        Removed value: -"Subscription Id"
    • Changedget_inference_usage1 field changed
      • removedInput schema / properties / subscription_id / title
        Removed value: -"Subscription Id"
    • Changedget_invoice1 field changed
      • removedInput schema / properties / invoice_id / title
        Removed value: -"Invoice Id"
    • Changedget_ip_whitelist1 field changed
      • removedInput schema / properties / user_id / title
        Removed value: -"User Id"
    • Changedget_ip_whitelist_entry3 fields changed
      • removedInput schema / properties / subnet / title
        Removed value: -"Subnet"
      • removedInput schema / properties / subnet_size / title
        Removed value: -"Subnet Size"
      • removedInput schema / properties / user_id / title
        Removed value: -"User Id"
    • Changedget_iso1 field changed
      • removedInput schema / properties / iso_id / title
        Removed value: -"Iso Id"
    • Changedget_iso_by_name1 field changed
      • removedInput schema / properties / name / title
        Removed value: -"Name"
    • Changedget_kafka_topic2 fields changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / topic_name / title
        Removed value: -"Topic Name"
    • Changedget_kubernetes_available_upgrades1 field changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
    • Changedget_kubernetes_cluster1 field changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
    • Changedget_kubernetes_cluster_config1 field changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
    • Changedget_kubernetes_cluster_resources1 field changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
    • Changedget_kubernetes_cluster_status1 field changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
    • Changedget_kubernetes_node3 fields changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
      • removedInput schema / properties / node_identifier / title
        Removed value: -"Node Identifier"
      • removedInput schema / properties / nodepool_identifier / title
        Removed value: -"Nodepool Identifier"
    • Changedget_kubernetes_node_pool2 fields changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
      • removedInput schema / properties / nodepool_identifier / title
        Removed value: -"Nodepool Identifier"
    • Changedget_logical_database2 fields changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / db_name / title
        Removed value: -"Db Name"
    • Changedget_maintenance_updates1 field changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
    • Changedget_marketplace_app_variables1 field changed
      • removedInput schema / properties / app_id / title
        Removed value: -"App Id"
    • Changedget_migration_status1 field changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
    • Changedget_monthly_usage_summary2 fields changed
      • removedInput schema / properties / month / title
        Removed value: -"Month"
      • removedInput schema / properties / year / title
        Removed value: -"Year"
    • Changedget_mount_instructions1 field changed
      • removedInput schema / properties / gateway_identifier / title
        Removed value: -"Gateway Identifier"
    • Changedget_mounting_instructions1 field changed
      • removedInput schema / properties / volume_identifier / title
        Removed value: -"Volume Identifier"
    • Changedget_network_info2 fields changed
      • removedInput schema / properties / identifier / title
        Removed value: -"Identifier"
      • removedInput schema / properties / vpc_type / title
        Removed value: -"Vpc Type"
    • Changedget_operating_system1 field changed
      • removedInput schema / properties / os_id / title
        Removed value: -"Os Id"
    • Changedget_os_by_name1 field changed
      • removedInput schema / properties / name / title
        Removed value: -"Name"
    • Changedget_plan1 field changed
      • removedInput schema / properties / plan_id / title
        Removed value: -"Plan Id"
    • Changedget_plan_by_type_and_spec5 fields changed
      • removedInput schema / properties / plan_type / title
        Removed value: -"Plan Type"
      • removedInput schema / properties / ram_gb / title
        Removed value: -"Ram Gb"
      • removedInput schema / properties / vcpus / title
        Removed value: -"Vcpus"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedget_plans_by_region_availability3 fields changed
      • removedInput schema / properties / region / title
        Removed value: -"Region"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedget_popular_marketplace_apps1 field changed
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
    • Changedget_record2 fields changed
      • removedInput schema / properties / domain / title
        Removed value: -"Domain"
      • removedInput schema / properties / record_id / title
        Removed value: -"Record Id"
    • Changedget_registry_info1 field changed
      • removedInput schema / properties / registry_identifier / title
        Removed value: -"Registry Identifier"
    • Changedget_rule2 fields changed
      • removedInput schema / properties / firewall_group_id / title
        Removed value: -"Firewall Group Id"
      • removedInput schema / properties / firewall_rule_id / title
        Removed value: -"Firewall Rule Id"
    • Changedget_s3_config1 field changed
      • removedInput schema / properties / object_storage_id / title
        Removed value: -"Object Storage Id"
    • Changedget_serverless_inference1 field changed
      • removedInput schema / properties / subscription_id / title
        Removed value: -"Subscription Id"
    • Changedget_startup_script1 field changed
      • removedInput schema / properties / script_identifier / title
        Removed value: -"Script Identifier"
    • Changedget_startup_script_content3 fields changed
      • removedInput schema / properties / script_identifier / title
        Removed value: -"Script Identifier"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedget_usage1 field changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
    • Changedget_user2 fields changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / username / title
        Removed value: -"Username"
    • Changedget_volume_status1 field changed
      • removedInput schema / properties / volume_identifier / title
        Removed value: -"Volume Identifier"
    • Changedget_vpc21 field changed
      • removedInput schema / properties / vpc2_identifier / title
        Removed value: -"Vpc2 Identifier"
    • Changedimport_zone_file5 fields changed
      • removedInput schema / properties / domain / title
        Removed value: -"Domain"
      • removedInput schema / properties / dry_run / title
        Removed value: -"Dry Run"
      • removedInput schema / properties / zone_data / title
        Removed value: -"Zone Data"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_application_images2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_applications1 field changed
      • removedInput schema / properties / app_type / title
        Removed value: -"App Type"
    • Changedlist_attached2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_available_versions1 field changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
    • Changedlist_backups1 field changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
    • Changedlist_bare_metal_plans1 field changed
      • removedInput schema / properties / plan_type / title
        Removed value: -"Plan Type"
    • Changedlist_bare_metal_servers_by_region1 field changed
      • removedInput schema / properties / region / title
        Removed value: -"Region"
    • Changedlist_bare_metal_servers_by_status1 field changed
      • removedInput schema / properties / status / title
        Removed value: -"Status"
    • Changedlist_billing_history2 fields changed
      • removedInput schema / properties / days / title
        Removed value: -"Days"
      • removedInput schema / properties / per_page / title
        Removed value: -"Per Page"
    • Changedlist_boot_scripts2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_by_continent3 fields changed
      • removedInput schema / properties / continent / title
        Removed value: -"Continent"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_by_region3 fields changed
      • removedInput schema / properties / region / title
        Removed value: -"Region"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_by_status1 field changed
      • removedInput schema / properties / status / title
        Removed value: -"Status"
    • Changedlist_by_type1 field changed
      • removedInput schema / properties / gateway_type / title
        Removed value: -"Gateway Type"
    • Changedlist_cluster_tiers1 field changed
      • removedInput schema / properties / cluster_id / title
        Removed value: -"Cluster Id"
    • Changedlist_connection_pools1 field changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
    • Changedlist_custom_isos2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_databases1 field changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
    • Changedlist_domains2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_firewall_rules1 field changed
      • removedInput schema / properties / load_balancer_id / title
        Removed value: -"Load Balancer Id"
    • Changedlist_forwarding_rules1 field changed
      • removedInput schema / properties / load_balancer_id / title
        Removed value: -"Load Balancer Id"
    • Changedlist_groups2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_instance_networks1 field changed
      • removedInput schema / properties / instance_identifier / title
        Removed value: -"Instance Identifier"
    • Changedlist_invoice_items2 fields changed
      • removedInput schema / properties / invoice_id / title
        Removed value: -"Invoice Id"
      • removedInput schema / properties / per_page / title
        Removed value: -"Per Page"
    • Changedlist_invoices1 field changed
      • removedInput schema / properties / per_page / title
        Removed value: -"Per Page"
    • Changedlist_ipv43 fields changed
      • removedInput schema / properties / instance_id / title
        Removed value: -"Instance Id"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_ipv63 fields changed
      • removedInput schema / properties / instance_id / title
        Removed value: -"Instance Id"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_isos2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_kafka_topics1 field changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
    • Changedlist_kubernetes_node_pools1 field changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
    • Changedlist_kubernetes_nodes2 fields changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
      • removedInput schema / properties / nodepool_identifier / title
        Removed value: -"Nodepool Identifier"
    • Changedlist_linux_os2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_operating_systems2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_os_by_family3 fields changed
      • removedInput schema / properties / family / title
        Removed value: -"Family"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_plans2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_public_isos2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_pxe_scripts2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_records3 fields changed
      • removedInput schema / properties / domain / title
        Removed value: -"Domain"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_rules3 fields changed
      • removedInput schema / properties / firewall_group_id / title
        Removed value: -"Firewall Group Id"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_startup_scripts2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_unattached2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_users1 field changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
    • Changedlist_vc2_plans2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_vhf_plans2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_voc_plans2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_vpc22 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_windows_os2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedlist_with_ddos_protection2 fields changed
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedmonitor_inference_performance1 field changed
      • removedInput schema / properties / subscription_id / title
        Removed value: -"Subscription Id"
    • Changedoptimize_gateway_configuration1 field changed
      • removedInput schema / properties / gateway_identifier / title
        Removed value: -"Gateway Identifier"
    • Changedoptimize_inference_costs1 field changed
      • removedInput schema / properties / subscription_id / title
        Removed value: -"Subscription Id"
    • Changedpromote_read_replica1 field changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
    • Changedpurge_cdn_zone1 field changed
      • removedInput schema / properties / zone_identifier / title
        Removed value: -"Zone Identifier"
    • Changedreboot1 field changed
      • removedInput schema / properties / instance_id / title
        Removed value: -"Instance Id"
    • Changedreboot_bare_metal_server1 field changed
      • removedInput schema / properties / server_identifier / title
        Removed value: -"Server Identifier"
    • Changedrecycle_kubernetes_node3 fields changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
      • removedInput schema / properties / node_identifier / title
        Removed value: -"Node Identifier"
      • removedInput schema / properties / nodepool_identifier / title
        Removed value: -"Nodepool Identifier"
    • Changedregenerate_keys1 field changed
      • removedInput schema / properties / object_storage_id / title
        Removed value: -"Object Storage Id"
    • Changedreinstall2 fields changed
      • removedInput schema / properties / hostname / title
        Removed value: -"Hostname"
      • removedInput schema / properties / instance_id / title
        Removed value: -"Instance Id"
    • Changedreinstall_bare_metal_server2 fields changed
      • removedInput schema / properties / hostname / title
        Removed value: -"Hostname"
      • removedInput schema / properties / server_identifier / title
        Removed value: -"Server Identifier"
    • Changedremove_ip_whitelist_entry3 fields changed
      • removedInput schema / properties / subnet / title
        Removed value: -"Subnet"
      • removedInput schema / properties / subnet_size / title
        Removed value: -"Subnet Size"
      • removedInput schema / properties / user_id / title
        Removed value: -"User Id"
    • Changedrestore_from_backup6 fields changed
      • removedInput schema / properties / backup_label / title
        Removed value: -"Backup Label"
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / database_label / title
        Removed value: -"Database Label"
      • removedInput schema / properties / plan / title
        Removed value: -"Plan"
      • removedInput schema / properties / region / title
        Removed value: -"Region"
      • removedInput schema / properties / vpc_id / title
        Removed value: -"Vpc Id"
    • Changedscale_kubernetes_node_pool3 fields changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
      • removedInput schema / properties / nodepool_identifier / title
        Removed value: -"Nodepool Identifier"
      • removedInput schema / properties / target_node_count / title
        Removed value: -"Target Node Count"
    • Changedsearch_applications3 fields changed
      • removedInput schema / properties / app_type / title
        Removed value: -"App Type"
      • removedInput schema / properties / search_term / title
        Removed value: -"Search Term"
      • removedInput schema / properties / vendor / title
        Removed value: -"Vendor"
    • Changedsearch_bare_metal_plans4 fields changed
      • removedInput schema / properties / max_monthly_cost / title
        Removed value: -"Max Monthly Cost"
      • removedInput schema / properties / min_disk / title
        Removed value: -"Min Disk"
      • removedInput schema / properties / min_ram / title
        Removed value: -"Min Ram"
      • removedInput schema / properties / min_vcpus / title
        Removed value: -"Min Vcpus"
    • Changedsearch_os_by_name3 fields changed
      • removedInput schema / properties / name / title
        Removed value: -"Name"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedsearch_plans_by_specs6 fields changed
      • removedInput schema / properties / max_monthly_cost / title
        Removed value: -"Max Monthly Cost"
      • removedInput schema / properties / min_disk / title
        Removed value: -"Min Disk"
      • removedInput schema / properties / min_ram / title
        Removed value: -"Min Ram"
      • removedInput schema / properties / min_vcpus / title
        Removed value: -"Min Vcpus"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedsearch_startup_scripts3 fields changed
      • removedInput schema / properties / query / title
        Removed value: -"Query"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedsetup_cdn_for_website4 fields changed
      • removedInput schema / properties / enable_compression / title
        Removed value: -"Enable Compression"
      • removedInput schema / properties / enable_security / title
        Removed value: -"Enable Security"
      • removedInput schema / properties / origin_domain / title
        Removed value: -"Origin Domain"
      • removedInput schema / properties / regions / title
        Removed value: -"Regions"
    • Changedsetup_kubernetes_cluster_for_workload5 fields changed
      • removedInput schema / properties / auto_scaling / title
        Removed value: -"Auto Scaling"
      • removedInput schema / properties / environment / title
        Removed value: -"Environment"
      • removedInput schema / properties / label / title
        Removed value: -"Label"
      • removedInput schema / properties / region / title
        Removed value: -"Region"
      • removedInput schema / properties / workload_type / title
        Removed value: -"Workload Type"
    • Changedsetup_mysql_database7 fields changed
      • removedInput schema / properties / app_database / title
        Removed value: -"App Database"
      • removedInput schema / properties / app_password / title
        Removed value: -"App Password"
      • removedInput schema / properties / app_user / title
        Removed value: -"App User"
      • removedInput schema / properties / label / title
        Removed value: -"Label"
      • removedInput schema / properties / plan / title
        Removed value: -"Plan"
      • removedInput schema / properties / region / title
        Removed value: -"Region"
      • removedInput schema / properties / root_password / title
        Removed value: -"Root Password"
    • Changedsetup_permissions2 fields changed
      • removedInput schema / properties / permissions / title
        Removed value: -"Permissions"
      • removedInput schema / properties / subaccount_id / title
        Removed value: -"Subaccount Id"
    • Changedsetup_postgresql_database7 fields changed
      • removedInput schema / properties / app_database / title
        Removed value: -"App Database"
      • removedInput schema / properties / app_password / title
        Removed value: -"App Password"
      • removedInput schema / properties / app_user / title
        Removed value: -"App User"
      • removedInput schema / properties / label / title
        Removed value: -"Label"
      • removedInput schema / properties / plan / title
        Removed value: -"Plan"
      • removedInput schema / properties / region / title
        Removed value: -"Region"
      • removedInput schema / properties / version / title
        Removed value: -"Version"
    • Changedsetup_service_user4 fields changed
      • removedInput schema / properties / email / title
        Removed value: -"Email"
      • removedInput schema / properties / first_name / title
        Removed value: -"First Name"
      • removedInput schema / properties / last_name / title
        Removed value: -"Last Name"
      • removedInput schema / properties / permissions / title
        Removed value: -"Permissions"
    • Changedsetup_standard_user5 fields changed
      • removedInput schema / properties / email / title
        Removed value: -"Email"
      • removedInput schema / properties / first_name / title
        Removed value: -"First Name"
      • removedInput schema / properties / last_name / title
        Removed value: -"Last Name"
      • removedInput schema / properties / password / title
        Removed value: -"Password"
      • removedInput schema / properties / permissions_level / title
        Removed value: -"Permissions Level"
    • Changedsetup_web_server_rules4 fields changed
      • removedInput schema / properties / allow_ssh_from / title
        Removed value: -"Allow Ssh From"
      • removedInput schema / properties / firewall_group_id / title
        Removed value: -"Firewall Group Id"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedsetup_website5 fields changed
      • removedInput schema / properties / domain / title
        Removed value: -"Domain"
      • removedInput schema / properties / ip / title
        Removed value: -"Ip"
      • removedInput schema / properties / www_enabled / title
        Removed value: -"Www Enabled"
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedstart1 field changed
      • removedInput schema / properties / instance_id / title
        Removed value: -"Instance Id"
    • Changedstart_bare_metal_server1 field changed
      • removedInput schema / properties / server_identifier / title
        Removed value: -"Server Identifier"
    • Changedstart_maintenance1 field changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
    • Changedstart_migration7 fields changed
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / host / title
        Removed value: -"Host"
      • removedInput schema / properties / password / title
        Removed value: -"Password"
      • removedInput schema / properties / port / title
        Removed value: -"Port"
      • removedInput schema / properties / ssl / title
        Removed value: -"Ssl"
      • removedInput schema / properties / username / title
        Removed value: -"Username"
    • Changedstart_version_upgrade2 fields changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / version / title
        Removed value: -"Version"
    • Changedstop1 field changed
      • removedInput schema / properties / instance_id / title
        Removed value: -"Instance Id"
    • Changedstop_bare_metal_server1 field changed
      • removedInput schema / properties / server_identifier / title
        Removed value: -"Server Identifier"
    • Changedstop_migration1 field changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
    • Changedupdate3 fields changed
      • removedInput schema / properties / acls / title
        Removed value: -"Acls"
      • removedInput schema / properties / api_enabled / title
        Removed value: -"Api Enabled"
      • removedInput schema / properties / user_id / title
        Removed value: -"User Id"
    • Changedupdate_bare_metal_server5 fields changed
      • removedInput schema / properties / enable_ddos_protection / title
        Removed value: -"Enable Ddos Protection"
      • removedInput schema / properties / label / title
        Removed value: -"Label"
      • removedInput schema / properties / server_identifier / title
        Removed value: -"Server Identifier"
      • removedInput schema / properties / tag / title
        Removed value: -"Tag"
      • removedInput schema / properties / user_data / title
        Removed value: -"User Data"
    • Changedupdate_cdn_zone7 fields changed
      • removedInput schema / properties / block_ai_bots / title
        Removed value: -"Block Ai Bots"
      • removedInput schema / properties / block_bad_bots / title
        Removed value: -"Block Bad Bots"
      • removedInput schema / properties / block_ip_addresses / title
        Removed value: -"Block Ip Addresses"
      • removedInput schema / properties / cors_policy / title
        Removed value: -"Cors Policy"
      • removedInput schema / properties / gzip_compression / title
        Removed value: -"Gzip Compression"
      • removedInput schema / properties / regions / title
        Removed value: -"Regions"
      • removedInput schema / properties / zone_identifier / title
        Removed value: -"Zone Identifier"
    • Changedupdate_connection_pool6 fields changed
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / mode / title
        Removed value: -"Mode"
      • removedInput schema / properties / pool_name / title
        Removed value: -"Pool Name"
      • removedInput schema / properties / size / title
        Removed value: -"Size"
      • removedInput schema / properties / username / title
        Removed value: -"Username"
    • Changedupdate_group2 fields changed
      • removedInput schema / properties / description / title
        Removed value: -"Description"
      • removedInput schema / properties / firewall_group_id / title
        Removed value: -"Firewall Group Id"
    • Changedupdate_kafka_topic6 fields changed
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / partitions / title
        Removed value: -"Partitions"
      • removedInput schema / properties / replication / title
        Removed value: -"Replication"
      • removedInput schema / properties / retention_bytes / title
        Removed value: -"Retention Bytes"
      • removedInput schema / properties / retention_hours / title
        Removed value: -"Retention Hours"
      • removedInput schema / properties / topic_name / title
        Removed value: -"Topic Name"
    • Changedupdate_kubernetes_cluster2 fields changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
      • removedInput schema / properties / label / title
        Removed value: -"Label"
    • Changedupdate_kubernetes_node_pool8 fields changed
      • removedInput schema / properties / auto_scaler / title
        Removed value: -"Auto Scaler"
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
      • removedInput schema / properties / labels / title
        Removed value: -"Labels"
      • removedInput schema / properties / max_nodes / title
        Removed value: -"Max Nodes"
      • removedInput schema / properties / min_nodes / title
        Removed value: -"Min Nodes"
      • removedInput schema / properties / node_quantity / title
        Removed value: -"Node Quantity"
      • removedInput schema / properties / nodepool_identifier / title
        Removed value: -"Nodepool Identifier"
      • removedInput schema / properties / tag / title
        Removed value: -"Tag"
    • Changedupdate_record6 fields changed
      • removedInput schema / properties / data / title
        Removed value: -"Data"
      • removedInput schema / properties / domain / title
        Removed value: -"Domain"
      • removedInput schema / properties / name / title
        Removed value: -"Name"
      • removedInput schema / properties / priority / title
        Removed value: -"Priority"
      • removedInput schema / properties / record_id / title
        Removed value: -"Record Id"
      • removedInput schema / properties / ttl / title
        Removed value: -"Ttl"
    • Changedupdate_serverless_inference2 fields changed
      • removedInput schema / properties / label / title
        Removed value: -"Label"
      • removedInput schema / properties / subscription_id / title
        Removed value: -"Subscription Id"
    • Changedupdate_startup_script3 fields changed
      • removedInput schema / properties / name / title
        Removed value: -"Name"
      • removedInput schema / properties / script / title
        Removed value: -"Script"
      • removedInput schema / properties / script_identifier / title
        Removed value: -"Script Identifier"
    • Changedupdate_user4 fields changed
      • removedInput schema / properties / access_level / title
        Removed value: -"Access Level"
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / password / title
        Removed value: -"Password"
      • removedInput schema / properties / username / title
        Removed value: -"Username"
    • Changedupdate_user_access_control6 fields changed
      • removedInput schema / properties / acl_categories / title
        Removed value: -"Acl Categories"
      • removedInput schema / properties / acl_channels / title
        Removed value: -"Acl Channels"
      • removedInput schema / properties / acl_commands / title
        Removed value: -"Acl Commands"
      • removedInput schema / properties / acl_keys / title
        Removed value: -"Acl Keys"
      • removedInput schema / properties / database_id / title
        Removed value: -"Database Id"
      • removedInput schema / properties / username / title
        Removed value: -"Username"
    • Changedupdate_vpc22 fields changed
      • removedInput schema / properties / description / title
        Removed value: -"Description"
      • removedInput schema / properties / vpc2_identifier / title
        Removed value: -"Vpc2 Identifier"
    • Changedupgrade_kubernetes_cluster2 fields changed
      • removedInput schema / properties / cluster_identifier / title
        Removed value: -"Cluster Identifier"
      • removedInput schema / properties / upgrade_version / title
        Removed value: -"Upgrade Version"
    • Changedvalidate_record5 fields changed
      • removedInput schema / properties / data / title
        Removed value: -"Data"
      • removedInput schema / properties / name / title
        Removed value: -"Name"
      • removedInput schema / properties / priority / title
        Removed value: -"Priority"
      • removedInput schema / properties / record_type / title
        Removed value: -"Record Type"
      • removedInput schema / properties / ttl / title
        Removed value: -"Ttl"
    • Changedvalidate_s3_access1 field changed
      • removedInput schema / properties / object_storage_id / title
        Removed value: -"Object Storage Id"
  3. 265 tool updates
    • First observedadd_export
    • First observedadd_ip_whitelist_entry
    • First observedanalyze_cdn_performance
    • First observedanalyze_costs
    • First observedanalyze_domain
    • First observedanalyze_inference_usage
    • First observedanalyze_kubernetes_cluster_costs
    • First observedanalyze_spending_trends
    • First observedanalyze_user_permissions
    • First observedattach
    • First observedattach_to_instance
    • First observedcompare_plans
    • First observedconfigure_basic_web_lb
    • First observedconvert_instance_ip
    • First observedcreate
    • First observedcreate_bare_metal_server
    • First observedcreate_cdn_ssl_certificate
    • First observedcreate_cdn_zone
    • First observedcreate_common_startup_script
    • First observedcreate_connection_pool
    • First observedcreate_domain
    • First observedcreate_forwarding_rule
    • First observedcreate_from_url
    • First observedcreate_group
    • First observedcreate_ipv4
    • First observedcreate_iso
    • First observedcreate_kafka_topic
    • First observedcreate_kubernetes_cluster
    • First observedcreate_kubernetes_node_pool
    • First observedcreate_logical_database
    • First observedcreate_read_replica
    • First observedcreate_record
    • First observedcreate_rule
    • First observedcreate_serverless_inference
    • First observedcreate_startup_script
    • First observedcreate_user
    • First observedcreate_vpc2
    • First observeddelete
    • First observeddelete_bare_metal_server
    • First observeddelete_cdn_ssl_certificate
    • First observeddelete_cdn_zone
    • First observeddelete_connection_pool
    • First observeddelete_domain
    • First observeddelete_export
    • First observeddelete_forwarding_rule
    • First observeddelete_group
    • First observeddelete_ipv4
    • First observeddelete_iso
    • First observeddelete_kafka_topic
    • First observeddelete_kubernetes_cluster
    • First observeddelete_kubernetes_cluster_with_resources
    • First observeddelete_kubernetes_node
    • First observeddelete_kubernetes_node_pool
    • First observeddelete_logical_database
    • First observeddelete_record
    • First observeddelete_rule
    • First observeddelete_serverless_inference
    • First observeddelete_ssl
    • First observeddelete_startup_script
    • First observeddelete_user
    • First observeddelete_vpc2
    • First observeddetach
    • First observeddetach_from_instance
    • First observeddisable_auto_ssl
    • First observedexport_zone_file
    • First observedfind_by_email
    • First observedfind_by_name
    • First observedfind_by_region
    • First observedfind_regions_with_plan
    • First observedfork_database
    • First observedgenerate_docker_credentials
    • First observedgenerate_kubernetes_credentials
    • First observedget
    • First observedget_account_info
    • First observedget_application
    • First observedget_application_deployment_guide
    • First observedget_applications_by_vendor
    • First observedget_availability
    • First observedget_balance_summary
    • First observedget_bandwidth
    • First observedget_bare_metal_bandwidth
    • First observedget_bare_metal_neighbors
    • First observedget_bare_metal_plan
    • First observedget_bare_metal_server
    • First observedget_bare_metal_server_summary
    • First observedget_bare_metal_user_data
    • First observedget_cdn_available_regions
    • First observedget_cdn_ssl_certificate
    • First observedget_cdn_zone
    • First observedget_cdn_zone_logs
    • First observedget_cdn_zone_stats
    • First observedget_cdn_zone_summary
    • First observedget_cheapest_plan
    • First observedget_configuration_summary
    • First observedget_connection_pool
    • First observedget_cost_analysis
    • First observedget_cost_breakdown_by_service
    • First observedget_current_balance
    • First observedget_current_month_summary
    • First observedget_deployment_examples
    • First observedget_docker_login_command
    • First observedget_domain
    • First observedget_firewall_rule
    • First observedget_forwarding_rule
    • First observedget_gateway_status
    • First observedget_group
    • First observedget_health_status
    • First observedget_inference_deployment_guide
    • First observedget_inference_usage
    • First observedget_invoice
    • First observedget_ip_whitelist
    • First observedget_ip_whitelist_entry
    • First observedget_iso
    • First observedget_iso_by_name
    • First observedget_kafka_topic
    • First observedget_kubernetes_available_upgrades
    • First observedget_kubernetes_cluster
    • First observedget_kubernetes_cluster_config
    • First observedget_kubernetes_cluster_resources
    • First observedget_kubernetes_cluster_status
    • First observedget_kubernetes_node
    • First observedget_kubernetes_node_pool
    • First observedget_kubernetes_versions
    • First observedget_last_month_summary
    • First observedget_logical_database
    • First observedget_maintenance_updates
    • First observedget_marketplace_app_variables
    • First observedget_migration_status
    • First observedget_monthly_usage_summary
    • First observedget_mount_instructions
    • First observedget_mounting_instructions
    • First observedget_network_info
    • First observedget_operating_system
    • First observedget_os_by_name
    • First observedget_payment_summary
    • First observedget_plan
    • First observedget_plan_by_type_and_spec
    • First observedget_plans_by_region_availability
    • First observedget_popular_marketplace_apps
    • First observedget_record
    • First observedget_registry_info
    • First observedget_rule
    • First observedget_s3_config
    • First observedget_serverless_inference
    • First observedget_startup_script
    • First observedget_startup_script_content
    • First observedget_status_overview
    • First observedget_storage_summary
    • First observedget_usage
    • First observedget_user
    • First observedget_volume_status
    • First observedget_vpc2
    • First observedimport_zone_file
    • First observedlist
    • First observedlist_application_categories
    • First observedlist_application_images
    • First observedlist_applications
    • First observedlist_attached
    • First observedlist_available_permissions
    • First observedlist_available_versions
    • First observedlist_backups
    • First observedlist_bare_metal_plans
    • First observedlist_bare_metal_servers
    • First observedlist_bare_metal_servers_by_region
    • First observedlist_bare_metal_servers_by_status
    • First observedlist_billing_history
    • First observedlist_boot_scripts
    • First observedlist_by_continent
    • First observedlist_by_region
    • First observedlist_by_status
    • First observedlist_by_type
    • First observedlist_cdn_zones
    • First observedlist_cluster_tiers
    • First observedlist_clusters
    • First observedlist_connection_pools
    • First observedlist_custom_isos
    • First observedlist_databases
    • First observedlist_domains
    • First observedlist_firewall_rules
    • First observedlist_forwarding_rules
    • First observedlist_groups
    • First observedlist_instance_networks
    • First observedlist_invoice_items
    • First observedlist_invoices
    • First observedlist_ipv4
    • First observedlist_ipv6
    • First observedlist_isos
    • First observedlist_kafka_topics
    • First observedlist_kubernetes_clusters
    • First observedlist_kubernetes_node_pools
    • First observedlist_kubernetes_nodes
    • First observedlist_linux_os
    • First observedlist_marketplace_applications
    • First observedlist_oneclick_applications
    • First observedlist_operating_systems
    • First observedlist_os_by_family
    • First observedlist_plans
    • First observedlist_public_isos
    • First observedlist_pxe_scripts
    • First observedlist_records
    • First observedlist_rules
    • First observedlist_serverless_inference
    • First observedlist_startup_scripts
    • First observedlist_unattached
    • First observedlist_users
    • First observedlist_vc2_plans
    • First observedlist_vhf_plans
    • First observedlist_voc_plans
    • First observedlist_vpc2
    • First observedlist_windows_os
    • First observedlist_with_ddos_protection
    • First observedmonitor_inference_performance
    • First observedmonitor_usage
    • First observedoptimize_gateway_configuration
    • First observedoptimize_inference_costs
    • First observedpromote_read_replica
    • First observedpurge_cdn_zone
    • First observedreboot
    • First observedreboot_bare_metal_server
    • First observedrecycle_kubernetes_node
    • First observedregenerate_keys
    • First observedreinstall
    • First observedreinstall_bare_metal_server
    • First observedremove_ip_whitelist_entry
    • First observedrestore_from_backup
    • First observedscale_kubernetes_node_pool
    • First observedsearch_applications
    • First observedsearch_bare_metal_plans
    • First observedsearch_os_by_name
    • First observedsearch_plans_by_specs
    • First observedsearch_startup_scripts
    • First observedsetup_cdn_for_website
    • First observedsetup_kubernetes_cluster_for_workload
    • First observedsetup_mysql_database
    • First observedsetup_permissions
    • First observedsetup_postgresql_database
    • First observedsetup_service_user
    • First observedsetup_standard_user
    • First observedsetup_web_server_rules
    • First observedsetup_website
    • First observedstart
    • First observedstart_bare_metal_server
    • First observedstart_maintenance
    • First observedstart_migration
    • First observedstart_version_upgrade
    • First observedstop
    • First observedstop_bare_metal_server
    • First observedstop_migration
    • First observedupdate
    • First observedupdate_bare_metal_server
    • First observedupdate_cdn_zone
    • First observedupdate_connection_pool
    • First observedupdate_group
    • First observedupdate_kafka_topic
    • First observedupdate_kubernetes_cluster
    • First observedupdate_kubernetes_node_pool
    • First observedupdate_record
    • First observedupdate_serverless_inference
    • First observedupdate_startup_script
    • First observedupdate_user
    • First observedupdate_user_access_control
    • First observedupdate_vpc2
    • First observedupgrade_kubernetes_cluster
    • First observedvalidate_record
    • First observedvalidate_s3_access

TDQS

C2.7/5.0

Scored across 316 tools

Disambiguation3/5

With over 300 tools, most have distinct purposes and detailed descriptions, but there are overlapping tools like subaccount_find_by_email and subaccount_find_by_name, as well as multiple plan-listing tools (registry_list_plans, plan_list_plans, db_list_plans). The consistent naming helps, but the sheer volume makes selection challenging.

Naming Consistency3/5

Tools generally follow a resource_action pattern (e.g., instance_create, firewall_delete_rule), but there are many redundant names like collection_delete_collection, iso_list_isos, and os_list_operating_systems. Multiple list_plans variants with different prefixes also break consistency.

Tool Count1/5

316 tools is extreme, far exceeding any reasonable scope. Even for a comprehensive cloud provider, this overwhelms agents and makes tool selection inefficient. The server is essentially a direct exposure of every API endpoint plus many convenience/analysis tools, which is not appropriate for an MCP server.

Completeness2/5

Despite the vast number of tools, there are critical gaps. There is no generic instance_list or instance_get tool, making it impossible to retrieve a list of instances or details of a specific instance, which is a fundamental operation. VPC also lacks a generic list. This indicates an incomplete surface for core management despite the excessive count.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Connects AI assistants to Linode cloud infrastructure, enabling the management of compute instances, databases, and networking resources through natural language. It provides a comprehensive suite of tools for resource orchestration, monitoring, and account management using stdio, SSE, or HTTP transports.
    6 npm
    21
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables comprehensive management of CloudStack infrastructure through natural language, providing access to over 735 API methods for virtual machines, networking, and storage. It features enterprise-grade security with a safety confirmation system for destructive operations and extensive API coverage.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides AI agents with natural language control over AWS, Azure, GCP, and Alibaba Cloud infrastructure through dynamic API discovery and execution. Supports 51,900+ cloud operations and includes OpenTofu integration for complete infrastructure lifecycle management.
    3
    MIT