Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SKYPILOT_API_SERVER_ENDPOINTNoEndpoint URL for a remote SkyPilot API server

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
skypilot_api_infoA

Get SkyPilot API server information including health status, version, commit hash, and authentication details.

skypilot_api_statusA

List pending and running API requests. Optionally filter by specific request_ids, cluster_name, or fields. Set all_status=True to include finished requests. Use limit to cap the number of results.

skypilot_api_cancelB

Cancel pending API requests. Specify request_ids to cancel specific requests. Returns a request_id for the cancel operation itself.

skypilot_get_requestA

Wait for a SkyPilot request to complete and return its result. Use this after calling tools that return a request_id (e.g., skypilot_cluster_launch, skypilot_cluster_stop, etc.). This call blocks until the request finishes.

skypilot_stream_and_getA

Wait for a SkyPilot request to complete while capturing its log output. Unlike skypilot_get_request (which only returns the final result), this also returns the streaming logs produced during execution — useful for long-running operations like launch, exec, or managed job launch. Returns a JSON object with 'result' and 'logs' fields. Set tail to limit how many trailing log lines are captured (default: all). Set follow=False to return immediately with whatever logs are available. Use log_path instead of request_id to stream from a specific log file on the API server.

skypilot_api_startA

Start the SkyPilot API server. Set deploy=True for deployment mode (fully utilizes resources). Optionally enable metrics collection and basic auth. Note: foreground mode is not supported via MCP as it would block the server permanently.

skypilot_api_stopA

Stop the SkyPilot API server. Only works for locally hosted API servers. Will raise an error for remote API servers.

skypilot_api_server_logsB

Get SkyPilot API server logs. Returns a snapshot of the server log output. Set tail to limit the number of lines returned.

skypilot_api_loginB

Log in to a remote SkyPilot API server. Sets the endpoint globally so all subsequent SkyPilot calls use it. Set relogin=True to force re-authentication with OAuth2.

skypilot_api_logoutA

Log out of the remote SkyPilot API server. Clears all cookies and settings. Only works for remote API servers.

skypilot_cluster_statusA

Get the status of SkyPilot clusters. Returns cluster names, statuses, resource types, autostop settings, and more. If no cluster_names provided, returns all clusters. Set refresh to 'NONE' (default, no refresh), 'AUTO' (refresh only clusters with autostop or spot instances), or 'FORCE' (refresh all).

skypilot_cluster_launchB

Launch a new cluster or submit a task to an existing cluster. Accepts a SkyPilot task YAML string defining resources, setup, and run commands. Set optimize_target to 'COST' (default) or 'TIME'. Set fast=True to skip cloud availability checks for faster provisioning. Set wait_for to control autostop idle detection: 'jobs_and_ssh' (default), 'jobs', or 'none'. Returns a request_id — use skypilot_get_request to poll for the result.

skypilot_cluster_execA

Execute a task on an existing cluster. Syncs workdir and runs commands. Accepts a SkyPilot task YAML string. Returns a request_id — use skypilot_get_request to poll for the result.

skypilot_cluster_stopA

Stop a running cluster. Data on attached disks is preserved. Billing for instances stops but disk charges continue. Set graceful=True to wait for in-progress data uploads to finish before stopping (prevents data loss). Returns a request_id.

skypilot_cluster_startB

Restart a previously stopped cluster. Reattaches preserved disks. Set wait_for to control autostop idle detection: 'jobs_and_ssh' (default), 'jobs', or 'none'. Returns a request_id.

skypilot_cluster_downB

Tear down a cluster completely. All associated resources are deleted and data on attached disks is lost. Returns a request_id.

skypilot_cluster_autostopA

Set an autostop timer for a cluster. The cluster will automatically stop (or tear down if down=True) after being idle for the specified number of minutes. Set idle_minutes to -1 to disable. Set wait_for to control idle detection: 'jobs_and_ssh' (default), 'jobs', or 'none'. Set hook to a shell command to run on the cluster before autostop. Returns a request_id.

skypilot_cluster_endpointsA

Get the endpoint(s) for a cluster. Optionally filter by port number or port name. Returns a mapping of port numbers to endpoint URLs.

skypilot_reload_configA

Reload the SkyPilot client-side configuration from ~/.sky/config.yaml. Use after making manual changes to the config file.

skypilot_workspacesA

List available SkyPilot workspaces. Returns workspace names and their configurations.

skypilot_dashboardB

Open the SkyPilot dashboard in the default web browser. Optionally specify a starting page.

skypilot_jobs_dashboardA

Open the managed jobs dashboard in the default web browser. Shows a dedicated view for monitoring managed jobs.

skypilot_cost_reportA

Get cost reports for all clusters, including those that have been terminated. Shows estimated costs based on resource types and usage duration. Optionally filter by number of days.

skypilot_optimizeA

Find the best execution plan for a task. Analyzes available clouds, regions, and instance types to find the optimal placement. Set minimize to 'COST' (default) or 'TIME'. Returns the optimized DAG with the best resources selected.

skypilot_validateA

Validate a task configuration without launching it. Checks that file paths (workdir, file_mounts) exist locally and that the task specification is valid on the server side. Raises an error if validation fails, returns success message otherwise.

