skypilot-mcp
Provides tools for managing Kubernetes infrastructure via SkyPilot, including querying node resources, GPU availability, labeling GPU nodes, and listing all SkyPilot resources in a Kubernetes cluster.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@skypilot-mcpshow me the status of all clusters"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-mcpFor 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 |
| List clusters and their statuses |
| Launch a cluster from a task YAML |
| Run a task on an existing cluster |
| Stop a cluster (preserves disk) |
| Restart a stopped cluster |
| Tear down a cluster |
| Set idle autostop timer |
| Get cluster endpoint URLs |
Jobs (on a cluster)
Tool | Description |
| List jobs on a cluster |
| Get status of specific jobs |
| Cancel jobs |
| Get job log snapshot (last N lines) |
Managed Jobs (auto-recovery, spot)
Tool | Description |
| Launch a managed job |
| List managed jobs (with sorting/pagination) |
| Cancel managed jobs |
| Get managed job log snapshot |
Worker Pools
Tool | Description |
| Create or update a worker pool |
| Get pool statuses |
| Delete worker pool(s) |
| Get pool log snapshot |
Services (Sky Serve)
Tool | Description |
| Launch a service |
| Update service config (rolling/blue-green) |
| Tear down service(s) |
| Get service statuses |
| Get service log snapshot |
| Terminate a specific replica |
Volumes
Tool | Description |
| Create or register a volume (PVC, RunPod) |
| List volumes |
| Delete volumes |
DAG Optimization & Validation
Tool | Description |
| Find best cloud/region/instance for a task |
| Validate a task config without launching |
Log Downloads
Tool | Description |
| Download cluster job logs locally |
| Download managed job logs |
| Download service logs |
| Download pool logs |
| Get cluster provisioning logs |
| Get cluster autostop hook logs |
Infrastructure
Tool | Description |
| Verify cloud credentials |
| List enabled clouds |
| List available GPUs/TPUs |
| List accelerator availability counts |
| Get K8s node resources |
| Real-time K8s GPU availability |
| Label K8s GPU nodes for SkyPilot |
| Get all SkyPilot resources in K8s |
| Manage local K8s cluster |
| Manage SSH node pools |
| Real-time Slurm GPU availability |
| Get Slurm node resources |
Storage & Cost
Tool | Description |
| List storage objects |
| Delete a storage object |
| Get cluster cost reports |
API Server
Tool | Description |
| API server health and version |
| List pending API requests |
| Cancel API requests |
| Wait for a request to complete |
| Start or stop the API server |
| Get API server logs |
| Authenticate with remote API server |
Config & Utilities
Tool | Description |
| Reload |
| List workspaces |
| Open SkyPilot 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_ENDPOINTenv 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 pytestRun the server locally:
# stdio (default)
uv run skypilot-mcp
# HTTP
uv run skypilot-mcp --transport http --port 8000This server cannot be installed
Maintenance
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
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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