<objective>Routing note: For ambiguous user intents, use the shared clarification templates in references/intent-clarification.md.
Workspaces & Clusters
List TrueFoundry workspaces and clusters. Workspaces are the deploy targets; clusters are the underlying infrastructure.
When to Use
List workspaces and clusters, find workspace FQNs for deployment, check cluster connectivity, or discover available GPU types and base domains.
</objective> <instructions>Execution Priority
For simple read/list operations in this skill, always use MCP tool calls first:
tfy_clusters_listtfy_workspaces_list
If tool calls are unavailable because the MCP server is not configured, or a tool is missing, fall back automatically to direct API via tfy-api.sh.
When using direct API, set TFY_API_SH to the full path of this skill's scripts/tfy-api.sh. See references/tfy-api-setup.md for paths per agent.
Recommended Flow: Cluster → Workspace
Never ask users to set TFY_CLUSTER_ID manually. Instead, list clusters and let the user pick — then filter workspaces by that cluster.
Step 1: List Clusters
# Via Tool Call
tfy_clusters_list()
# Via Direct API
$TFY_API_SH GET /api/svc/v1/clusters
Present as a table and ask the user to pick one:
Clusters:
| Name | ID | Connected |
|------------------|------------------|-----------|
| prod-cluster | prod-cluster | Yes |
| dev-cluster | dev-cluster | Yes |
Which cluster would you like to use?
Step 2: List Workspaces (Filtered by Cluster)
Once the user picks a cluster, list workspaces filtered to that cluster:
# Via Tool Call
tfy_workspaces_list(filters={"cluster_id": "selected-cluster-id"})
# Via Direct API
$TFY_API_SH GET '/api/svc/v1/workspaces?clusterId=SELECTED_CLUSTER_ID'
Present as a table and ask the user to pick one:
Workspaces in prod-cluster:
| Name | FQN |
|------------|----------------------------|
| dev-ws | prod-cluster:dev-ws |
| staging-ws | prod-cluster:staging |
Which workspace would you like to use?
Key field: fqn — this is what TFY_WORKSPACE_FQN needs for deploy.
Shortcut: If Only One Cluster
If the user has access to only one cluster, skip the cluster selection step — go straight to listing workspaces.
List All Workspaces (Unfiltered)
# Via Tool Call
tfy_workspaces_list()
# Via Direct API
$TFY_API_SH GET /api/svc/v1/workspaces
Get Specific Workspace
# Via Tool Call
tfy_workspaces_list(workspace_id="ws-id-here")
# Via API
$TFY_API_SH GET /api/svc/v1/workspaces/WORKSPACE_ID
Get Cluster Details
# Via Tool Call
tfy_clusters_list(cluster_id="cluster-id") # with status + addons
# Via Direct API
$TFY_API_SH GET /api/svc/v1/clusters/CLUSTER_ID
$TFY_API_SH GET /api/svc/v1/clusters/CLUSTER_ID/is-connected
$TFY_API_SH GET /api/svc/v1/clusters/CLUSTER_ID/get-addons
Cluster Base Domains (for Public URLs)
When a user wants to expose a service publicly, you need the cluster's base domains to construct a valid hostname. Invalid hosts cause deploy failures. See references/cluster-discovery.md for how to look up base domains, extract cluster ID from workspace FQN, and construct public URLs.
Available GPU Types
When a user needs GPU resources, discover what's available on the cluster before offering options.
How to Discover
Option A: Check cluster addons/node pools
$TFY_API_SH GET /api/svc/v1/clusters/CLUSTER_ID/get-addons
Option B: The SDK/API error message tells you
If you deploy with an unsupported GPU type, the error message lists all valid ones:
"None of the nodepools support A10G. Valid devices are [T4, A10_4GB, A10_8GB, A10_12GB, A10_24GB, H100_94GB]"
Not all types are available on every cluster. Always check before presenting options to the user.
For the full GPU type reference table and SDK usage examples, see references/gpu-reference.md.
<success_criteria>
- The user can see a formatted table of available workspaces with their FQNs
- The agent has identified the correct workspace FQN for the user's intended deployment target
- The user can see cluster connectivity status and available infrastructure
- The agent has discovered and presented available GPU types if the user needs GPU resources
- The user has the cluster base domain if they need to expose a service publicly
</success_criteria>
<references>Composability
- Need workspace for deploy: Use this skill first, then
deployskill with thefqn - Need cluster for filtering: Pass
cluster_idto workspaces or applications - Check infra status: Get cluster + addons for monitoring
Error Handling
No Workspaces Found
No workspaces found. Check:
- The selected cluster may not have any workspaces
- Your API key may not have access to this cluster
- Try listing clusters first to pick a different one
Permission Denied
Cannot list workspaces. Your API key may lack workspace permissions.
</troubleshooting>