skypilot_checkA

Check and enable infrastructure credentials. Verifies that credentials are configured correctly for the specified infrastructure (clouds, Kubernetes, SSH, Slurm). If no infra specified, checks all supported infrastructure. Optionally specify a workspace name to scope the check to a specific workspace.

skypilot_enabled_cloudsA

List all clouds that have been enabled (credentials configured). Returns a list of cloud names. Set expand=True to expand Kubernetes and SSH into individual resource pools. Optionally specify a workspace name to scope the listing to a specific workspace.

skypilot_list_acceleratorsB

List available accelerators (GPUs/TPUs) across clouds. Filter by name, region, quantity, or specific clouds. Set gpus_only=False to include non-GPU accelerators like TPUs. Set case_sensitive=False for case-insensitive name filtering.

skypilot_list_accelerator_countsB

List available accelerators and their available counts. Returns a mapping of accelerator names to available quantities. Filter by name, region, quantity, or specific clouds.

skypilot_kubernetes_node_infoB

Get resource information for all nodes in a Kubernetes cluster. Shows CPU, memory, GPU, and other resource details per node.

skypilot_realtime_gpu_availabilityA

Get real-time GPU availability in a Kubernetes cluster. Shows which GPUs are currently available and their quantities. Filter by GPU name or minimum quantity. Set is_ssh to filter by SSH-based (True) or Kubernetes-based (False) infrastructure, or leave unset for all.

skypilot_kubernetes_label_gpusB

Label GPU nodes in a Kubernetes cluster for use with SkyPilot. Currently supports NVIDIA GPUs only. Set cleanup_only=True to remove existing labeling resources. Returns a request_id.

skypilot_status_kubernetesA

[Experimental] Get all SkyPilot clusters and jobs in a Kubernetes cluster. Includes managed jobs and services. Returns cluster info, managed job records, and context information.

skypilot_local_upA

Launch a local Kubernetes cluster for SkyPilot. Set gpus=True to enable GPU passthrough. Only works when the API server is running locally. Returns a request_id.

skypilot_local_downA

Tear down the local Kubernetes cluster started by local_up. Only works when the API server is running locally. Returns a request_id.

skypilot_ssh_upB

Deploy SSH node pools defined in ~/.sky/ssh_node_pools.yaml. Optionally specify a specific infra name or config file path. Returns a request_id.

skypilot_ssh_downB

Tear down Kubernetes cluster on SSH targets. Optionally specify a specific infra name. Returns a request_id.

skypilot_realtime_slurm_gpu_availabilityA

Get real-time GPU availability in a Slurm cluster. Shows which GPUs are currently available and their quantities. Filter by GPU name, minimum quantity, or Slurm cluster name.

skypilot_slurm_node_infoC

Get resource information for all nodes in a Slurm cluster. Shows node name, partition, state, GPU type, total/free GPUs, vCPU count, and memory.

skypilot_job_queueB

List jobs on a cluster's job queue. Returns job IDs, names, statuses, submission times, and resource usage.

skypilot_job_statusA

Get the status of specific jobs on a cluster. If no job_ids provided, returns the status of the latest job.

skypilot_job_cancelA

Cancel jobs on a cluster. Provide either job_ids to cancel specific jobs, or set cancel_all=True to cancel all jobs (mutually exclusive). Set all_users=True to cancel jobs from all users. Returns a request_id.

skypilot_job_logsA

Get a snapshot of logs from a job running on a cluster. Returns the last N lines (default 100, set to 0 for all). Does not stream/follow logs. If no job_id is provided, returns logs for the latest job.

skypilot_download_logsB

Download job logs from a cluster to a local directory. Returns a mapping of job IDs to local log file paths.

skypilot_managed_job_download_logsB

Download logs from a managed job to a local directory. Specify by name or job_id. Set controller=True to download controller logs instead of job logs. Optionally specify local_dir to control where logs are saved.

skypilot_serve_download_logsA

Download service logs to a local directory. Optionally filter by targets ('controller', 'load_balancer', 'replica') and replica_ids.

skypilot_pool_download_logsB

Download worker pool logs to a local directory. Optionally filter by targets ('controller', 'load_balancer', 'replica') and worker_ids.

skypilot_tail_provision_logsA

Get provisioning logs (provision.log) for a cluster. Shows the log output from when the cluster was being provisioned. Optionally specify a worker node index for multi-node clusters. Returns the last N lines (default 100, set to 0 for all).

skypilot_tail_autostop_logsB

Get autostop hook logs (autostop_hook.log) for a cluster. Shows the log output from the autostop hook. Returns the last N lines (default 100, set to 0 for all).

skypilot_managed_job_launchA

Launch a managed job with automatic recovery from spot preemptions and hardware failures. Accepts a SkyPilot task YAML string (single task or multi-document YAML for job groups with parallel execution). Set pool to target a specific worker pool. Set num_jobs to launch multiple copies of the same job. Returns a request_id.

skypilot_managed_job_queueB

List managed jobs and their statuses (v2 API). Returns job IDs, names, statuses, submission times, recovery information, total count, and status counts. Set refresh=True to fetch the latest state from the cluster (slower but up-to-date). Supports sorting and pagination via limit, sort_by, and sort_order parameters.

skypilot_managed_job_queue_v1A

List managed jobs and their statuses (v1 API). Returns a flat list of job records without pagination or sorting support. Use this for compatibility with older API servers or when the simpler return format is preferred. Set refresh=True to fetch the latest state from the cluster.

skypilot_managed_job_cancelA

Cancel managed jobs. Provide exactly one of: name, job_ids, cancel_all=True, or pool (mutually exclusive). Set all_users=True to cancel jobs from all users. Set graceful=True to wait for in-progress data uploads before cancelling. Returns a request_id.

skypilot_managed_job_logsA

Get a snapshot of logs from a managed job. Returns the last N lines (default 100, set to 0 for all). Does not stream/follow. Specify by name or job_id. Set controller=True to view the jobs controller logs instead. Set task to view logs for a specific task in a JobGroup (task name or 0-based index).

skypilot_pool_applyA

Create or update a worker pool. A worker pool is a long-lived set of compute resources that can host multiple managed jobs. Accepts a SkyPilot task YAML string defining the pool's resources. Set mode to 'rolling' (default) or 'blue_green' for the update strategy. Returns a request_id.

skypilot_pool_statusA

Get the status of worker pools. Returns pool names, worker counts, statuses, and resource information. If no pool_names provided, returns all pools.

skypilot_pool_downA

Delete worker pool(s). Specify pool_names or set delete_all=True. Set purge=True to force deletion even with errors. Returns a request_id.

skypilot_pool_logsA

Get a snapshot of logs from a worker pool. Target can be 'controller', 'load_balancer', or 'replica'. Optionally specify a worker_id. Returns the last N lines (default 100, set to 0 for all). Does not stream/follow.

skypilot_serve_upB

Launch a new service. Accepts a SkyPilot task YAML string with a service section defining replicas, readiness probe, etc. Returns a request_id.

skypilot_serve_updateB

Update an existing service with a new task configuration. Set mode to 'rolling' (default) or 'blue_green'. Returns a request_id.

skypilot_serve_downA

Tear down service(s). Specify service_names or set delete_all=True. Set purge=True to force deletion even with errors. Returns a request_id.

skypilot_serve_statusA

Get the status of services. Returns service names, statuses, replica counts, endpoint URLs, and more. If no service_names provided, returns all services.

skypilot_serve_logsA

Get a snapshot of logs from a service component. Target can be 'controller', 'load_balancer', or 'replica'. When target is 'replica', optionally specify replica_id. Returns the last N lines (default 100, set to 0 for all). Does not stream/follow.

skypilot_serve_terminate_replicaA

Terminate a specific replica of a service. Set purge=True to force termination even with errors. Returns a request_id.

skypilot_storage_lsA

List all SkyPilot-managed storage objects (cloud buckets).

skypilot_storage_deleteB

Delete a SkyPilot-managed storage object (cloud bucket). Returns a request_id.

skypilot_volume_applyA

Create or register a volume. Accepts a volume configuration as a JSON/dict with fields: name, type ('k8s-pvc' or 'runpod-network-volume'), size (e.g. '100GB'), and optional fields like infra, labels, use_existing, config. Returns a request_id.

skypilot_volume_lsA

List all volumes. Set refresh=True to refresh volume state from cloud APIs before returning (slower but most up-to-date).

skypilot_volume_deleteA

Delete one or more volumes by name. Set purge=True to force deletion from the database even if the cloud deletion fails. Returns a request_id.

skypilot_volume_validateB

Validate a volume configuration without creating it. Checks that the volume specification is valid on the server side. Raises an error if validation fails, returns success otherwise.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 70 tools

Disambiguation3/5

Most tools are well-scoped by action+resource, but several near-duplicates exist: skypilot_managed_job_logs vs skypilot_managed_job_download_logs, skypilot_serve_logs vs skypilot_serve_download_logs, skypilot_pool_logs vs skypilot_pool_download_logs, and the v1/v2 managed_job_queue variants. An agent must read descriptions closely to pick the right 'get logs' vs 'download logs' tool.

Naming Consistency4/5

Strong, predictable prefix_service_action pattern throughout (e.g. skypilot_cluster_launch, skypilot_serve_up, skypilot_volume_delete). Minor inconsistencies like skypilot_workspaces (no action verb), skypilot_dashboard, and skypilot_optimize/validate/check lacking a clear resource prefix slightly break the pattern.

Tool Count2/5

70 tools is far too many for coherent agent selection. While SkyPilot's surface is genuinely broad (clusters, jobs, managed jobs, services, pools, volumes, storage, kubernetes, ssh, slurm), this exceeds a workable tool count and forces many overlapping variants.

Completeness4/5

Coverage is extensive across the SkyPilot domain: full cluster lifecycle, managed jobs, services, pools, volumes, storage, and infra checks. Minor gaps like cluster log streaming (only job/autostop logs) and no explicit cluster exec-cancel, but the surface is largely complete.

Maintenance

ActivityInactive
ResponsivenessNo issues