For AI assistants · MCP connector docs

Connect AI assistants to RunCabin

RunCabin is the easiest way to connect and manage your website with AI. RunCabin lets an AI assistant deploy real websites for you - an instant free HTTPS subdomain in one tool call, and a real custom domain when you're ready. Sign-in happens in your browser, so chat apps need no key to paste, and a domain you buy through RunCabin gets registration, DNS and TLS set up for you; a domain you already own needs two records at your provider.

Green data center100% hydropower

New to this? The plain-language walkthrough shows it in four steps. Overview, limits and prices: website hosting for AI agents.

server     https://runcabin.com/mcp

transport  Streamable HTTP

auth       OAuth 2.1 in the browser, or an API key

registry   com.runcabin/cabin

paid steps human-approved checkout, always

Setup · Claude

Add RunCabin to Claude

  1. In Claude, open Customize → Connectors (claude.ai/customize/connectors) and choose Add custom connector.

  2. Enter the server URL: https://runcabin.com/mcp

  3. Claude opens RunCabin's sign-in page - sign in with Google or email, then click Authorize. New here? Signing in creates your free RunCabin account on the spot.

  4. Done. Try: "Make me a one-page website and put it online." - you never need to name RunCabin or a tool; just say what you want live.

Works on every Claude plan
Free allows one custom connector; on Team or Enterprise an org Owner adds it for the workspace.
Desktop and Claude Code, included
Once added, RunCabin is available in Claude Desktop and Claude Code automatically.
Claude's own guide
Getting started with custom connectors

Looking for RunCabin in Claude's built-in connector directory? Our listing is coming soon - until then, adding the server URL above does exactly the same thing and works today.


Setup · ChatGPT

Add RunCabin to ChatGPT

  1. In ChatGPT on the web, open Settings and find where apps or connectors are added (it has been called Apps, Apps & Connectors and Plugins). If ChatGPT asks for it, turn on Developer mode under Advanced settings first.

  2. Choose Create (or Add custom MCP server), name it RunCabin, and enter the server URL: https://runcabin.com/mcp

  3. For authentication choose OAuth, then create it. ChatGPT opens RunCabin's sign-in page: sign in with Google or email and click Authorize. New here? Signing in creates your free RunCabin account.

  4. Done. In a new chat, turn RunCabin on from the tools menu if ChatGPT doesn't pick it up on its own, then try: "Make me a one-page website and put it online."

No key to paste
ChatGPT signs in through your browser, like Claude. You only need an API key for tools that ask for one.
Plans
Custom connectors are not on every ChatGPT plan, and a workspace admin may have to allow them. If you don't see the option, that's why.
Money stays with you
Anything paid is a checkout link you open, review and pay yourself.

Setup · Muse

Add RunCabin to Muse, Meta's AI agent

  1. In a chat with Muse, ask it to create a custom connector for RunCabin, and give it the server URL: https://runcabin.com/mcp. For example: "Create a custom connector for RunCabin at https://runcabin.com/mcp."

  2. When the sign-in step comes up, sign in to RunCabin on runcabin.com with Google or email, then click Authorize. New here? Signing in creates your free RunCabin account.

  3. If Muse asks you for an API key instead, open runcabin.com/agentkeys: sign in (or create your free account), click Mint key, and paste the key into Muse.

  4. In Muse's Settings, choose whether Muse asks for your approval before each action it takes with RunCabin.

  5. Done. Try: "Make me a one-page website for my business and put it online."

Who can use it
Muse is available in the US and Canada to adults (18+).
A custom connector
Custom connectors are not reviewed by Meta. Adding the server URL above is how Muse connects to RunCabin.
Money stays with you
RunCabin never charges through Muse: anything paid is a checkout link you open, review and pay yourself.

In a browser, Muse would have to sign up for hosting, upload files and edit DNS step by step. Through RunCabin, publishing is one call that returns a live address.


Setup · Coding tools

Add RunCabin to coding tools

RunCabin is published on the official MCP Registry as com.runcabin/cabin. Every tool below signs you in to RunCabin in your browser on first connect - there is no API key to paste.

