Skip to main content
Glama

skypilot-mcp

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

Related MCP server: FastMCP

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
F
license - not found
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alex000kim/skypilot-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server