Deploy a live site
from one command

Spinup is an MCP server. It registers your domain, sets up Cloudflare DNS, deploys your repo, and wires analytics — all from your AI coding editor.

# You type this in Cursor / Claude Desktop / Windsurf:
> deploy my project at github.com/user/repo to myapp.com

# Spinup does the rest:
✓ Domain "myapp.com" available — $9.73/year
✓ Domain registered via Porkbun
✓ Cloudflare zone created, nameservers set
✓ Repo deployed to Cloudflare Pages
✓ https://myapp.com is live

How it works

1

Add Spinup to your editor

One line in your MCP config. Works with Cursor, Claude Desktop, and Windsurf.

2

Paste your API keys once

Cloudflare + Porkbun keys are saved locally in ~/.spinup/config.json. Never sent anywhere.

3

Tell your AI what to deploy

The AI calls Spinup's tools automatically. Domain, DNS, deployment, analytics — done.

4

Confirm payments in your browser

When a domain costs money, Spinup opens a confirmation page. You click, it proceeds. No card details ever touch the agent.

Tools

check_domain

Check availability + price

register_domain

Buy domain, set nameservers

create_zone

Create Cloudflare DNS zone

deploy_repo

Deploy GitHub repo to Pages

setup_analytics

Inject Umami tracking

get_status

Check DNS + deployment

teardown

Remove everything (testing)

Quick start

# Add to your MCP config (e.g. ~/.cursor/mcp.json)
{
  "mcpServers": {
    "spinup": {
      "command": "uv",
      "args": ["run", "--with", "spinup-mcp", "spinup-mcp"]
    }
  }
}

# Create your config file
mkdir -p ~/.spinup
cat > ~/.spinup/config.json << 'EOF'
{
  "cloudflare": {
    "api_token": "your-cloudflare-api-token",
    "account_id": "your-cloudflare-account-id"
  },
  "porkbun": {
    "api_key": "your-porkbun-api-key",
    "secret_key": "your-porkbun-secret-key"
  }
}
EOF

Keys are stored locally and never leave your machine. Spinup calls the APIs directly from your computer.