Claude Code

claude mcp add --transport http runcabin https://runcabin.com/mcp

Then run /mcp, pick runcabin, and sign in via the browser window that opens. Add --scope user to the command to enable it across all your projects.

Cursor

Add to Cursor

Or add it by hand under mcpServers in ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

"runcabin": { "url": "https://runcabin.com/mcp" }

VS Code

Install in VS Code

Or run MCP: Add Server from the command palette and add this under servers in .vscode/mcp.json:

"runcabin": { "type": "http", "url": "https://runcabin.com/mcp" }

Windsurf (now Devin Desktop)

Add this under mcpServers in ~/.codeium/windsurf/mcp_config.json:

"runcabin": { "serverUrl": "https://runcabin.com/mcp" }

The sign-in opens automatically after you add the server.


Setup · Everything else

Any other MCP client

RunCabin speaks standard MCP over Streamable HTTP with OAuth 2.1 (authorization code + PKCE, dynamic client registration). Any spec-conforming client can connect to https://runcabin.com/mcp - discovery starts from the standard /.well-known/oauth-protected-resource metadata.

Clients that prefer static credentials can send a RunCabin API key as a Bearer token instead: sign in and mint one at runcabin.com/agentkeys, or let the tool get its own through the device sign-in below.


Setup · Terminal

Sign in from a terminal or coding agent

A script, CLI or coding agent that calls the REST API at https://runcabin.com/v1 can get its own API key without anyone typing a password into it or pasting a key. The tool asks for a sign-in code, you approve it in your browser, and the tool picks up the key.

1. Start. The tool asks for a code:

curl -s -X POST https://runcabin.com/v1/login/start \ -H "Content-Type: application/json" \ -d '{"clientName": "My deploy script"}'

The answer carries a deviceCode (the tool keeps it to itself), a userCode such as BCDF-GHJK and a verificationUrlComplete link. The tool shows you the link and the code. Open the link, sign in, check that the code matches, and press Approve.

2. Poll. Every 5 seconds the tool asks for its key:

curl -s -X POST https://runcabin.com/v1/login/token \ -H "Content-Type: application/json" \ -d '{"deviceCode": "cabin_dc_..."}'

Until you approve, the answer is authorization_pending (or slow_down if the tool polls too fast). Once you approve, it returns the key, one time only: {"ok": true, "key": "cabin_live_...", ...}. The tool sends it as Authorization: Bearer cabin_live_.... A denied request answers access_denied, and a request expires after 10 minutes (expired_token).

You can see and revoke every key at runcabin.com/keys, and we email you each time a tool gets one. RunCabin never emails or texts you a code to approve: only approve a request you started yourself.


Reference · The toolbox

Tool reference

Everything the server exposes, with each tool's class. Read tools only look. Write tools add or change something without changing what your site shows, sending anything for you, or starting a purchase. Sensitive tools change what the public sees, take something down, change your domain's mail, send something for you, or start a purchase. These are the read / write / sensitive classes Muse, Meta's AI agent, asks connectors to document; other apps read the read-only and destructive hints the server sends with every tool.

ToolWhat it doesSide effectsClass
cabin_build_guideRunCabin's build guide for assistants: hosting limits, forms, page basics, and the design and honest-content rules RunCabin's own builder follows. Every publish reply lists anything the files miss, so the assistant fixes it and publishes again.None.Read
cabin_get_pricingCurrent prices (free subdomain; $4.99/mo or $47.99/yr on your own domain), the purchase terms, and where sites are hosted.None.Read
cabin_publishPuts a page or site online in one call: creates the site (or updates an existing one) and deploys the files, returning a live free HTTPS URL immediately.Puts the files on the public web. Every HTML page gets a small "Built with RunCabin" badge and RunCabin's visit tracker, which logs each page view (visitor IP, approximate location, user agent, referrer) for your visit counts.Sensitive
cabin_create_siteReserves a site and its free public HTTPS URL (yourname.sites.runcabin.com) without deploying content yet.Reserves the subdomain. Nothing is public until a deploy.Write
cabin_deployDeploys HTML (single page or a multi-file map) to a site. Live the moment it returns; re-deploying updates the same site.Replaces what the live site shows. Same badge and visit tracker as cabin_publish.Sensitive
cabin_deploy_preview / cabin_promoteStages a new version at a preview URL without changing the live site, then promotes it when it looks right.The preview gets the same badge and visit tracker, and opens for anyone who has its link (it is kept out of search engines). Promote replaces what the live site shows.Sensitive
cabin_rollbackRe-serves an earlier deployment at the same URL, to undo a bad deploy.Changes what the live site shows. Nothing is deleted: the version it replaces stays reachable at its preview link for anyone who has that link. Uploaded assets are not versioned, so a rollback doesn't bring back an older asset.Sensitive
cabin_deploy_status / cabin_site_healthStatus and live URL of a deployment; a quick "is my site up and serving" check with form wiring and visit counts.None.Read
cabin_list_sites / cabin_list_deploymentsLists the sites you own with their URLs, and each site's deployment history.None.Read
cabin_get_site / cabin_get_fileReads back a site's current live content (manifest + files) so the assistant can edit instead of regenerate.None.Read
cabin_upload_assetHosts an image, font, or data file on the site by fetching it from a public HTTPS URL. Assets persist across re-deploys.The file is public on the live site as soon as it is uploaded. Uploading to the same path replaces it on the live site at once, and a rollback doesn't undo that.Sensitive
cabin_create_formAdds a working contact / lead-capture form endpoint to a site: submissions are stored and emailed to you. RunCabin hosts the endpoint, so the site needs no backend of its own.Each submission is stored with the visitor's IP address. With email notices on, the free text is screened for spam by Anthropic's Claude, and the notice is sent through Resend.Write
cabin_list_submissionsReads the messages and leads your site's forms have received (owner only).None. Returns what visitors typed, which can include names and contact details.Read
cabin_delete_sitePermanently deletes a site and its deployments. Irreversible.Also deletes the site's forms and every submission, and takes its custom domain off the site (a domain bought through RunCabin stays yours). Refused while the site's hosting is active: cancel hosting first.Sensitive
cabin_check_domainChecks whether a custom domain is available to register and what it costs. Free lookup, no charge.None. Asks the domain registry (RDAP) and RunCabin's registrar.Read
cabin_attach_domainBuys a custom domain through RunCabin or connects one you already own. A buy is an order: an orderId and a Stripe checkout for exactly that domain and hosting plan, which you approve and pay. Connect returns a hosting subscription link.Nothing is charged until you pay at checkout. A buy keeps one open checkout per site: the same order again returns it, a different one closes it first. Connect records the domain on the site right away, and with replace=true takes the site's old domain off it as soon as the link is made.Sensitive
cabin_domain_statusFollows a domain order by orderId (waiting for payment, paid, registering, setting up, live) or an attach by domainId; for connected domains it returns the exact DNS records to set once you're subscribed, including the required _cabin-verify TXT record that proves you own the domain.Asks Stripe about an order that is waiting for payment and records a payment or an expiry; marks a connected domain verified once its _cabin-verify record is seen.Read
cabin_setup_email_forwardingSets up a real address at a domain bought through RunCabin (e.g. hello@yourdomain.com) forwarding to your personal inbox. Mail DNS is handled automatically.Adds two MX records and adds ImprovMX to the domain's SPF record (or creates one). The domain, the alias and your forward-to address go to ImprovMX, the forwarding provider.Sensitive
cabin_add_txt_recordPublishes an ownership-verification TXT record (Google Search Console, Bing, Stripe, DMARC and similar) on a domain bought through RunCabin. Additive and TXT-only.Adds one TXT record to the domain's DNS. It never adds a second SPF record.Write
cabin_send_user_feedbackSends your feedback to the RunCabin team, in your own words, when you ask your assistant to. We get it by email right away and can answer you by email.Emails your message to the RunCabin team at once, with your account's email as the reply address.Sensitive
cabin_send_agent_feedbackLets your assistant tell us when one of these tools gave it trouble (an error, a confusing reply, a missing option) so we can fix it. Changes nothing on your sites.Stores a note for the RunCabin team (not emailed). Your assistant sends it only when you agree.Write

Errors and status

A tool that refuses or fails answers one JSON object, {"error": "<code>", "message": "..."}, and the result is marked isError: true. The message says what to do next. These codes mean "try again": try_again, lookup_failed (the domain lookup failed; wait a few seconds), registrar_unconfirmed, price_unconfirmed and checkout_busy (a domain order couldn't confirm the price or the earlier checkout; wait a minute), and cooldown / daily_limit, which carry retryAfterSeconds. An expired sign-in answers unauthorized with a sign-in challenge, so the app asks you to connect again. A status read that works keeps ok: true even when it reports a problem: cabin_deploy_status gives status (live = it built, failed = it did not) and isLive (whether it is the version the site serves), a domain order's stage moves through awaiting_payment, paid, registering, setting_up and live, or ends failed (the domain charge is refunded), expired or cancelled (nothing charged), and an attach's status moves through awaiting_subscription, pending, purchased, dns_set, cert_pending and live, or ends failed or detached.

Limits

Changelog. 2026-10-17: buying a domain is an order you can follow (orderId, a Stripe checkout for exactly that order, cabin_domain_status(orderId), one open checkout per site); tool descriptions state facts and every side effect; this reference lists each tool's class, side effects, errors and limits; cabin_check_domain answers a failed lookup as an error (lookup_failed); agent notes are sent only when you agree.

The assistant can never spend your money. Free subdomain hosting costs nothing. Anything paid - a custom domain (price shown up front) and hosting at $4.99/mo or $47.99/yr - happens only when you personally review the order and pay on RunCabin's own checkout page. Tools only ever hand you a link.

The rate card

What's free, what's paid

Free

  • Creating sitesfree
  • Deployingfree
  • Serving on your *.sites.runcabin.com subdomainfree

With HTTPS, indefinitely.

Paid

  • Hosting on a real custom domain$4.99/mo or $47.99/yr
  • The domain's registration priceshown up front

cabin_check_domain shows the price before you commit. TLS certificates for your domain are issued automatically. The domain is registered for you and it is yours - cancel later and we release it to you with the transfer code.

Field repairs

Troubleshooting

The connector shows as disconnected, or tools return "unauthorized"

Your access token expired or was revoked. In Claude, open Customize → Connectors (claude.ai/customize/connectors) and reconnect RunCabin (the sign-in takes a few seconds). API-key users: confirm the key is sent as Authorization: Bearer cabin_live_....

cabin_check_domain says it can't check a domain

Rapid repeat lookups of the same domain are rate-limited by the registrar. Wait a few seconds and try again.

cabin_domain_status says "awaiting subscription"

Connected (bring-your-own) domains only serve while hosting is subscribed. Open the subscription link the assistant gave you; after subscribing, the same tool returns the DNS records to set at your provider.

My custom domain is attached but not serving HTTPS yet

Certificates are issued automatically once your domain's DNS points at RunCabin - usually within a couple of minutes of DNS propagating. For a domain you connected (bought elsewhere), the _cabin-verify TXT record from cabin_domain_status is required too: it proves the domain is yours, and nothing serves until it's published. cabin_domain_status shows verified once it's seen and live when it's serving.

How do I cancel the $4.99/mo or $47.99/yr hosting subscription?

Self-service at runcabin.com/cancel - sign in with the same account you connected Claude with (Google or email + password) and click cancel. Hosting runs through the end of the period you already paid for, then your custom domain stops serving here - but if you bought it through RunCabin it is still yours: we release it to you and send the transfer code so you can take it to any registrar. Your free *.sites.runcabin.com subdomain keeps working either way.

Something else?

Email hello@runcabin.com - a human reads it.

RunCabin's MCP server: https://runcabin.com/mcp (Streamable HTTP, OAuth 2.1) · runcabin.com