Skip to main content
Glama
jasonwilbur

Cloud Cost MCP

by jasonwilbur

Cloud Cost MCP

npm version npm downloads CI License: Apache-2.0

Multi-cloud pricing comparison MCP server for AWS, Azure, GCP, and OCI. Compare compute, storage, egress, and Kubernetes costs across all major cloud providers with a single query.

⚠️ DISCLAIMER: All pricing data is retrieved from publicly available APIs and data sources including instances.vantage.sh, Azure Retail Prices API, and Oracle Cloud Price List API. This data is provided for informational and estimation purposes only. Cloud pricing changes frequently and may vary by region, account type, commitment terms, and other factors. Users are solely responsible for verifying all pricing information directly with cloud providers before making any purchasing or architectural decisions. The authors make no warranties about the accuracy, completeness, or timeliness of this data.

Features

  • Comprehensive Coverage: 4,900+ instance types across all providers

    • AWS: 1,300+ EC2 instances + 1,180+ managed-database types + Lightsail

    • Azure: 1,680+ VM types (official Azure Retail Prices API)

    • GCP: 360+ instance types across 40+ regions

    • OCI: 600+ products via Oracle API

  • No API Keys Required: All data from public APIs (instances.vantage.sh + provider APIs)

  • Fresh data, two ways: AWS/Azure/GCP bundled data is auto-refreshed weekly via GitHub Actions, and the refresh_* tools fetch live pricing on demand (cached 60 min in-memory). OCI bundled data is curated. See Data freshness for the exact model.

  • Natural Language Queries: Ask Claude "What's cheapest for 4 vCPU 16GB?"

  • Workload Calculator: Estimate full workload costs including compute, storage, and egress

  • Migration Planning: Calculate potential savings when switching providers

Related MCP server: cloudscope-mcp

Installation

For Claude Code Users

# One-command install
claude mcp add cloud-cost -- npx -y cloud-cost-mcp

For Claude Desktop Users

Add this to your claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json), then restart Claude Desktop:

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

Manual Installation

npm install -g cloud-cost-mcp

Then reference the installed binary in any MCP client config:

{
  "mcpServers": {
    "cloud-cost": {
      "command": "cloud-cost-mcp"
    }
  }
}

Usage Examples

Once installed, just ask Claude:

Compare Compute

"Compare 4 vCPU 16GB VMs across AWS, Azure, GCP, and OCI"
"Find the cheapest cloud for an 8-core VM with 32GB RAM"
"What's the best deal for ARM instances with 4 cores?"

Compare Storage

"Compare object storage pricing for 1TB across all clouds"
"What's the cheapest archival storage for 10TB?"

Compare Egress (OCI Advantage!)

"Compare egress costs for 5TB monthly"
"What's the cheapest cloud for 10TB data transfer?"

Note: OCI offers 10TB/month free egress - 100x more than AWS/Azure/GCP!

Full Workload Estimates

"Estimate cost for 3 VMs with 4 vCPU each, 500GB storage, and 1TB egress"
"What would a Kubernetes cluster with 5 nodes cost across all clouds?"

Quick Estimates

"Quick estimate for a medium API server"
"Compare all clouds for a kubernetes-cluster preset"
"Estimate cost for gpu-training-large preset"

GPU Pricing (OCI)

"List all available GPU shapes"
"Compare A100 vs H100 GPU pricing"
"What GPU should I use for ML training with 80GB memory?"
"Get details for BM.GPU.H100.8"

Migration Planning

"How much could I save migrating from AWS to OCI?"
"Compare my current GCP setup against other clouds"

Available Tools

Comparison Tools

Tool

Description

compare_compute

Compare VM/instance pricing by vCPU and memory

compare_storage

Compare object and block storage pricing

compare_egress

Compare data transfer costs (OCI: 10TB free!)

compare_kubernetes

Compare managed K8s costs (EKS, AKS, GKE, OKE)

find_cheapest_compute

Find cheapest provider for given specs

Calculator Tools

Tool

Description

calculate_workload_cost

Full workload estimate across all clouds

quick_estimate

Instant comparison for common presets

estimate_migration_savings

Calculate migration savings

list_presets

List available deployment presets

Available presets: small-web-app, medium-api-server, large-database, ml-training, kubernetes-cluster, data-lake, high-egress-cdn, high-traffic-web, gpu-inference, gpu-training-small, gpu-training-large

Data Management Tools

Tool

Description

get_data_freshness

Check pricing data age (warns if >30 days)

get_provider_details

Get detailed pricing for one provider

get_storage_summary

Storage pricing by tier for all providers

Real-Time API Tools

AWS (1,147 EC2 + 353 RDS + Lightsail)

Tool

Description

refresh_aws_ec2_pricing

Fetch 1,147 EC2 instance types with spot/reserved pricing

refresh_aws_rds_pricing

Fetch 353 RDS database instance types

get_aws_lightsail_pricing

Get Lightsail bundle pricing

list_aws_regions

List AWS regions with pricing data

list_aws_instance_families

List EC2 instance families

GCP (287 instance types)

Tool

Description

refresh_gcp_pricing

Fetch GCP Compute Engine pricing (40+ regions)

list_gcp_regions

List GCP regions with pricing data

list_gcp_instance_families

List GCP instance families

Azure (1,199 VM types)

Tool

Description

refresh_azure_pricing

Fetch Azure Retail Prices API

refresh_azure_full_pricing

Fetch 1,199 VM types from vantage.sh

list_azure_regions

List Azure regions with pricing data

list_azure_categories

List Azure VM categories

OCI (600+ products)

Tool

Description

refresh_oci_pricing

Fetch live OCI pricing (public API)

list_oci_categories

List OCI service categories

GPU Tools (OCI)

Tool

Description

list_gpu_shapes

List GPU shapes with filtering by model, use case, price

get_gpu_shape_details

Get detailed specs and pricing for a GPU shape

compare_gpu_shapes

Compare multiple GPU shapes side-by-side

recommend_gpu_shape

Get GPU recommendation based on workload type

Available GPU shapes: A10, A100 80GB, H100 80GB, H200 141GB, L40S, MI300X

Status

Tool

Description

check_api_status

