Claude Code
The Saturn Cloud plugin for Claude Code lets Claude create, inspect, and manage your Saturn Cloud workspaces, jobs, and deployments directly from a Claude Code session. It bundles two pieces:
- An MCP server that exposes Saturn Cloud’s API as tools Claude can call (list resources, apply recipes, start/stop, schedule jobs, fetch logs, list instance types, manage SSH keys).
- A skill that teaches Claude the Saturn Cloud recipe schema and conventions so it can author and edit recipes correctly without trial and error.
The plugin is open source and hosted on GitHub at saturncloud/claude-plugin.
Prerequisites
- Claude Code installed and working.
- A Saturn Cloud account and an API token (Settings → API Tokens).
uvinstalled and on yourPATH. The MCP server is launched viauvx, which provisions and caches its Python environment automatically.
Install
In a Claude Code session, add the Saturn Cloud marketplace from GitHub and install the plugin:
/plugin marketplace add saturncloud/claude-plugin
/plugin install saturn-cloud@saturn-local
Claude Code clones the plugin into its plugin directory. The MCP server entry point is registered automatically through the plugin’s bundled .mcp.json, which runs the server with uvx. The first time the server starts, uvx resolves and caches its dependencies. Subsequent starts are fast.
Restart Claude Code after install so it picks up the new MCP server registration.
Configure
The MCP server reads two environment variables:
| Variable | Description |
|---|---|
SATURN_BASE_URL | Your Saturn Cloud installation URL (for example https://app.community.saturnenterprise.io, or your Saturn Enterprise URL) |
SATURN_TOKEN | API token from Settings → API Tokens in the Saturn Cloud UI |
Set both in your shell before launching Claude Code:
export SATURN_BASE_URL="https://app.community.saturnenterprise.io"
export SATURN_TOKEN="your-api-token"
claude
What Claude can do
Once the plugin is installed, Claude has access to the following Saturn Cloud tools:
Resource management
| Tool | What it does |
|---|---|
saturn_list_resources | List your workspaces, jobs, and deployments |
saturn_get_resource | Fetch a resource’s full recipe |
saturn_apply_recipe | Create or update a resource from a recipe |
saturn_delete_resource | Delete a resource |
saturn_start_resource / saturn_stop_resource | Control runtime state |
saturn_schedule_job | Set a cron schedule on a job |
saturn_get_logs | Fetch logs for a resource |
saturn_list_instance_types | List available compute sizes for your installation |
SSH access
| Tool | What it does |
|---|---|
saturn_ssh_setup | One-step setup: generate a Saturn-dedicated keypair locally and register the public key with your account |
saturn_ssh_key_list | List SSH keys registered with Saturn Cloud |
saturn_ssh_key_register | Register an existing public key with Saturn Cloud |
saturn_ssh_key_delete | Remove a registered key by ID |
saturn_get_ssh_url | Get the SSH URL of a running workspace or deployment (requires start_ssh: true in the recipe) |
Combined with the bundled skill, this means you can ask Claude things like:
- “Create a Jupyter workspace with a GPU and the latest PyTorch image."
- “Schedule my
nightly-etljob to run every day at 2am UTC." - “Stop every workspace I’m not using right now."
- “Show me the last 100 log lines from my failing deployment."
- “Bump the instance type on my training job to an
xlargeGPU." - “Set up SSH to Saturn, then connect me to my
devworkspace."
Claude reads the recipe schema from the skill, so it authors valid recipes and explains trade-offs (instance sizes, disk space, image choices) without you needing to remember the field names.
Updating the plugin
Update the plugin from within Claude Code:
/plugin update saturn-cloud@saturn-local
Restart Claude Code afterwards. uvx picks up the new plugin code on the next launch; if dependencies changed it will refresh its cache automatically.
Troubleshooting
/plugin installfails with “marketplace not found”. Make sure you ran/plugin marketplace add saturncloud/claude-pluginfirst.- The MCP server fails to start. Confirm
uvis installed and on thePATHof the shell that launched Claude Code (uvx --versionshould succeed). The MCP server is invoked asuvx --from <plugin-dir> saturn-mcp. - Tools return authentication errors. Re-check
SATURN_BASE_URLandSATURN_TOKENare exported in the shell that launched Claude Code. The token must belong to the same Saturn installation asSATURN_BASE_URL. saturn_get_ssh_urlreturns “no ssh_url”. The target resource must be running and its recipe must setstart_ssh: true. Update the recipe withsaturn_apply_recipe, restart the resource, and try again.
Feedback and contributions
Bug reports, feature requests, and pull requests are welcome on the GitHub repository. For general Saturn Cloud questions, email support@saturncloud.io.