mcp-server-cloud-regions
Provides cloud region data for Linode (Akamai) cloud, including location, compliance, and GPU availability information.
Provides comprehensive cloud region data for AWS, enabling queries about region locations, compliance certifications, GPU availability, and sustainability metrics.
Provides cloud region data for DigitalOcean, including location, compliance, and availability zone information.
Provides comprehensive cloud region data for GCP, enabling queries about region locations, compliance certifications, GPU availability, and sustainability metrics.
Provides cloud region data for Hetzner, including location, compliance, and sustainability information.
Provides cloud region data for OVHcloud, including location, compliance, and sustainability information.
Provides cloud region data for Paperspace, including GPU availability and location information.
Provides cloud region data for Scaleway, including location, compliance, and sustainability information.
Provides cloud region data for Vultr, including location, compliance, and GPU availability information.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-cloud-regionsWhich AWS regions have H100 GPUs?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-server-cloud-regions
A Model Context Protocol (MCP) server providing comprehensive cloud region data across all major providers. Query, filter, and compare cloud infrastructure locations worldwide.
269 regions across 14 cloud providers — query by location, compliance, sustainability, and GPU availability.
Quick Start
With Claude Desktop
Add to your config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"cloud-regions": {
"command": "npx",
"args": ["-y", "mcp-server-cloud-regions"]
}
}
}With Claude Code (CLI)
claude mcp add cloud-regions -- npx -y mcp-server-cloud-regionsThen ask Claude questions like:
"Which AWS regions have H100 GPUs?"
"Find HIPAA-compliant regions in Europe"
"What's the nearest cloud region to Tokyo with GPU support?"
"Compare cloud provider coverage in Germany"
Related MCP server: buyapi
Why This Exists
Planning multi-cloud deployments requires answering questions across providers:
"Which providers have regions in Germany with GDPR compliance?"
"What's the nearest GPU-enabled region to my users in São Paulo?"
"Which cloud has the most coverage in Asia Pacific?"
"Where can I deploy with carbon-neutral infrastructure?"
"Which regions support FedRAMP for government workloads?"
This MCP server provides a unified data model to answer these questions instantly.
Supported Providers
Tier | Providers |
Hyperscalers | AWS, Azure, GCP, Oracle Cloud (OCI) |
Major | DigitalOcean, Linode (Akamai), Vultr |
Specialized | Crusoe (clean energy), CoreWeave (GPU), Lambda Labs (AI/ML), Paperspace (GPU/ML) |
Regional | OVHcloud, Hetzner, Scaleway |
Available Tools
Discovery
Tool | Description |
| List all regions with filtering (provider, country, compliance, GPU, sustainability, region type) |
| Get detailed info for a specific region by ID (e.g., |
| List all cloud providers with metadata and tier classification |
| Get all regions for a specific provider |
| Full-text search across region names, cities, countries, and provider names |
Geospatial
Tool | Description |
| Find regions nearest to coordinates (for latency optimization) |
| All countries with cloud presence and region counts |
| All cities with data centers and which providers operate there |
Specialized Queries
Tool | Description |
| Filter by certifications (HIPAA, GDPR, FedRAMP, SOC2, PCI-DSS, etc.) |
| Find carbon-neutral data centers |
| Find regions with GPU availability (A100, H100, TPU, etc.) |
| Compare provider presence in a country or continent |
Analytics & Metadata
Tool | Description |
| Summary stats: totals by provider, country, continent, capabilities |
| Data freshness: last updated date, version, source URLs for each provider |
Region Types
The server tracks different types of cloud regions:
Type | Description | Examples |
| Standard public cloud regions | aws-us-east-1, azure-eastus |
| Government-restricted regions (GovCloud, IL4+) | aws-us-gov-west-1, azure-usgovvirginia |
| Data sovereignty regions with separate control planes | azure-germanynorth, oci-eu-frankfurt-2 |
| China regions (separate operators/partitions) | azure-chinaeast, aws-cn-north-1 |
Filter by region type using list_regions with the regionTypes parameter.
Example Queries
Find HIPAA-compliant regions in the US:
{
"tool": "find_compliant_regions",
"certifications": ["HIPAA"],
"countryCodes": ["US"]
}Find the 5 nearest GPU regions to London:
{
"tool": "find_nearby_regions",
"latitude": 51.5074,
"longitude": -0.1278,
"limit": 5,
"hasGpu": true
}List regions with 3+ availability zones:
{
"tool": "list_regions",
"minAvailabilityZones": 3
}Compare European coverage across hyperscalers:
{
"tool": "compare_provider_coverage",
"continent": "europe"
}Find government regions:
{
"tool": "list_regions",
"regionTypes": ["government", "sovereign"]
}Check when data was last updated:
{
"tool": "get_data_info"
}Data Model
Each region includes:
{
id: "aws-us-east-1",
provider: "aws",
regionCode: "us-east-1",
displayName: "US East (N. Virginia)",
regionType: "commercial",
location: {
country: "United States",
countryCode: "US",
city: "Ashburn",
latitude: 39.0438,
longitude: -77.4874,
continent: "north-america"
},
availabilityZones: 6,
launchedDate: "2006-08-25",
status: "ga",
compliance: ["SOC1", "SOC2", "HIPAA", "FedRAMP-Moderate", "PCI-DSS"],
sustainability: {
renewableEnergyPercent: 100,
carbonNeutral: true
},
services: {
compute: true,
kubernetes: true,
gpu: true,
gpuTypes: ["NVIDIA A10G", "NVIDIA A100", "NVIDIA H100"]
},
sovereignty: {
dataResidency: "US",
dataResidencyGuarantee: true
}
}Data Updates
The server automatically fetches the latest region data from GitHub on startup, with fallback to bundled data if offline. Data is verified against official provider documentation:
A weekly GitHub Action checks the provider pages for changes and opens an issue when an update may be needed; the region data is then refreshed and released by a maintainer (the dataset itself is curated, not auto-generated from the provider pages).
Use Cases
Multi-cloud strategy — Identify providers with presence in your target markets
Compliance planning — Find regions meeting regulatory requirements (HIPAA, GDPR, FedRAMP)
Latency optimization — Locate the nearest regions to your users
Sustainability goals — Deploy on carbon-neutral infrastructure
GPU/AI workloads — Find regions with specific accelerator availability
Disaster recovery — Plan geographically distributed deployments
Government workloads — Find GovCloud and sovereign regions
Installation
npm install mcp-server-cloud-regionsOr run directly with npx:
npx -y mcp-server-cloud-regionsContributing
Contributions welcome! To add or update provider data:
Edit provider metadata:
src/data/providers.tsEdit region data:
src/data/regions-*.tsUpdate metadata date:
src/data/metadata.tsRun
npm run build && npm run export-dataSubmit a pull request
Scripts
Command | Description |
| Compile TypeScript |
| Export regions to |
| Check if provider pages have changed |
Disclaimer
This data is provided for informational purposes only. Cloud providers frequently add, modify, or deprecate regions and services. Users are responsible for verifying region availability, compliance certifications, and service offerings directly with each cloud provider before making deployment decisions.
While we strive to keep this data accurate and up-to-date, we make no guarantees about completeness or correctness. Always consult official provider documentation for production planning.
License
MIT
Available Tools
14 toolscompare_provider_coverageARead-onlyIdempotent
Compare how many regions each provider has in a specific country or continent
| Name | Required | Description | Default |
|---|---|---|---|
| continent | No | Continent to compare (e.g., "europe", "asia") | |
| countryCode | No | ISO country code to compare (e.g., "US", "DE", "JP") |
TDQS
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 it's a safe, idempotent operation. The description adds that it compares per-provider region counts, which is consistent but does not disclose additional behavioral traits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the purpose. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should explain what the tool returns (e.g., a mapping of provider to count). It also does not clarify the relationship between the two optional parameters (whether one must be provided). The description leaves the agent uncertain about the output format and parameter requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description mentions 'specific country or continent', aligning with the parameters, but does not add new semantic information beyond the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'compare' and the resource 'how many regions each provider has in a specific country or continent'. It distinguishes this tool from siblings like 'list_providers' or 'get_provider_regions' which do not offer comparative analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for comparing provider coverage by geography but does not explicitly state when to use this tool versus alternatives like 'find_compliant_regions' or 'get_statistics'. No exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_compliant_regionsARead-onlyIdempotent
Find regions that have specific compliance certifications (e.g., HIPAA, FedRAMP, GDPR, SOC2)
| Name | Required | Description | Default |
|---|---|---|---|
| providers | No | Filter by provider IDs | |
| countryCodes | No | Filter by country codes | |
| certifications | Yes | Required compliance certifications. Regions must have ALL specified certifications. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, idempotent, non-destructive. Description adds context that regions must have ALL specified certifications and gives examples (HIPAA, FedRAMP, etc.), adding value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with verb and resource, no wasted words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description and schema together provide adequate context for a simple list-filtering tool. Could mention return format but not necessary given annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. Description does not add extra meaning beyond what's in schema; baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool finds regions with specific compliance certifications, citing examples. It distinguishes from sibling tools like find_gpu_regions or find_sustainable_regions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies use for compliance certification filtering but does not explicitly state when to use vs alternatives or provide exclusions. Sibling tools are listed but not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_gpu_regionsARead-onlyIdempotent
Find regions with GPU availability, optionally filtering by GPU type (e.g., A100, H100, TPU)
| Name | Required | Description | Default |
|---|---|---|---|
| gpuType | No | Filter by GPU type (e.g., "A100", "H100", "TPU") | |
| providers | No | Filter by provider IDs | |
| continents | No | Filter by continent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds GPU filtering context but no additional behavioral details (e.g., output format, pagination). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundant text, directly communicates core functionality. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main purpose and optional filters. Given read-only nature and no output schema, description is mostly complete, though it omits hints about result format or default behavior (e.g., returns all regions if no filter).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. Description mentions gpuType filtering but adds no new meaning beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Find regions with GPU availability' with optional filtering, specifying verb and resource. However, it does not explicitly distinguish from sibling tools like 'find_compliant_regions' or 'find_nearby_regions', leaving potential ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied for finding GPU-capable regions with optional filters, but no explicit when-to-use or when-not-to-use guidance is provided, and no alternatives are mentioned despite many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_nearby_regionsARead-onlyIdempotent
Find cloud regions nearest to a geographic location. Useful for latency optimization and data residency planning.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return | |
| hasGpu | No | Filter to only regions with GPU | |
| latitude | Yes | Target latitude | |
| longitude | Yes | Target longitude | |
| providers | No | Filter by provider IDs | |
| maxDistanceKm | No | Maximum distance in kilometers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds purpose but no new behavioral traits beyond what annotations provide, such as rate limits or result ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the core purpose with no wasted words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters and no output schema, the description covers the primary use case adequately. Could briefly mention available filters (distance, GPU, providers) but schema already handles that; agent can infer from parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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), so baseline is 3. The description does not add additional meaning beyond schema; it reiterates 'geographic location' which is already clear from latitude/longitude.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'find' and the resource 'cloud regions nearest to a geographic location.' Distinguishes from sibling tools like search_regions and find_compliant_regions by focusing on geographic proximity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions utility for 'latency optimization and data residency planning,' providing context for when to use, but does not explicitly exclude alternatives or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_sustainable_regionsARead-onlyIdempotent
Find carbon neutral and sustainable cloud regions
| Name | Required | Description | Default |
|---|---|---|---|
| providers | No | Filter by provider IDs | |
| continents | No | Filter by continent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false) already indicate a safe read operation. The description adds the context of 'carbon neutral and sustainable' but does not clarify the criteria or what the tool actually does beyond that. It is sufficient but not insightful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the tool's purpose. Every word is relevant, with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema and the presence of many sibling tools, the description is adequate but thin. It does not explain the return format, ordering, or what constitutes 'sustainable.' More context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters (providers, continents). The tool description adds no additional meaning beyond the schema, providing no further clarification on parameter usage or behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds 'carbon neutral and sustainable cloud regions,' using a specific verb ('find') and resource ('sustainable regions'). It distinguishes itself from sibling tools like 'find_compliant_regions' or 'find_gpu_regions' by focusing on sustainability criteria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus its many siblings (e.g., 'find_compliant_regions', 'find_nearby_regions'). There is no mention of use cases, prerequisites, or scenarios where alternatives are preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_data_infoARead-onlyIdempotent
Get metadata about the region data including last updated date, total counts, and source URLs for each provider
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description adds value by specifying the exact metadata fields returned (last updated, counts, URLs), without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with verb 'Get', covers key information without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 adequately explains the tool's purpose and return content, though it could mention whether the response is aggregated or detailed per provider.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist and schema coverage is 100%, so the baseline is 3. The description adds meaning by explaining what the tool returns, which is sufficient for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves metadata about region data including last updated date, total counts, and source URLs per provider, distinguishing it from sibling tools like get_region which returns detailed region info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a high-level overview of data freshness and provider sources is needed, but does not explicitly contrast with alternatives like get_statistics or list_regions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_provider_regionsBRead-onlyIdempotent
Get all regions for a specific cloud provider
| Name | Required | Description | Default |
|---|---|---|---|
| provider | Yes | Provider ID (e.g., "aws", "azure", "gcp", "oci", "digitalocean", "crusoe") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is clear. The description adds no behavioral details beyond confirming it fetches all regions. With annotations, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no irrelevant information. It is perfectly concise for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter and no output schema, the description is fairly complete. However, it does not mention what the output contains (e.g., region IDs, names) or handling of unknown providers. Slightly more context would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the provider parameter (examples of valid values). The tool description does not add further parameter semantics, but the schema already handles it. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets all regions for a specific cloud provider, using a specific verb and resource. However, it does not distinguish itself from sibling tools like list_regions or search_regions, which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus its siblings, nor any context on prerequisites or exclusions. The agent receives no help in choosing between get_provider_regions and other region-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_regionARead-onlyIdempotent
Get detailed information about a specific cloud region by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Region ID (e.g., "aws-us-east-1", "azure-eastus", "gcp-us-central1") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds no additional behavioral context beyond 'Get detailed information', which is consistent but not extra.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words. Fully front-loaded with the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and no output schema, the description plus annotations provide complete information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the single parameter 'id'. The description adds no extra meaning beyond the schema, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed info for a specific region by ID, using a specific verb+resource. It is distinct from sibling tools like list_regions or search_regions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for looking up a single region by ID, but does not explicitly mention when not to use it or suggest alternatives like list_regions for listing all regions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statisticsARead-onlyIdempotent
Get summary statistics about all cloud regions, including counts by provider, country, continent, and special capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and destructiveHint, so description adds value by detailing the output contents (counts by provider, country, continent, special capabilities). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with verb and resource, no unnecessary words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, description adequately explains the output concept. Could specify whether output is a single object or list, but still sufficient for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no parameters; input schema is empty (100% coverage trivially). Description adds meaning by explaining what the tool does, compensating for the lack of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Get' and resource 'summary statistics about all cloud regions' with specific details about groupings (provider, country, continent, special capabilities). It distinguishes from sibling tools which are more specific (e.g., find_compliant_regions, compare_provider_coverage).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for obtaining aggregate overviews, but does not explicitly state when to use this tool versus alternatives. No exclusion criteria or sibling differentiation provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_citiesARead-onlyIdempotent
List all cities that have cloud regions, with the providers present in each
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly and idempotent hints. The description adds context about the data returned (cities with providers), exceeding annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the key action and result, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and good annotations, the description fully explains what the tool does, and the output is implied from the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. The description does not need to add param info; baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists cities with cloud regions and the providers present in each, with a specific verb-resource combination that distinguishes it from siblings like list_regions or list_providers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like list_countries or list_providers, but the context is clear for a simple listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_countriesARead-onlyIdempotent
List all countries that have cloud regions, with count of regions in each
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, non-destructive. The description adds value by stating it returns a count of regions per country, providing additional 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core purpose (list countries) and adds the key extra detail (count of regions). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the return (list of countries with region counts) is implied clearly. The tool is simple enough that this level of description is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so baseline is 4. The description effectively communicates the tool's function without needing parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists countries with cloud regions and includes the count of regions per country. It distinguishes from siblings like list_cities and list_providers by specifying the entity (countries) and the included count.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Siblings exist (e.g., list_cities, list_providers) but are not mentioned or contrasted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_providersARead-onlyIdempotent
List all cloud providers with their metadata
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Filter by provider tier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint, establishing a non-destructive, read-only behavior. The description adds 'with their metadata' but does not disclose further behavioral traits such as sorting, pagination, or rate limits. The annotation coverage reduces the need for extensive description, so 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the tool's purpose. It is front-loaded and contains no extraneous information, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema), the description adequately covers the core functionality. While it could mention that the result is a list of providers with specific fields, the context provided by sibling tools and annotations compensates for minor omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with a single optional parameter ('tier') and clear enum values. The description does not add any additional meaning beyond the schema, which already fully documents the parameter's purpose and constraints. Hence, a baseline score of 3 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all cloud providers with their metadata' uses a specific verb 'List' and clearly identifies the resource (cloud providers) and scope (all, with metadata). It effectively distinguishes itself from sibling tools like 'compare_provider_coverage' or 'find_compliant_regions', which have more specialized filtering or comparison purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a straightforward listing use case but provides no explicit guidance on when to use this tool versus alternatives, nor does it mention when not to use it or any prerequisites. While the purpose is clear, the lack of contextual cues for tool selection leaves room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_regionsARead-onlyIdempotent
List all cloud regions across all providers. Supports filtering by provider, tier, country, continent, compliance, sustainability, GPU availability, and more. Returns a compact summary when called with no filter; pass a filter or "limit" for full region objects.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of full region objects to return (default: all when filtered; a compact summary when unfiltered) | |
| tiers | No | Filter by provider tier | |
| hasGpu | No | Filter to only regions with GPU availability | |
| providers | No | Filter by provider IDs (e.g., ["aws", "azure", "gcp"]) | |
| compliance | No | Filter by compliance certifications (e.g., ["HIPAA", "GDPR", "SOC2"]) | |
| continents | No | Filter by continent | |
| regionTypes | No | Filter by region type (e.g., ["commercial", "government", "sovereign"]) | |
| countryCodes | No | Filter by ISO country codes (e.g., ["US", "DE", "JP"]) | |
| carbonNeutral | No | Filter to only carbon neutral regions | |
| dataResidency | No | Filter by data residency (e.g., "EU", "US", "Germany") | |
| minAvailabilityZones | No | Filter by minimum number of availability zones |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating safe read operation. The description adds valuable context about output format differences based on filter or limit parameter, which goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. First sentence states the core purpose, second explains output behavior under different conditions. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters and no output schema, the description explains the two modes (filtered/unfiltered) but lacks detail on what the compact summary contains or what full region objects include. It also does not guide the user to sibling tools for specific filters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 11 parameters are documented in the schema with descriptions (100% coverage). The description adds general behavior about compact vs full output but does not add specific meaning to individual parameters beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all cloud regions across all providers, with a specific verb and resource. It also mentions filtering capabilities, which distinguishes it from more specialized sibling tools like find_gpu_regions or find_compliant_regions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use no filter (compact summary) vs with filter (full objects). It does not explicitly mention alternatives or when not to use this tool, but the context signals show many siblings, so the differentiation is implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_regionsBRead-onlyIdempotent
Search regions by text query. Searches display name, region code, city, country, and provider name.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query text | |
| providers | No | Filter by provider IDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it searches multiple fields, but does not disclose potential behavioral traits like result limits, ordering, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy. Front-loaded with the main action. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 params, no output schema) and the presence of clear annotations, the description adequately explains the core functionality. However, it lacks details on result behavior (e.g., ordering, max results) that would be helpful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds value by clarifying that the query searches across multiple fields (display name, region code, etc.), which is not evident from the schema alone. This helps the agent understand the scope of the query parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search regions by text query' with a specific verb and resource, and lists the fields searched (display name, region code, city, country, provider name). However, it does not explicitly distinguish from sibling search tools like find_compliant_regions or find_nearby_regions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as find_compliant_regions or list_regions. The description simply states what it does without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
v1.1.0- First observed
compare_provider_coverage - First observed
find_compliant_regions - First observed
find_gpu_regions - First observed
find_nearby_regions - First observed
find_sustainable_regions - First observed
get_data_info - First observed
get_provider_regions - First observed
get_region - First observed
get_statistics - First observed
list_cities - First observed
list_countries - First observed
list_providers - First observed
list_regions - First observed
search_regions
TDQS
Scored across 14 tools
Tools are mostly distinct with clear purposes. Small overlap between list_regions (supports filtering) and search_regions (text search), and between compare_provider_coverage and get_statistics, but descriptions help differentiate.
All tool names follow a consistent verb_noun pattern with underscores (e.g., find_compliant_regions, list_providers, get_region). The verbs are appropriately chosen (list, get, find, compare, search), making the naming predictable.
14 tools is well-scoped for a cloud region reference server. Each tool addresses a specific query need without being excessive or insufficient.
The tool surface covers all common queries: listing providers/regions, filtering by compliance/GPU/sustainability/location, searching, statistics, and metadata. As a read-only data source, it is complete with no obvious gaps.
Maintenance
Related MCP Connectors
Hosted MCP server for AI-driven data ops. Create apps, manage schemas, and CRUD structured data.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Geo-based flight search MCP server. Find more flights between any two places on earth
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server that lets Claude (or any MCP-compatible client) compare on-demand compute + storage pricing across AWS, Azure, and GCP in real time.1450 PyPI1MIT
- AlicenseNot gradedqualityAmaintenanceUnbiased vendor intelligence MCP server that helps AI agents and developers make informed infrastructure decisions by providing current, structured, neutral vendor comparisons and recommendations.68 npm1MIT
- AlicenseAqualityDmaintenanceMulti-cloud pricing comparison MCP server that enables natural language queries to compare compute, storage, egress, and Kubernetes costs across AWS, Azure, GCP, and OCI.3138 npm4Apache 2.0
- FlicenseNot gradedqualityCmaintenanceMulti-cloud MCP server that exposes cloud AI models as tools for AI CLI agents, supporting streaming, conversation history, parallel multi-model queries, and dynamic model discovery.2-