Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Skypilot

FreeNot checked

MCP server for SkyPilot that lets LLMs manage cloud clusters, jobs, and storage through the Model Context Protocol.

GitHubEmbed

About

MCP server for SkyPilot that lets LLMs manage cloud clusters, jobs, and storage through the Model Context Protocol.

README

MCP server for SkyPilot. Lets LLMs manage cloud clusters, jobs, and storage through the Model Context Protocol.

Built with fastmcp v3.

Demo

https://github.com/user-attachments/assets/ce90b863-b186-4673-a247-63fb84483a35

Setup

Requires Python 3.10+.

# Claude Code
claude mcp add --transport stdio --scope project skypilot -- \
  uvx --from git+https://github.com/alex000kim/skypilot-mcp skypilot-mcp

# With a remote SkyPilot API server
claude mcp add --transport stdio --scope project \
  --env SKYPILOT_API_SERVER_ENDPOINT=http://your-server:46580 \
  skypilot -- \
  uvx --from git+https://github.com/alex000kim/skypilot-mcp skypilot-mcp

For Claude Desktop, add to your MCP config:

{
  "mcpServers": {
    "skypilot": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/alex000kim/skypilot-mcp", "skypilot-mcp"]
    }
  }
}

Using in your own repos

This repo includes a .mcp.json file. Copy it into any repo that contains SkyPilot task YAMLs, and coding agents (Claude Code, Cursor, Windsurf, etc.) working in that repo will automatically have access to all SkyPilot MCP tools — launching clusters, submitting jobs, checking status, and more — without any manual setup.

cp .mcp.json /path/to/your-skypilot-project/

Tools

Clusters

Tool Description
skypilot_cluster_status List clusters and their statuses
skypilot_cluster_launch Launch a cluster from a task YAML
skypilot_cluster_exec Run a task on an existing cluster
skypilot_cluster_stop Stop a cluster (preserves disk)
skypilot_cluster_start Restart a stopped cluster
skypilot_cluster_down Tear down a cluster
skypilot_cluster_autostop Set idle autostop timer
skypilot_cluster_endpoints Get cluster endpoint URLs

Jobs (on a cluster)

Tool Description
skypilot_job_queue List jobs on a cluster
skypilot_job_status Get status of specific jobs
skypilot_job_cancel Cancel jobs
skypilot_job_logs Get job log snapshot (last N lines)

Managed Jobs (auto-recovery, spot)

Tool Description
skypilot_managed_job_launch Launch a managed job
skypilot_managed_job_queue List managed jobs (with sorting/pagination)
skypilot_managed_job_cancel Cancel managed jobs
skypilot_managed_job_logs Get managed job log snapshot

Worker Pools

Tool Description
skypilot_pool_apply Create or update a worker pool
skypilot_pool_status Get pool statuses
skypilot_pool_down Delete worker pool(s)
skypilot_pool_logs Get pool log snapshot

Services (Sky Serve)

Tool Description
skypilot_serve_up Launch a service
skypilot_serve_update Update service config (rolling/blue-green)
skypilot_serve_down Tear down service(s)
skypilot_serve_status Get service statuses
skypilot_serve_logs Get service log snapshot
skypilot_serve_terminate_replica Terminate a specific replica

Volumes

Tool Description
skypilot_volume_apply Create or register a volume (PVC, RunPod)
skypilot_volume_ls List volumes
skypilot_volume_delete Delete volumes

DAG Optimization & Validation

Tool Description
skypilot_optimize Find best cloud/region/instance for a task
skypilot_validate Validate a task config without launching

Log Downloads

Tool Description
skypilot_download_logs Download cluster job logs locally
skypilot_managed_job_download_logs Download managed job logs
skypilot_serve_download_logs Download service logs
skypilot_pool_download_logs Download pool logs
skypilot_tail_provision_logs Get cluster provisioning logs
skypilot_tail_autostop_logs Get cluster autostop hook logs

Infrastructure

Tool Description
skypilot_check Verify cloud credentials
skypilot_enabled_clouds List enabled clouds
skypilot_list_accelerators List available GPUs/TPUs
skypilot_list_accelerator_counts List accelerator availability counts
skypilot_kubernetes_node_info Get K8s node resources
skypilot_realtime_gpu_availability Real-time K8s GPU availability
skypilot_kubernetes_label_gpus Label K8s GPU nodes for SkyPilot
skypilot_status_kubernetes Get all SkyPilot resources in K8s
skypilot_local_up / _down Manage local K8s cluster
skypilot_ssh_up / _down Manage SSH node pools
skypilot_realtime_slurm_gpu_availability Real-time Slurm GPU availability
skypilot_slurm_node_info Get Slurm node resources

Storage & Cost

Tool Description
skypilot_storage_ls List storage objects
skypilot_storage_delete Delete a storage object
skypilot_cost_report Get cluster cost reports

API Server

Tool Description
skypilot_api_info API server health and version
skypilot_api_status List pending API requests
skypilot_api_cancel Cancel API requests
skypilot_get_request Wait for a request to complete
skypilot_api_start / _stop Start or stop the API server
skypilot_api_server_logs Get API server logs
skypilot_api_login / _logout Authenticate with remote API server

Config & Utilities

Tool Description
skypilot_reload_config Reload ~/.sky/config.yaml
skypilot_workspaces List workspaces
skypilot_dashboard Open SkyPilot dashboard
skypilot_jobs_dashboard Open managed jobs dashboard

How it works

Long-running operations (launch, exec, stop, down, start, etc.) return a request_id immediately. Use skypilot_get_request with that ID to poll for the result. Read-only operations like status, queue, and cost_report block and return results directly.

The server uses SkyPilot's sync Python SDK. fastmcp runs sync tools in a threadpool, so nothing blocks the event loop.

API server configuration

The MCP server connects to whatever SkyPilot API server your environment is configured for:

  • Local (default): SkyPilot auto-starts a local API server on first use
  • Remote: Set SKYPILOT_API_SERVER_ENDPOINT env var or configure ~/.sky/config.yaml

Development

git clone https://github.com/alex000kim/skypilot-mcp
cd skypilot-mcp
uv sync --extra dev
uv run pre-commit install
uv run pytest

Run the server locally:

# stdio (default)
uv run skypilot-mcp

# HTTP
uv run skypilot-mcp --transport http --port 8000

from github.com/alex000kim/skypilot-mcp

Installing Skypilot

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/alex000kim/skypilot-mcp

FAQ

Is Skypilot MCP free?

Yes, Skypilot MCP is free — one-click install via Unyly at no cost.

Does Skypilot need an API key?

No, Skypilot runs without API keys or environment variables.

Is Skypilot hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Skypilot in Claude Desktop, Claude Code or Cursor?

Open Skypilot on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Skypilot with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs