Deploy from Claude Code in 60 seconds
Three commands and one prompt: go from a Claude Code session to a live, CDN-hosted landing page on your own domain — without leaving the terminal.
The 60-second flow, end to end
You're in Claude Code. You've got a landing page in your head — or already sketched in markdown, or already written as a chunk of HTML in your editor. You want it live, on the web, on a CDN, with a real URL, before you context-switch.
Here's the whole path:
- 0:00 — 0:15 · Grab an MCP token from Settings → MCP in ctrlsignal.
- 0:15 — 0:25 · Run one
claude mcp addcommand in your terminal. - 0:25 — 1:00 · Tell Claude Code "Deploy this as a ctrlsignal site" and watch the live URL come back.
That's it. No build pipeline, no vercel link, no certificate
plumbing, no "where do I put the env vars?" — Claude Code talks directly to
your ctrlsignal workspace through MCP and ships the page.
0:00 — Get your MCP token
Sign up if you haven't (no credit card to start). Then go to Settings → MCP, click Generate MCP token, and copy the value. It's a bearer credential — anyone who holds it can act as you in this workspace, so treat it like a password. If it leaks, hit Rotate and the old token stops working instantly.
0:15 — Wire Claude Code to ctrlsignal
From any directory, in your terminal:
claude mcp add --transport http ctrlsignal https://ctrlsignal.com/mcp \
--header "Authorization: Bearer <your-mcp-token>"
Claude Code persists the registration in ~/.claude/mcp.json,
so this is a one-time setup per machine. Restart any open Claude Code
sessions so they pick up the new server.
Sanity check: ask Claude Code "What MCP tools do you have from
ctrlsignal?" — it should list list_apps,
create_page, publish_app, and a dozen more.
0:25 — Deploy the page
Now the interesting part. The exact prompt depends on where your page lives:
I have an HTML file on disk
Read landing.html. Create a new ctrlsignal app called "warm-pottery",
add the contents as the home page (path "/"), and publish it.
Give me the live URL when it's up.
I want Claude Code to build the page from scratch
Build me a one-page landing for a pottery class in Brooklyn —
warm palette, a hero, an about section, three class slots, and a
booking form. Create a ctrlsignal app for it, push the page, and publish.
I already have a draft in ctrlsignal and just want to ship it
Publish my "warm-pottery" app on ctrlsignal and tell me the live URL.
In every case, Claude Code calls the ctrlsignal MCP server directly. It
creates the app, writes the page into a draft version, and triggers
publish_app — which ships the page to the CDN and invalidates the cache. You
get back a URL on your-slug.ctrlsignal.com that's live within
seconds.
0:55 — Bring your own domain (optional)
Once the default subdomain works, swap to a real domain whenever you're ready. From Claude Code:
For my warm-pottery ctrlsignal app, set the custom domain to
warmpottery.com. Show me the CNAME I need to add, then verify it
once I've updated DNS.
ctrlsignal handles the Let's Encrypt cert and the CDN swap — you add one CNAME record at your registrar and that's it.
What just happened
Under the hood, every command above hit the same JSON-RPC endpoint at
POST /mcp, scoped to your bearer token. The page was
transformed (form actions rewritten, telemetry injected, accessibility
enhanced), uploaded to the CDN, and a cache invalidation went out. The
portal logged each call. You can audit everything from Settings →
MCP if you ever want to see what your assistant did on your behalf.
What else you can do without leaving Claude Code
- Edit a published page — "Update the hero copy on warm-pottery to mention the new Tuesday slot, then republish."
- Triage leads — "List leads from warm-pottery this week and summarize them. Add a follow-up note to the most recent one."
- Roll back — "What versions exist for warm-pottery? Roll back to the previous one."
- Debug — "Read the last hour of log events for warm-pottery — anything failing?"
The full tool list is in Settings → MCP. Adding new capabilities is a one-file change in the codebase — if there's a workflow you want exposed, tell us.
When it doesn't work in 60 seconds
"Unauthorized" from the MCP server — the token was rotated
or revoked. Generate a new one and update your client config:
claude mcp remove ctrlsignal, then re-run the mcp add
command with the new token.
Claude Code says it has no ctrlsignal tools — the session
started before mcp add ran. Quit Claude Code fully and reopen.
Related
- How to install the ctrlsignal MCP (Claude, Cursor, Gemini) — the long version, for clients other than Claude Code.
- How to deploy a landing page — the portal-UI flow, if you'd rather click than chat.
- How to create a website with AI — the from-scratch story, end to end.
Ready to try it? Start building with ctrlsignal →