list_services
List all cloud services for a provider. Returns slug, name, category, and supported tiers. Use to find valid service keys for ArchSpecs or requirement mapping.
Instructions
List all cloud services supported for a given provider.
Returns one entry per service with its slug, human-readable name, category
(compute / database / storage / networking / etc.), and supported tiers.
Use this to discover valid service: keys when hand-authoring ArchSpecs
or mapping requirements to services.
Behavior: Pure lookup from the bundled service registry — no LLM, no network, no cloud access.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| provider | No | Cloud provider slug. Values: 'aws' (47 services), 'gcp' (25), 'azure' (28), 'databricks'. | aws |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- The MCP tool handler function for 'list_services'. Uses a decorator-based registration (@mcp.tool()) and calls ServiceRegistry().list_services(provider) to return cloud services for a given provider as a list of dicts.
@mcp.tool() def list_services( provider: Annotated[ str, Field( description=( "Cloud provider slug. Values: 'aws' (47 services), 'gcp' (25), 'azure' (28), 'databricks'." ), examples=["aws", "gcp", "azure", "databricks"], ), ] = "aws", ) -> list[dict]: """List all cloud services supported for a given provider. Returns one entry per service with its slug, human-readable name, category (compute / database / storage / networking / etc.), and supported tiers. Use this to discover valid `service:` keys when hand-authoring ArchSpecs or mapping requirements to services. Behavior: Pure lookup from the bundled service registry — no LLM, no network, no cloud access. """ from cloudwright.registry import ServiceRegistry services = ServiceRegistry().list_services(provider) return [s.to_dict() for s in services] - packages/mcp/cloudwright_mcp/tools/export.py:9-10 (registration)The register() function in export.py that decorates tool functions (including list_services) with @mcp.tool() to register them with the FastMCP server.
def register(mcp: FastMCP) -> None: @mcp.tool()