Check if all real-time APIs are accessible

Data Freshness

All providers now support real-time pricing refresh via public APIs:

Provider

Data Source

Instance Types

Real-Time

AWS

instances.vantage.sh

1,147 EC2 + 353 RDS

✓ Yes

Azure

instances.vantage.sh + Retail Prices API

1,199

✓ Yes

GCP

instances.vantage.sh

287

✓ Yes

OCI

Oracle Cloud Price List API

600+

✓ Yes

Use check_api_status to verify API accessibility. Use get_data_freshness to check bundled data age.

Key Insights

OCI Cost Advantages

  • 10TB/month free egress (vs 100GB on AWS/Azure/GCP)

  • Free Kubernetes control plane (basic clusters)

  • Uniform global pricing (no regional variation)

  • Always Free tier includes 4 OCPUs + 24GB RAM on ARM

Free Kubernetes Control Planes

  • OCI (OKE): Free basic clusters

  • Azure (AKS): Free control plane

  • AWS (EKS) and GCP (GKE): $73/month per cluster

Example Output

User: "Compare cost for a 4 vCPU, 16GB RAM VM across all clouds"

┌─────────┬──────────────────────┬────────┬──────────┬─────────────┐
│ Provider│ Instance Type        │ vCPUs  │ Memory   │ Monthly Cost│
├─────────┼──────────────────────┼────────┼──────────┼─────────────┤
│ OCI     │ VM.Standard.E5.Flex  │ 4      │ 16 GB    │ $61.32      │
│ GCP     │ e2-standard-4        │ 4      │ 16 GB    │ $97.82      │
│ AWS     │ t3.xlarge            │ 4      │ 16 GB    │ $121.47     │
│ Azure   │ Standard_D4s_v5      │ 4      │ 16 GB    │ $140.16     │
└─────────┴──────────────────────┴────────┴──────────┴─────────────┘

Cheapest: OCI ($61.32/month) - 50% savings vs AWS

Development

# Clone and install
git clone https://github.com/jasonwilbur/cloud-cost-mcp.git
cd cloud-cost-mcp
npm install

# Build
npm run build

# Test locally with Claude Code
claude mcp add cloud-cost-dev -- node /path/to/cloud-cost-mcp/dist/index.js

Data freshness

This server uses a two-tier data model — it helps to know which is which:

  1. Bundled data (src/data/bundled/*.json) is what the comparison/calculator tools read by default, so the server works instantly with no network calls.

    • AWS, Azure, GCP bundled data is regenerated from live upstream sources (instances.vantage.sh + the official Azure Retail Prices API) and auto-refreshed weekly via the refresh-data GitHub Action. You can also regenerate locally with npm run fetch-data.

    • OCI bundled data is curated (vantage.sh has no OCI feed) and updated manually. For always-live OCI pricing, use the refresh_oci_pricing tool or the dedicated oci-pricing-mcp.

  2. Live refresh tools (refresh_aws_ec2_pricing, refresh_azure_full_pricing, refresh_gcp_pricing, refresh_oci_pricing, refresh_aws_rds_pricing) fetch current pricing from provider APIs at call time, cached 60 minutes in-memory for the life of the process. These return fresh data to the caller but do not rewrite the bundled files — that only happens via npm run fetch-data / the weekly Action.

Use get_data_freshness to see the bundled timestamp and staleness for each provider.

License

Apache-2.0

Author

Jason Wilbur (jasonwilbur.com)

Available Tools

31 tools
calculate_workload_costB
Read-onlyIdempotent

Estimate total monthly cost for a workload across all cloud providers. Includes compute, storage, egress, and Kubernetes.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNo
storageNo
egressNo
kubernetesNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds value by specifying the included cost components. However, it lacks details on return format or potential constraints (e.g., missing data handling).

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?

Single sentence of 14 words, front-loading the core purpose without extraneous detail. Highly efficient for quick comprehension.

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 no output schema and low parameter coverage, the description omits important contextual details such as the need to provide compute and Kubernetes inputs for meaningful estimates, and fails to clarify return type (single number vs breakdown).

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%, but the description only repeats component names already evident in the schema. It does not provide additional meaning for individual parameters (e.g., units, ranges, or behavior when omitted).

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 clearly states the tool estimates total monthly cost for a workload across all cloud providers, listing included components. This distinguishes it from sibling tools like compare_compute or estimate_migration_savings which focus on specific aspects.

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 description does not specify context or exclusion conditions, leaving the agent to infer usage without explicit direction.

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

check_api_statusA
Read-onlyIdempotent

Check if the real-time pricing APIs (Azure, OCI, AWS) are accessible.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, covering safety, idempotency, and side effects. The description adds context about which specific APIs are checked (Azure, OCI, AWS), going beyond annotations without 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 a single, front-loaded sentence with no wasted words. Every word contributes to 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 no parameters, no output schema, and comprehensive annotations, the description is adequate for a simple health check tool. It specifies which APIs are checked, though it could optionally describe what 'accessible' means or the return format.

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, so schema description coverage is 100%. The baseline for 0 parameters is 4, and the description correctly does not add parameter info since none exist.

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 checks accessibility of real-time pricing APIs for Azure, OCI, and AWS. It uses a specific verb ('check') and resource ('real-time pricing APIs'), distinguishing it from sibling tools that perform cost calculations or comparisons.

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, though it is implied it should be used to verify API health before running other pricing tools. No exclusions or alternative suggestions are provided.

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

compare_computeA
Read-onlyIdempotent

Compare VM/instance pricing across AWS, Azure, GCP, and OCI. Finds instances matching your vCPU and memory requirements.

ParametersJSON Schema
NameRequiredDescriptionDefault
vcpusYesDesired number of vCPUs
memoryGBYesDesired memory in GB
categoryNoOptional: filter by instance category

TDQS

A4.2/5.0
Behavior4/5

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

Annotations (readOnlyHint=true, idempotentHint=true) already indicate safe behavior. The description adds cross-provider comparison and matching logic context. No contradictions, but could detail output format or ordering.

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

Conciseness5/5

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

Two sentences with no fluff. The first sentence states the purpose, the second elaborates on what it finds. Front-loaded 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 tool with 3 parameters and no output schema, the description is mostly complete. It conveys core functionality and matching logic. Minor gap: does not specify return format or behavior when no matches found.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions. The description restates 'vCPU and memory requirements' but does not add new meaning or mention the optional 'category' parameter, so baseline score applies.

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

Purpose5/5

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

The description clearly states the tool compares VM/instance pricing across four cloud providers (AWS, Azure, GCP, OCI) and finds instances matching vCPU and memory requirements, distinguishing it from sibling tools like 'compare_gpu_shapes' or 'compare_storage'.

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?

Usage is clear: use this tool to compare compute pricing across providers based on specified resources. However, it does not explicitly state when not to use it or mention alternatives like 'find_cheapest_compute' or 'calculate_workload_cost', lacking exclusion guidance.

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

compare_egressB
Read-onlyIdempotent

Compare data transfer/egress costs. OCI offers 10TB/month free (100x more than others)!

ParametersJSON Schema
NameRequiredDescriptionDefault
monthlyGBYesMonthly outbound data in GB

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already provide readOnlyHint and idempotentHint. Description adds no new behavioral details (e.g., data freshness, caching, or 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?

Very concise, one sentence core purpose plus a promotional sentence. Could omit promotional line, but overall minimal and clear.

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?

No output schema, so description should explain return values or comparison scope. It only mentions OCI free tier but not what the tool returns or how it compares providers.

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

Parameters3/5

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

Schema coverage is 100% with a clear parameter description. Tool description does not add additional semantic 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 clearly states the tool compares egress costs, distinguishing it from siblings like compare_compute or compare_storage. The mention of OCI's free tier adds specific 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?

No explicit guidance on when to use versus alternative comparison tools. The purpose is implied but lacks when-not or alternative recommendations.

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

compare_gpu_shapesA
Read-onlyIdempotent

Compare multiple OCI GPU shapes side-by-side on specs, pricing, and price-per-GPU metrics.

ParametersJSON Schema
NameRequiredDescriptionDefault
shapesYesGPU shape families to compare (e.g., ["BM.GPU.A10.4", "BM.GPU.A100-v2.8", "BM.GPU.H100.8"])

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds context about what is compared (specs, pricing, price-per-GPU). It does not describe error handling or limits, but the safety profile is well-covered by annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no extraneous words. Every word earns its place.

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

Completeness5/5

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

Given the simplicity of the tool (one parameter, read-only) and the presence of annotations, the description is sufficiently complete. It clarifies the output (comparison on specs, pricing, price-per-GPU) even without an output schema.

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

Parameters3/5

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

Schema coverage is 100%, with the 'shapes' parameter described in the schema. The description adds that it compares 'multiple' shapes and specifies 'OCI GPU shapes', which provides minimal additional 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 clearly states the verb (compare), resource (OCI GPU shapes), and scope (specs, pricing, price-per-GPU metrics). It distinguishes from sibling tools like 'recommend_gpu_shape' and 'get_gpu_shape_details' which have different purposes.

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 comparing multiple shapes but does not explicitly state when to use this tool versus alternatives like 'recommend_gpu_shape' or 'get_gpu_shape_details'. No when-not-to-use guidance is provided.

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

compare_kubernetesA
Read-onlyIdempotent

Compare managed Kubernetes pricing (EKS, AKS, GKE, OKE). Shows control plane and worker node costs.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeCountYesNumber of worker nodes
nodeVcpusYesvCPUs per node
nodeMemoryGBYesMemory per node in GB

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, so the description adds context about showing control plane and worker node costs, but does not detail behavioral traits like output format or limitations.

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 concise sentences front-load the purpose and add a key detail (cost components) with no superfluous 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?

Provides tool purpose and cost components but omits expected output format or result structure, which is notable given the lack of an output schema.

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

Parameters3/5

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

Schema descriptions already document all three parameters fully (100% coverage). The description adds no extra parameter 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?

Clearly states the action (compare), resource (managed Kubernetes pricing), and specific providers (EKS, AKS, GKE, OKE). Distinguishes from sibling tools like compare_compute by focusing on Kubernetes.

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

Usage Guidelines3/5

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

Implies use for Kubernetes pricing but does not explicitly differentiate from other comparison tools (e.g., compare_compute) or state 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.

compare_storageA
Read-onlyIdempotent

Compare object and block storage pricing across all clouds.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeGBYesStorage size in GB
tierNoOptional: storage tier
typeNoOptional: storage type

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, indicating a safe read operation. The description does not add further behavioral context (e.g., response format, permission requirements). Since annotations cover safety, the description adds minimal value.

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

Conciseness5/5

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

The description is a single, clear sentence with no unnecessary words. It is front-loaded with the core action and scope, making it highly 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?

Given the tool has only three parameters, no output schema, and annotations providing behavioral context, the description is sufficient. It states the purpose and covers the essential functionality. A minor addition about the expected output format could improve completeness, but it is not critical.

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

Parameters3/5

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

Schema description coverage is 100% for all three parameters, so the schema already documents their meaning. The description does not add any additional semantic detail beyond what is in the schema, resulting in a baseline score of 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 uses a specific verb ('compare') and clearly states the resource ('object and block storage pricing across all clouds'). It distinguishes this tool from siblings like compare_compute or compare_egress by specifying storage type.

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 comparing storage pricing, but it does not provide explicit guidance on when to use it vs. alternatives (e.g., compare_compute) or when not to use it. No exclusions or prerequisites are mentioned.

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

estimate_migration_savingsC
Read-onlyIdempotent

Calculate potential savings when migrating from one cloud provider to another.

ParametersJSON Schema
NameRequiredDescriptionDefault
currentProviderYesYour current cloud provider
targetProviderNoOptional: target provider (finds cheapest if not specified)
computeNo
storageNo
egressNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the agent knows the tool is safe and idempotent. The description adds minimal behavioral context beyond confirming the calculation nature. It does not disclose what 'savings' entails (e.g., monthly cost difference, total cost of ownership), leaving some 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 a single, clear sentence with no filler. It is front-loaded and conveys the core purpose efficiently. However, it could be slightly expanded to include more context without becoming verbose.

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 tool's moderate complexity (5 parameters with nested objects, no output schema), the description is incomplete. It does not explain return values, required versus optional parameters, or the scope of the savings calculation (e.g., monthly vs. annual). The schema descriptions cover only 40% of parameters, and the description fails to fill the 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 low at 40% (only 'currentProvider' and 'targetProvider' have descriptions). The description does not mention any parameters or provide additional context for the nested objects (compute, storage, egress). The parameter names are somewhat self-explanatory, but the lack of description compensation results in poor 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 tool's purpose: 'Calculate potential savings when migrating from one cloud provider to another.' It uses a specific verb ('calculate') and resource ('potential savings when migrating'), which distinguishes it from siblings that might only calculate costs or compare individual services. However, it does not explicitly differentiate from similar tools like 'calculate_workload_cost' or 'quick_estimate', which could overlap.

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 prerequisites, typical use cases, or when not to use it. Given the presence of many sibling tools with overlapping functionality (e.g., 'compare_compute', 'quick_estimate'), this lack of usage context 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.

find_cheapest_computeA
Read-onlyIdempotent

Find the cheapest cloud provider for specific compute specs.

ParametersJSON Schema
NameRequiredDescriptionDefault
vcpusYesDesired number of vCPUs
memoryGBYesDesired memory in GB
categoryNoOptional: filter by instance category

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, so the safety profile is clear. The description adds no extra behavioral context (e.g., rate limits, pricing data freshness).

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?

Single sentence, no wasted words. Front-loaded with 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?

Lacks output schema or description of return format (e.g., price unit, providers list). For a costing tool, additional context about the result structure would improve 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?

Input schema covers 100% of parameters with descriptions. The tool description does not add any additional meaning beyond what the schema already provides.

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

Purpose5/5

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

Description clearly states the action (find), resource (cheapest cloud provider), and scope (for specific compute specs). It distinguishes from sibling tools like compare_compute or estimate_migration_savings.

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 or when not to use this tool, nor any mention of alternatives. The description is purely declarative without usage context.

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

get_aws_lightsail_pricingA
Read-onlyIdempotent

Get AWS Lightsail bundle pricing. Simplified VPS with fixed monthly pricing including storage and transfer.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoAWS region (default: us-east-1)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds context about the pricing model ('fixed monthly pricing including storage and transfer'), which goes beyond annotations without contradicting 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 two sentences, front-loaded with the main action, and concise with no redundant or unnecessary 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 one optional parameter, clear annotations, and no output schema, the description is sufficiently complete. It clearly defines the tool's purpose and the type of pricing returned.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter (region). The description does not add additional parameter meaning beyond what the schema provides, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool retrieves AWS Lightsail bundle pricing, with a specific verb 'Get' and resource 'AWS Lightsail bundle pricing'. It distinguishes from sibling tools by highlighting 'Simplified VPS with fixed monthly pricing including storage and transfer', contrasting with other pricing tools for EC2 or compute.

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 Lightsail pricing but does not explicitly state when to use it versus sibling tools like compare_compute or find_cheapest_compute. 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.

get_data_freshnessA
Read-onlyIdempotent

Check how recent the pricing data is for each provider. Warns if data is stale (>30 days).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

The description adds behavioral context beyond the annotations: it warns if data is stale (>30 days), which is not captured by readOnlyHint or idempotentHint. No contradictions with annotations.

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

Conciseness5/5

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

Two concise sentences with no redundancy. The first sentence states the purpose, and the second adds the warning behavior. Front-loaded and efficient.

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 read-only tool with comprehensive annotations, the description covers all necessary information: purpose, scope, and warning behavior. No output schema is needed, as the description explains 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?

With zero parameters, the baseline is 4. The description does not need to add parameter semantics, and schema coverage is trivially 100%.

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

Purpose5/5

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

The description uses the specific verb 'Check' and clearly identifies the resource 'pricing data for each provider'. It distinguishes itself from sibling tools like 'check_api_status' by focusing on data freshness and staleness warnings.

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 checking data recency but does not explicitly state when to use it over alternatives (e.g., before reading pricing data). No exclusion criteria are provided.

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

get_gpu_shape_detailsA
Read-onlyIdempotent

Get detailed specifications and pricing for a specific OCI GPU shape.

ParametersJSON Schema
NameRequiredDescriptionDefault
shapeFamilyYesGPU shape family (e.g., "BM.GPU.H100.8", "BM.GPU.A100-v2.8", "VM.GPU.A10.1")

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the description adds marginal value by stating it returns specifications and pricing but does not disclose other behaviors like rate limits 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.

Conciseness5/5

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

The description is a single, focused sentence with no extraneous words. Every word contributes to 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?

For a simple retrieval tool with one parameter and no output schema, the description adequately states the purpose. It could elaborate on what 'detailed specifications' includes, but current level is 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?

The input schema already covers the single parameter 'shapeFamily' with 100% description coverage. The description does not add extra meaning beyond the schema's 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 specifies the verb 'Get' and the resource 'detailed specifications and pricing for a specific OCI GPU shape,' distinguishing it from sibling tools like 'compare_gpu_shapes' and 'list_gpu_shapes'.

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 needing details for a specific GPU shape but does not explicitly state when to use this tool versus alternatives like 'compare_gpu_shapes' or 'list_gpu_shapes', nor does it provide exclusions.

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

get_provider_detailsA
Read-onlyIdempotent

Get detailed pricing data for a specific cloud provider.

ParametersJSON Schema
NameRequiredDescriptionDefault
providerYesCloud provider
categoryNoOptional: filter by category

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate read-only, non-destructive, idempotent behavior. Description only confirms it retrieves data, adding no new behavioral context beyond 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?

Single sentence, front-loaded with action, no wasted words. Perfectly concise for the minimal information needed.

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

Completeness3/5

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

Simple tool with no output schema; description vaguely hints at 'detailed pricing data.' Could be improved by mentioning what data is returned or how it relates to sibling 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 covers both parameters with enums and descriptions (100% coverage). Description adds no extra meaning beyond 'for a specific cloud provider,' which aligns with 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?

Description clearly states 'get detailed pricing data for a specific cloud provider,' using a specific verb and resource. It distinguishes from sibling tools like compare_* or list_* that serve different purposes.

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

Usage Guidelines3/5

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

Implies usage for obtaining pricing data for a single provider, but no explicit guidance on when not to use or which alternatives (e.g., compare tools) are better suited.

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

get_storage_summaryA
Read-onlyIdempotent

Get storage pricing summary by tier (hot, cool, cold, archive) for all providers.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeGBYesStorage size in GB for cost calculation

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the safety profile is clear. The description adds that it returns a pricing summary by tier, but does not provide additional behavioral context such as rate limits, authentication needs, or response format. With annotations covering safety, the description adds moderate value.

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

Conciseness5/5

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

The description is a single sentence that directly states the tool's purpose with no extraneous information. 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?

Given the simple input (one required parameter) and annotations indicating a safe read operation, the description sufficiently covers the tool's functionality. However, since there is no output schema, a hint about the structure of the pricing summary (e.g., per-provider breakdown) would improve completeness. Still, it is adequately complete.

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

Parameters3/5

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

Schema description coverage is 100% with one parameter 'sizeGB' described. The description does not add meaning beyond the schema; it only restates the parameter role. Baseline score of 3 is appropriate as the schema already adequately documents 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?

Description clearly states the verb 'Get', resource 'storage pricing summary', and specifies the tiers (hot, cool, cold, archive) and scope 'for all providers'. This distinguishes it from siblings like 'compare_storage' that may focus on comparison rather than 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?

Usage context is implied (for getting a pricing summary by tier), but there is no explicit guidance on when to use this tool versus alternatives like 'compare_storage' or 'get_provider_details'. No when-not or exclusions are mentioned.

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

list_aws_instance_familiesA
Read-onlyIdempotent

List AWS EC2 instance families with counts (e.g., General purpose: 200, Compute optimized: 150).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive. Description adds output format example, but no additional behavioral traits beyond 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?

Single sentence, no wasted words, front-loaded with purpose and example.

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?

Tool is simple with no parameters or output schema. Description is sufficient for an agent to understand what it does and what it returns.

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

Parameters4/5

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

Zero parameters; schema coverage 100%. Baseline 4 applies. Example output provides helpful context for the return 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?

Description clearly states verb 'List', resource 'AWS EC2 instance families', and output 'counts'. Example distinguishes from sibling tools like list_gcp_instance_families.

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 alternatives, but tool name and context imply usage for AWS-specific family listing. Lacks guidance on when to use over other list tools or comparison tools.

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

list_aws_regionsA
Read-onlyIdempotent

List all AWS regions available in the pricing data.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds that the list is limited to regions 'available in the pricing data', which gives useful context beyond the annotations.

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

Conciseness5/5

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

The description is a single sentence that is concise and front-loaded, with 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?

Given no parameters and no output schema, the description is adequate. It might be slightly improved by mentioning what the output contains (e.g., region codes or names), but it is complete enough for a simple 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?

There are no parameters, so the description does not need to add parameter information. Baseline of 4 is appropriate as the schema covers all parameters (none).

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 lists all AWS regions available in the pricing data, using a specific verb and resource. It distinguishes from sibling tools like list_azure_regions and list_gcp_regions.

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 guidelines on when to use this tool versus alternatives. The name and context of sibling tools imply it is for AWS regions, but no exclusions or when-not-to-use are provided.

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

list_azure_categoriesA
Read-onlyIdempotent

List Azure VM categories with counts (e.g., generalpurpose: 400, computeoptimized: 200).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

The description adds context about the output format (counts with examples) beyond the annotations, which already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The added value is moderate but not extensive.

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

Conciseness5/5

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

The description is a single, efficient sentence with no redundancy, front-loaded with the verb '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?

Given the lack of parameters and the richness of annotations, the description is complete. It explains the tool's output with an example, though it could optionally mention data source or update frequency.

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

Parameters4/5

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

There are no parameters, and schema coverage is 100%, so the baseline is 4. The description correctly adds nothing about 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 clearly specifies the verb 'List', the resource 'Azure VM categories', and provides an example output format, distinguishing it from sibling tools like list_oci_categories.

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 Azure VM category counts) but does not explicitly state when to use versus alternatives or provide exclusions.

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

list_azure_regionsA
Read-onlyIdempotent

List all Azure regions available in the pricing data.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already provide readOnlyHint, idempotentHint, etc. Description adds that regions are from 'pricing data', which is minor additional context. No contradictions.

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?

Single sentence with 9 words, front-loaded, no wasted text.

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

Completeness5/5

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

For a zero-parameter list tool with rich annotations, description is complete. Specifies data source (pricing data) and no output schema is needed for simple list.

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?

No parameters, so schema coverage is 100%. Baseline of 4 applies as description adds no param info (none needed).

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 clearly states 'List all Azure regions available in the pricing data' – specific verb+resource+scope. Distinguishes from sibling tools like list_aws_regions and list_gcp_regions.

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?

Context signals show clear differentiation from siblings (other providers' region listers), but no explicit when-to-use or when-not-to-use guidance is given.

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

list_gcp_instance_familiesA
Read-onlyIdempotent

List GCP instance families with counts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds no additional behavioral context beyond mentioning 'with counts', which is already part of the purpose. With annotations covering the safety profile, the description provides adequate but minimal extra 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?

A single sentence that is front-loaded and contains no wasted words. It efficiently communicates the core function.

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

Completeness4/5

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

With no parameters, no output schema, and annotations that cover safety and idempotency, the description is fairly complete. However, it does not clarify what 'counts' refers to (e.g., number of instances per family) or the broader context of pricing. Still, for a simple list tool, it is mostly 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?

There are no parameters (schema coverage 100%), so the description does not need to add parameter info. Baseline is 4, and the description meets this without needing additional semantics.

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 'List' and identifies the resource as 'GCP instance families' with the additional detail 'with counts'. This clearly distinguishes it from sibling tools like list_aws_instance_families and list_gcp_regions.

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. The name implies it is for listing GCP instance families, but no when-not-to-use or alternative suggestions are provided.

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

list_gcp_regionsA
Read-onlyIdempotent

List all GCP regions available in the pricing data with their display names.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint. Description adds context about pricing data source but no additional behavioral traits (e.g., no rate limits, pagination).

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?

Single sentence with no fluff. Front-loaded with key 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?

Simple tool with zero parameters and rich annotations. Description fully covers the purpose and output scope.

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?

No parameters, so the description naturally adds no param info. Baseline of 4 applies; the mention of 'display names' adds value beyond a bare listing.

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?

Clear verb 'list' and specific resource 'GCP regions' with detail 'display names'. Distinct from sibling list tools by provider.

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?

Implied usage for retrieving region display names, but no explicit guidance on when to use vs alternative list-region tools (e.g., list_aws_regions).

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

list_gpu_shapesA
Read-onlyIdempotent

List OCI GPU shapes with pricing. Filter by GPU model (A10, A100, H100, H200, L40S, MI300X) or use case (inference, training).

ParametersJSON Schema
NameRequiredDescriptionDefault
gpuModelNoFilter by GPU model (e.g., "A100", "H100", "MI300X")
useCaseNoFilter by intended use case
maxPricePerHourNoMaximum hourly price filter

TDQS

A4.1/5.0
Behavior3/5

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

Annotations (readOnlyHint=true, destructiveHint=false) already indicate safe read-only behavior. The description adds that it lists shapes with pricing, but lacks details on output fields or pagination. With annotations present, the description adds moderate value but could be more transparent about 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.

Conciseness5/5

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

Two concise sentences are front-loaded with the main action. Every word adds value with no redundancy. Efficient and direct.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 listing action and filters but omits output format details (e.g., fields like name, price, region). Since no output schema exists, the description should compensate by describing return values. Default behavior and pagination are also missing.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for all three parameters. The description adds helpful examples of GPU model values (A10, A100, etc.) not provided in the schema, and clarifies the useCase enum. This augments the schema meaningfully.

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 'List OCI GPU shapes with pricing' using a specific verb and resource. It distinguishes from sibling tools like get_gpu_shape_details (singular detail) or recommend_gpu_shape (recommendation) by focusing on listing multiple shapes.

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 listing shapes with optional filters (GPU model, use case). However, it does not explicitly guide the agent on when to use this tool versus alternatives like compare_gpu_shapes or get_gpu_shape_details, which limits clarity for correct tool selection.

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

list_oci_categoriesA
Read-onlyIdempotent

List all service categories available from OCI's real-time pricing API.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds the source 'OCI's real-time pricing API' but does not disclose additional traits like pagination or response format. With rich annotations, a score of 3 is appropriate.

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

Conciseness5/5

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

Single sentence of 13 words, no fluff. Front-loaded with key action and resource.

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

Completeness4/5

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

The tool is simple with no parameters and no output schema. The description covers the basic purpose but could hint at output structure. Given low complexity, 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?

No parameters exist, and schema coverage is 100%. Baseline for zero parameters is 4, and the description adds no further parameter info.

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 it lists all service categories from OCI's real-time pricing API, specifying the verb 'list' and the resource 'service categories'. It distinguishes itself from sibling tools like list_azure_categories by explicitly naming OCI.

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 description does not mention prerequisites, context, or comparison with other listing tools.

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

list_presetsA
Read-onlyIdempotent

List all available deployment presets for quick_estimate.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the safety and idempotency profile is clear. The description adds no additional behavioral context beyond these annotations, such as data freshness, rate limits, or 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.

Conciseness5/5

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

The description is a single concise sentence that conveys the essential purpose of the tool with no unnecessary words 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?

With no output schema, the description partially explains the return value (list of presets) but does not describe the structure or fields of each preset, leaving some ambiguity about the output format.

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 tool has zero parameters and schema description coverage is 100%. The description adds minimal context by specifying the presets are 'for quick_estimate', but this does not enhance parameter semantics since there are no 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 clearly states the tool lists all deployment presets specifically for quick_estimate. It uses a specific verb ('list') and resource ('deployment presets'), distinguishing it from sibling list_* tools that list other resources like instance families or regions.

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 list_gpu_shapes or quick_estimate. The description does not mention prerequisites, context, or when it is appropriate to call this tool.

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

quick_estimateA
Read-onlyIdempotent

Get instant cost comparison for common deployment presets including GPU workloads.

ParametersJSON Schema
NameRequiredDescriptionDefault
presetYesDeployment preset name

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, indicating safe, non-destructive, idempotent behavior. The description adds 'instant cost comparison', which is consistent but does not disclose additional behavioral traits beyond what annotations provide. 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 a single sentence of 12 words, front-loaded with the core action 'Get instant cost comparison'. No unnecessary words; every word contributes to 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?

The tool has one parameter with an enum and no output schema. The description explains the input scope (presets) but lacks details about the output format, such as whether cost comparisons are monthly/hourly, absolute/relative, or displayed as numbers/charts. For a quick estimate tool, this is acceptable 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 coverage is 100%: the parameter 'preset' has a schema description 'Deployment preset name'. The tool description adds context ('common deployment presets including GPU workloads'), which hints at relevant enum values but adds only marginal 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 clearly states the tool provides 'instant cost comparison for common deployment presets', with a specific verb ('Get'), resource ('cost comparison'), and scope including GPU workloads. This distinguishes it from siblings like 'compare_compute' or 'list_presets'.

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 for quick cost estimates of presets but does not explicitly state when to prefer this over alternatives like 'calculate_workload_cost' or 'compare_compute'. No exclusion criteria or when-not-to-use guidance is provided.

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

recommend_gpu_shapeB
Read-onlyIdempotent

Get GPU shape recommendation based on workload requirements and budget.

ParametersJSON Schema
NameRequiredDescriptionDefault
workloadTypeYesType of AI/ML workload
minGPUMemoryGBNoMinimum GPU memory needed per GPU (e.g., 24, 40, 80)
budgetNoBudget constraint (low: <$5/hr, medium: <$20/hr, high: unlimited)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the safety profile is clear. The description adds no additional behavioral traits (e.g., rate limits, dependence on external data freshness). The description is consistent with annotations, so 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.

Conciseness4/5

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

The description is a single concise sentence, front-loading the verb and resource. However, it is so brief that it omits important context, such as the fact that recommendations are based on the provided parameters. The sentence earns its place but could be slightly expanded for clarity.

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 tool has three parameters and no output schema, the description should provide more context about return values (e.g., does it return a single recommendation or a list?). It lacks guidance on how the recommendation is produced or what the output looks like, leaving the agent underinformed.

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 has 100% description coverage for all three parameters, so the schema already explains each parameter's meaning. The description does not add new semantics beyond what is in the schema. A baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get GPU shape recommendation based on workload requirements and budget.' It uses a specific verb ('Get') and resource ('GPU shape recommendation'), distinguishing it from sibling tools like 'list_gpu_shapes' which simply lists available shapes, and 'get_gpu_shape_details' which details a specific shape.

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 context where other tools might be more appropriate, such as when a user needs a specific shape's details or wants to compare costs. Sibling tools like 'compare_gpu_shapes' or 'calculate_workload_cost' are not referenced.

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

refresh_aws_ec2_pricingA
Read-onlyIdempotent

Fetch real-time AWS EC2 pricing from instances.vantage.sh. Returns 1,147 instance types with on-demand, spot, and reserved pricing. No authentication required.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoAWS region (default: us-east-1). Use list_aws_regions to see all available.
familyNoFilter by instance family (e.g., "General purpose", "Compute optimized")
architectureNoFilter by CPU architecture
maxResultsNoMaximum results to return (default: 500)
includeSpotNoInclude spot pricing in notes
includeReservedNoInclude reserved pricing in notes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds value by noting no authentication required and specifying the output scope (1,147 instance types, three pricing modes). No contradictions.

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

Conciseness5/5

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

Two sentences, no unnecessary words. The essential information is front-loaded: action, source, output characteristics, and authentication requirement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 lacks details about the response structure (e.g., format of pricing data) since there is no output schema. While the tool is low-complexity, agents would benefit from knowing how results are presented.

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

Parameters3/5

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

All 6 parameters have descriptions in the schema (100% coverage). The description does not add additional meaning beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool fetches real-time AWS EC2 pricing from instances.vantage.sh, specifies the exact number of instance types (1,147), and lists pricing types (on-demand, spot, reserved). This distinguishes it from sibling refresh tools for other services.

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 for AWS EC2 pricing but does not explicitly state when to use this tool versus alternatives like refresh_aws_rds_pricing or refresh_azure_pricing. No guidance on prerequisites or contraindications.

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

refresh_aws_rds_pricingA
Read-onlyIdempotent

Fetch real-time AWS RDS database pricing. Returns 353 instance types across multiple database engines.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoAWS region (default: us-east-1)
engineNoDatabase engine (default: PostgreSQL). Options: PostgreSQL, MySQL, MariaDB, Oracle, SQL Server
maxResultsNoMaximum results to return (default: 100)

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds only 'real-time', which may suggest non-idempotent behavior (different results over time) but does not contradict annotations. It lacks details on rate limits, caching, or data freshness.

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

Conciseness5/5

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

The description is a single sentence of 12 words, front-loading the action. Every word adds value, with no redundancy or 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?

The tool has no output schema, but the description partially compensates by stating the number of instance types and multi-engine support. However, it lacks guidance on differentiating usage from many sibling tools and does not describe output format or structure.

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

Parameters3/5

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

Schema coverage is 100%, so all three parameters (region, engine, maxResults) are documented in the schema. The description does not add meaning beyond the schema, but provides context about the result (353 instance types). Baseline 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb ('Fetch'), a clear resource ('AWS RDS database pricing'), and provides scope ('real-time', '353 instance types across multiple database engines'). This distinguishes it from siblings like refresh_aws_ec2_pricing or get_aws_lightsail_pricing.

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 refresh_aws_ec2_pricing for EC2 pricing. Usage is implied by the tool name and description, but no direct guidance or exclusion criteria are provided.

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

refresh_azure_full_pricingA
Read-onlyIdempotent

Fetch comprehensive Azure VM pricing from instances.vantage.sh. Returns 1,199 instance types with on-demand, spot, and Windows pricing.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoAzure region (default: us-east). Use list_azure_regions to see all available.
categoryNoFilter by category (e.g., "generalpurpose", "computeoptimized", "memoryoptimized")
includeSpotNoInclude spot pricing in notes
maxResultsNoMaximum results to return (default: 500)

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already indicate read-only, non-destructive, idempotent operation. The description adds value by specifying the external data source (instances.vantage.sh) and the fixed number of instance types (1,199) with pricing details, which are not covered by annotations.

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

Conciseness5/5

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

Single, front-loaded sentence that efficiently conveys the tool's purpose, source, and output characteristics. No fluff; every word 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 fetch tool with no output schema, the description partially explains return values (count and types of pricing). It could mention structure or format, but it provides enough context for basic selection. The schema covers parameters, so the description is reasonably complete.

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

Parameters3/5

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

Schema coverage is 100%, and each parameter already has a clear description in the input schema. The tool description adds no additional meaning or context beyond what the schema provides, so baseline score 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 it fetches comprehensive Azure VM pricing from a specific source (instances.vantage.sh) and mentions the data returned (1,199 instance types, pricing types). It distinguishes from the sibling 'refresh_azure_pricing' by using 'full' and emphasizing comprehensiveness, though not explicitly contrasting 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?

No explicit guidance on when to use this tool versus alternatives (e.g., 'refresh_azure_pricing'). The name implies it's the full version, but without context, an agent may not know when to choose one over the other.

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

refresh_azure_pricingA
Read-onlyIdempotent

Fetch latest Azure VM pricing from the public Azure Retail Prices API. No authentication required.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoAzure region (default: eastus)
vmSeriesNoOptional: filter by VM series (e.g., "D", "E", "F")
maxResultsNoMaximum results to return (default: 100)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds the important behavioral detail that no authentication is required, enhancing transparency beyond annotations.

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

Conciseness5/5

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

Two sentences convey the purpose and key behavioral note. No unnecessary information, front-loaded with the core action.

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 has three optional parameters, no output schema, and annotations cover safety. The description is sufficient for selecting and invoking the tool, though could hint at the output format.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters. The description does not add additional meaning beyond what the schema provides, meeting the baseline expectation.

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 fetches latest Azure VM pricing from a specific public API, distinguishing it from sibling tools like refresh_aws_ec2_pricing or refresh_gcp_pricing.

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 indicates the tool is for Azure VM pricing and requires no authentication, but does not explicitly guide when to use this over alternative sibling tools.

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

refresh_gcp_pricingA
Read-onlyIdempotent

Fetch real-time GCP Compute Engine pricing from instances.vantage.sh. Returns 287 instance types with on-demand and spot pricing across 40+ regions.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoGCP region (default: us-central1). Use list_gcp_regions to see all available.
familyNoFilter by instance family (e.g., "General purpose", "Compute optimized")
includeSpotNoInclude spot/preemptible pricing in notes
maxResultsNoMaximum results to return (default: 300)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already mark the tool as readOnlyHint, idempotentHint, and not destructive. The description adds that the data comes from a specific external source (instances.vantage.sh) and provides the scope (287 types, 40+ regions). It doesn't contradict annotations and adds useful behavioral context beyond the annotations.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the action and source, and provides key details about the output. Every sentence adds value with 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?

The tool is a simple read-only data fetch with no output schema. The description explains the source, coverage, and number of instance types. It could mention that the results may include a large dataset or note the default maxResults, but the schema covers that. It is largely complete 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 description coverage is 100%, with each parameter already having a clear description in the input schema. The tool description does not add extra meaning beyond what the schema provides, so it does not compensate beyond the baseline. The schema itself is clear enough.

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 fetches real-time GCP Compute Engine pricing from instances.vantage.sh and returns 287 instance types with on-demand and spot pricing across 40+ regions. This is a specific verb+resource combination that distinguishes it from sibling tools like refresh_aws_ec2_pricing.

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 prerequisites, exclusions, or when not to use it. For example, it doesn't suggest this tool for general GCP pricing queries versus other refresh tools for different providers.

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

refresh_oci_pricingA
Read-onlyIdempotent

Fetch latest OCI pricing from Oracle's public API. Returns 592 SKUs (562 standard + 30 BYOL) with PAY_AS_YOU_GO pricing. Automatically detects and flags BYOL (Bring Your Own License) variants. Includes summary statistics and API coverage notes. No authentication required.

ParametersJSON Schema
NameRequiredDescriptionDefault
currencyNoCurrency code (default: USD)
categoryNoFilter by service category (e.g., "Compute", "Storage")
searchNoSearch term for product name

TDQS

A4.2/5.0
Behavior5/5

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

Annotations declare readOnlyHint, idempotentHint, and non-destructive nature. The description adds valuable behavioral context: 'No authentication required', automatic BYOL detection, inclusion of summary statistics and API coverage notes.

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 sentences, front-loaded with the primary purpose. Every sentence adds value without 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 no output schema, the description provides useful context: SKU counts, pricing model, and included statistics. However, it could clarify the exact structure of the return value (list, object, etc.).

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

Parameters3/5

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

Schema description coverage is 100% with clear descriptions for all three parameters. The tool description does not add extra detail beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states it fetches OCI pricing from Oracle's public API, with specific details on SKU count and BYOL detection. It distinguishes itself from sibling refresh tools by specifying the cloud provider and unique features.

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 'No authentication required' but does not explicitly state when to use this tool over siblings like calculate_workload_cost or comparison tools. However, it implies use for fetching raw pricing data.

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. 31 tool updatesv1.4.0
    • First observedcalculate_workload_cost
    • First observedcheck_api_status
    • First observedcompare_compute
    • First observedcompare_egress
    • First observedcompare_gpu_shapes
    • First observedcompare_kubernetes
    • First observedcompare_storage
    • First observedestimate_migration_savings
    • First observedfind_cheapest_compute
    • First observedget_aws_lightsail_pricing
    • First observedget_data_freshness
    • First observedget_gpu_shape_details
    • First observedget_provider_details
    • First observedget_storage_summary
    • First observedlist_aws_instance_families
    • First observedlist_aws_regions
    • First observedlist_azure_categories
    • First observedlist_azure_regions
    • First observedlist_gcp_instance_families
    • First observedlist_gcp_regions
    • First observedlist_gpu_shapes
    • First observedlist_oci_categories
    • First observedlist_presets
    • First observedquick_estimate
    • First observedrecommend_gpu_shape
    • First observedrefresh_aws_ec2_pricing
    • First observedrefresh_aws_rds_pricing
    • First observedrefresh_azure_full_pricing
    • First observedrefresh_azure_pricing
    • First observedrefresh_gcp_pricing
    • First observedrefresh_oci_pricing

TDQS

A3.7/5.0

Scored across 31 tools

Disambiguation5/5

Each tool targets a specific combination of cloud provider and resource type (e.g., compare_compute, compare_egress, compare_storage, etc.), with no overlapping functionality. The descriptions clearly delineate their distinct purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., calculate_workload_cost, list_aws_regions, refresh_oci_pricing). The prefixes (get_, list_, compare_, refresh_) are semantically clear and uniformly applied.

Tool Count2/5

With 31 tools, the server exceeds the 25+ threshold considered too many for typical scope. While the breadth of cloud providers and resource types partially justifies this, many tools could be consolidated (e.g., unifying refresh_* tools or combining compare_* tools).

Completeness5/5

The tool set covers the full lifecycle of cloud cost estimation: compute, storage, egress, GPU, Kubernetes, migration savings, and data freshness. Missing aspects like specific database or network pricing are out of scope, making the surface complete for its intended domain.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    An MCP server for unified cost tracking and analysis across AWS, OpenAI, and Anthropic. It enables users to query expenditures, compare costs across providers, and analyze usage trends through natural language.
    10
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server that lets Claude (or any MCP-compatible client) compare on-demand compute + storage pricing across AWS, Azure, and GCP in real time.
    14
    50 PyPI
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Local-first FinOps MCP server. Ask about your AWS, Azure, GCP, and SaaS costs in plain English. Anomaly detection, rightsizing, idle-resource cleanup, and Jira/Linear ticketing. Credentials never leave your machine.
    10
    18
    Apache 2.0