RunCabin · For AI agents and the people who build them

Website hosting for AI agents

RunCabin: the easiest way to connect and manage your website with AI. RunCabin for AI agents hosts the websites your agent builds; it doesn't run the agent itself. Your agent connects through our MCP server or REST API, publishes the site, and can stage previews, roll back a bad publish, add forms that email you and put the site on your own domain. You approve every connection and every payment. Free to start on a RunCabin address, and cheap to keep: $4.99 a month or $47.99 a year on your own domain, plus the domain's price. Hosted in a green data center on 100% renewable hydropower.

Not a developer? The plain-language walkthrough.

  • Free to start on a RunCabin address, HTTPS, no card
  • Cheap to keep: $4.99 a month on your own domain
  • RunCabin's tools never move money
  • Every publish kept, so a bad one rolls back

Green data center100% hydropower

What agent hosting covers, and what it doesn't

There are two kinds of hosting for AI agents. One runs the agent's code. RunCabin for AI agents is the other kind: it hosts the website your agent builds, and gives the agent the tools to publish it, change it, roll it back and put it on your domain. Claude, ChatGPT, Claude Code, Cursor, VS Code and agents you write yourself all connect to the same MCP server for publishing websites, at https://runcabin.com/mcp, or call the REST API at https://runcabin.com/v1.

Agent hosting covers

  • Static site hosting: HTML, CSS, JavaScript, JSON, SVG and other text files, with images and fonts added from a public https link.
  • Single-page apps: an address with no file extension that matches no file falls back to your root index.html.
  • Forms that store each message and email it to you.
  • Your own domain, with HTTPS set up automatically.

Not on this plan

  • The agent itself, or any code that runs on a server.
  • PHP, a build step or a database.
  • A store with a cart and checkout; an e-commerce platform fits that better.

Need a database or server code? That is a different product, RunCabin's AI website builder. Why RunCabin sets the products side by side.

What your agent can do

Grouped by job. The tool names are for the agent; you just ask in plain words: “Put this online.” “Add a contact form that emails me.” “Undo yesterday's change.” “Put it on my domain.”

More tools: cabin_build_guide hands the agent RunCabin's current build rules (see the steps below), cabin_get_pricing returns prices and hosting facts as data, and cabin_delete_site permanently removes a site that has no active hosting. Two send feedback to the RunCabin team, kept apart: cabin_send_user_feedback carries your own words when you ask, and cabin_send_agent_feedback is the agent's own note when a tool gives it trouble. Full list: tool reference.

Being tested: moving a site you already have. cabin_port_analyze is a free, read-only check of an existing website (Wix, Squarespace, GoDaddy, WordPress and more): what it's built on, who runs its domain and DNS, how its email is set up, and what moves, what gets rebuilt and what can't move. cabin_dns_access lists the exact DNS edits to point a domain you've attached, at whichever company runs its DNS, without touching your email. They appear in your agent's tool list once they're switched on. They read only public pages as RunCabinPort and never ask for a password.

A working example: our own site, technicalrhymer.org, a rhyming dictionary, was built with Claude Code and published entirely through RunCabin's agent hosting, including its assets and custom domain.

How a publish works, step by step

  1. Sign in once.

    Claude, ChatGPT and coding tools open RunCabin's sign-in page in your browser. You sign in with Google or email and approve the app; your first sign-in creates your free account. Scripts use an API key from runcabin.com/keys, or the device login below. The first time you create or approve a key, /keys asks for your name and address; signing in from a chat app doesn't.

  2. The agent reads the build guide.

    cabin_build_guide (or GET /v1/build-guide) returns RunCabin's current hosting limits and build rules, with a specVersion that changes exactly when the guide does. Among the rules: put on the page only facts you gave, and never invent reviews or ratings.

  3. It publishes, and the site is live when the call returns.

    cabin_publish (or POST /v1/sites/{id}/deployments) writes the files and replies with the live https address. A free RunCabin address has HTTPS from the moment it goes live. Every publish is a new version, and earlier versions are kept.

  4. It fixes what the checks found.

    The reply lists anything to fix against the guide: a missing page title or description, an image without alt text, a form that posts nowhere, placeholder text left in, words on our banned list. The agent fixes them and publishes again with the same siteId. A file that contains a secret key, such as a Stripe or OpenAI key or a private key, is refused before anything is written, and the reply names the file, never the key.

  5. You choose a domain, and you pay for it yourself.

    To buy one, the agent checks the name and price, then gives you a link to RunCabin's order page, where you review the order, sign in and pay; registration, DNS and HTTPS are then set up for you. To connect a domain you already own, you start hosting through the link the agent gives you, then add an A record and a _cabin-verify TXT record at your provider; nothing serves on it until that TXT record proves the domain is yours. Once the domain is live, the free address redirects to it.

Connect Claude, ChatGPT, Muse, Claude Code, Cursor or VS Code

Claude, ChatGPT and the coding tools sign you in through RunCabin's page in your browser the first time. Here is the short version; the setup page has every step. Muse, Meta's AI agent, can add the same server as a custom connector.

AppWhat to doFull steps
Claude (web and desktop)

In Claude, open Customize → Connectors, choose Add custom connector, enter https://runcabin.com/mcp, then sign in with Google or email and click Authorize.

Claude setup
ChatGPT

In ChatGPT on the web, open Plugins, select the plus button, then Add custom MCP server. Enter https://runcabin.com/mcp as the server URL, choose OAuth, select Create as a plugin and sign in.

Any MCP client
Muse, Meta's AI agent

In a chat with Muse, ask it to create a custom connector for RunCabin with the server address https://runcabin.com/mcp, then sign in on RunCabin's page and approve it. Meta doesn't review custom connectors.

Muse setup
Claude Code
claude mcp add --transport http runcabin https://runcabin.com/mcp

Then run /mcp, pick runcabin and sign in. Add --scope user to use it in every project.

Claude Code setup
Cursor

Under mcpServers in ~/.cursor/mcp.json:

"runcabin": { "url": "https://runcabin.com/mcp" }
Cursor setup, with the one-click button
VS Code

Under servers in .vscode/mcp.json:

"runcabin": { "type": "http", "url": "https://runcabin.com/mcp" }
VS Code setup
Windsurf

Under mcpServers in ~/.codeium/windsurf/mcp_config.json:

"runcabin": { "serverUrl": "https://runcabin.com/mcp" }
Windsurf setup
Any MCP client

OAuth 2.1 for public clients: authorization code with PKCE S256, dynamic client registration, redirect URIs on https or loopback. Access tokens last an hour; refresh tokens last 30 days and rotate on use. Discovery starts at /.well-known/oauth-protected-resource. Or send a RunCabin API key as Authorization: Bearer cabin_live_...

Other clients

Adding the server address works today in Claude, ChatGPT and the coding tools above. For Muse, the route above is the one Meta's help describes.

Publish from a script: the REST API and device login

Scripts, CI jobs and coding agents can skip MCP and call the REST hosting API at https://runcabin.com/v1 with an API key. Every call reaches only the key owner's own sites.

Get a key without pasting one.

The tool asks for a sign-in code, you approve it in your browser at runcabin.com/keys, and the tool picks up its own key. A request expires after 10 minutes and works once, and we email you each time a tool gets a key this way. The first approval asks for your name and address if your account doesn't have them yet.

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

While it waits, the poll answers HTTP 400 with error set to authorization_pending (poll again in 5 seconds), slow_down (wait longer), access_denied (the request was turned down) or expired_token (start again). On approval it returns key, prefix, email and scopes once; store the key then, because it can't be shown again. If /v1/login/start answers 429 too_many_pending, wait for the time in Retry-After. Full details: sign in from a terminal.

Create a site and publish it.

curl -s -X POST https://runcabin.com/v1/sites \ -H "Authorization: Bearer $RUNCABIN_KEY" \ -H "Content-Type: application/json" \ -d '{"name": "My test site"}' # 201 Created: siteId, subdomain, url, status (a free address is made up for you) curl -s -X POST https://runcabin.com/v1/sites/SITE_ID/deployments \ -H "Authorization: Bearer $RUNCABIN_KEY" \ -H "Content-Type: application/json" \ -d '{"files": {"index.html": "<!doctype html>...", "style.css": "body { margin: 0; }"}}' # returns once the site is live: deploymentId, status, url, specVersion, checks

Send html for a one-page site, or files with index.html at the root. The reply comes back when the site is live, with the url, the deploymentId, the guide's specVersion and a checks list (code, file, message) to fix before you publish again. A publish carries text files only (SVG counts as text). There is no REST route for images or fonts yet: add them with the MCP tool cabin_upload_asset, from a public https link.

Read the build guide first.

curl -s https://runcabin.com/v1/build-guide \ -H "Authorization: Bearer $RUNCABIN_KEY"

The same guide the MCP tool returns, as markdown with its specVersion.

Every route, and what to send.

RouteSendGet back
POST /v1/login/startclientName (optional)deviceCode, userCode, verificationUrlComplete, expiresIn, interval
POST /v1/login/tokendeviceCodekey, prefix, email, scopes (once)
POST /v1/sitesname, subdomain (both optional)201 with siteId, subdomain, url, status
GET /v1/sites and GET /v1/sites/{id}-your sites; one site's details
POST /v1/sites/{id}/deploymentshtml, or files as { "path": "text" } including index.htmldeploymentId, status, url, specVersion, checks
GET /v1/deployments/{id}-status, isLive, previewUrl
GET /v1/build-guide-specVersion, guide (markdown)
GET /v1/pricing-prices and hosting facts
GET /v1/domains/check?q=a domain namedomain, available, priceCents, price
POST /v1/sites/{id}/domainsdomain, action (buy or connect), replace and billing (month or year) optionalbuy: url to the order page; connect: subscriptionUrl, or dnsRecords when hosting is already active; with a link, terms (give it to the owner before they pay) and message
GET /v1/domains/{id}-status, verified, dnsRecords
POST /v1/sites/{id}/subscriptionbilling (month or year, optional)url, terms (give it to the owner before they pay), message; 409 already_subscribed
POST /v1/sites/{id}/formsname, notifyOwner (both optional)formId, action, snippet
GET /v1/sites/{id}/forms-the site's forms
GET /v1/sites/{id}/submissions?form=&limit=-submissions, newest first
POST /v1/domains/email-forwardingdomain, forwardTo, alias (optional, default hello)address, forwardTo
POST /v1/domains/txtdomain, value, host (optional)the record added
POST /v1/port/analyze (being tested)url; depth optional (quick)platform, domain (registrar, DNS host), mail, page and feature counts, movesCleanly, needsRebuild, cannotMove, say; 429 with Retry-After past 10 an hour
GET /v1/domains/{domain}/access (being tested)a domain on one of your siteswhere its DNS is edited, records to set, delete and keep, blockers, steps, say
POST /v1/feedbacksource (agent or user), message; kind, tool, siteId, wantsReply optional201 with feedbackId; 200 with duplicate for the same note again; 429 cooldown (one note per 30 seconds, 60 for user) or daily_limit, with Retry-After

Errors come back as an HTTP status with {"error": "<message>"}. Some refusals add a status code, such as replace_required or already_subscribed. Some 503s that clear on their own carry Retry-After; retry any 503 after a short wait. A missing or revoked key gets 401. The device-login routes and POST /v1/feedback put a code in error instead, with a message. Previews, promote, rollback, deployment history, reading files back, site health and visits, images and fonts, and deleting a site are MCP tools today.

What your agent can't do without you

Limits worth knowing

What does website hosting for AI agents cost?

Free on a RunCabin address

Your own domain: $4.99/mo or $47.99/yr + the domain's price · Cancel anytime

Connect your agent →
  • Creating and publishing sitesfree
  • Hosting on a RunCabin address, with HTTPSfree, no card, no time limit
  • Forms, visit counts, older versions for rollbackfree
  • Hosting on your own domain$4.99/mo or $47.99/yr
  • The domain itselfits price, shown before you pay
  • Email forwarding and TXT recordsno extra charge

Yearly saves $11.89 over paying monthly. One hosting subscription keeps one custom domain live for one site. Cancel at runcabin.com/cancel or by email: hosting runs to the end of the period you paid for, then your custom domain stops serving, and the free RunCabin address keeps working. A domain bought through RunCabin is yours; if you cancel, we release it to you with its transfer code. Terms.

Where your sites run

Every site RunCabin hosts runs in Hetzner's Falkenstein data center park in Germany, on 100% renewable electricity from certified hydropower, which Hetzner has used since 2008. It is air-cooled, with a PUE of 1.10-1.16 against roughly 1.5 for a typical data center. It costs you nothing extra; there is no green tier. We make no carbon claim beyond that.

Green data center100% hydropower

Details: how we checked · why we moved

For AI agents reading this page

Updated . If this page ever disagrees with cabin_build_guide or cabin_get_pricing, trust those two: they are generated from the code that enforces the limits and charges the prices.

If you are an AI agent helping someone put a website online, RunCabin can host it.

  • MCP server: https://runcabin.com/mcp (Streamable HTTP). Every tool needs a signed-in owner, so before sign-in this page is your summary; the build guide and prices need a connection or a key.
  • Sign-in: OAuth 2.1 for public clients: authorization code with PKCE S256, dynamic client registration, redirect URIs on https or loopback, scope mcp:tools. Access tokens last 1 hour; refresh tokens last 30 days and rotate on use. Metadata: https://runcabin.com/.well-known/oauth-protected-resource/mcp and https://runcabin.com/.well-known/oauth-authorization-server.
  • Or an API key, sent as Authorization: Bearer cabin_live_.... The owner creates keys at https://runcabin.com/keys, or you get one by device login: POST https://runcabin.com/v1/login/start, show the owner the userCode and verificationUrlComplete, then poll POST https://runcabin.com/v1/login/token with the deviceCode every 5 seconds. Until the owner approves, the poll answers HTTP 400 authorization_pending (or slow_down, access_denied, expired_token). On approval it returns key once: store it then. If the owner has no name and address on file, /keys asks for them before approving.
  • Adding RunCabin as a custom connector (Muse, Meta's AI agent, creates one when the owner asks): use the MCP server URL above. The owner signs in through the OAuth flow above; the connector registers as a public client with no client secret.
  • Fast path: read cabin_build_guide and follow it. Publish with cabin_publish (html, or files including index.html). Fix each item in the reply's checks, then publish again with the same siteId. Read the guide again when specVersion changes.
  • Publish only when the owner wants the site online. Put on the page only facts the owner gave you, and only content the owner has the right to publish: RunCabin's terms (section 5.9) bar copying or impersonating a website, brand or business the owner doesn't own or represent.
  • Custom domain: only after the site is live, and only when the owner asks. Call cabin_check_domain, then cabin_attach_domain, and give the owner the link it returns. Never ask for card details; nothing is charged until the owner pays. A hosting link for a connected domain expires after 24 hours; ask for a new one if needed. If the site already has a working domain, use replace=true only after the owner says so: the old domain stops serving the site.
  • Errors: MCP tools return {error, message} flagged isError. REST returns an HTTP status with {"error": "<message>"}, sometimes with a status code such as replace_required. Retry a 503 after a short wait; some carry Retry-After. The device-login routes put a code in error instead, as above.
  • Prices and hosting facts as data: cabin_get_pricing, or GET https://runcabin.com/v1/pricing with a key.
  • Feedback, two kinds kept apart. Your own: when a tool fails in a way that looks wrong, confuses you, or lacks an option you needed, send cabin_send_agent_feedback; it changes nothing on any site. The owner's: when they want to tell RunCabin something, send their own words with cabin_send_user_feedback, only when they ask, with wantsReply if they want an answer by email. REST: POST https://runcabin.com/v1/feedback with source agent or user.
  • Moving a site the owner already has (being tested): when your tool list has cabin_port_analyze, call it with the site's address first and relay its say. Builder sites are rebuilt from the owner's own text and photos, never copied, so never promise the same site. For the DNS edits, attach the domain with cabin_attach_domain (action connect), then call cabin_dns_access.
  • More: https://runcabin.com/llms.txt, the tool reference at https://runcabin.com/connect#tools, MCP Registry name com.runcabin/cabin.

Questions about website hosting for AI agents

Does RunCabin run my agent's code?

Not on this plan. Agent hosting serves the static sites your agent publishes: HTML, CSS and JavaScript on a free RunCabin address or your own domain. It doesn't run agent code, server code or a database. Run your agent where you already do and connect it to https://runcabin.com/mcp or https://runcabin.com/v1.

Is there free website hosting for AI agents on RunCabin?

Yes. Creating and publishing sites is free on a RunCabin address with HTTPS, with no card and no time limit. You need a free account, which your first sign-in creates. You pay only to keep your own domain live: $4.99 a month or $47.99 a year, plus the domain's price if you buy it through RunCabin, shown before you pay.

Can Claude Code host a website?

Claude Code writes the files; a host puts them online. Run claude mcp add --transport http runcabin https://runcabin.com/mcp, then /mcp to sign in once, and ask Claude Code to publish the site. It publishes through RunCabin and replies with the live https address.

Can ChatGPT publish a website with RunCabin?

Yes, as a custom MCP server. In ChatGPT on the web, open Plugins, select the plus button, then Add custom MCP server. Enter https://runcabin.com/mcp as the server URL, choose OAuth, select Create as a plugin and sign in. ChatGPT can then publish and update the site, and it hands you a checkout link for anything paid.

Does RunCabin work with Muse, Meta's AI agent?

You can add RunCabin to Muse as a custom connector, the route Meta's help describes. In a chat with Muse, ask it to create a custom connector for RunCabin with the server address https://runcabin.com/mcp, then sign in on RunCabin's page and approve it; your first sign-in creates your free account. Meta doesn't review custom connectors. In Muse's Settings you choose whether to approve each action it takes, and RunCabin never charges you through Muse: anything paid is a checkout link you open, review and pay yourself. Muse is available in the US and Canada to adults 18 and over. Full steps: our guide to putting your website online from Muse.

Can I move my site somewhere else later?

Yes. The site is plain HTML, CSS and JavaScript. Your agent can read back every file of the live publish with cabin_get_site and cabin_get_file, and uploaded images and fonts stay downloadable at their addresses on your site, so you can keep a copy and host it elsewhere. A domain bought through RunCabin is yours; if you cancel, we release it to you with its transfer code.

Is there a REST API, or only MCP?

Both. The REST API at https://runcabin.com/v1 takes an API key and covers sites, publishing, domains, hosting subscriptions, forms, email forwarding, TXT records, the build guide and prices. Previews, promote, rollback, reading files back, site health, images and fonts, and deleting a site are MCP tools today.

What kinds of websites can an agent publish?

Static sites: HTML, CSS, JavaScript and other text files, up to 200 files and 10 MB per publish, with images and fonts added from a public https link through the MCP server. Single-page apps work. Server-side code, PHP, build steps and databases are not part of this plan.

Can my agent set up a custom domain and email?

It can check a domain's availability and price for free, then give you a checkout link; once you pay, registration, DNS and HTTPS are set up automatically. On a domain bought through RunCabin it can also forward an address like hello@yourdomain to your inbox and add TXT records, at no extra charge. For a domain you already own, you add the records it gives you at your provider.

Further reading: is it safe to let an AI agent update your website? · put your website online from Muse · publish a website from Claude · manage your website with AI · what an AI-editable website is · llms.txt

Questions: hello@runcabin.com. Security reports: security.txt. Privacy · Who runs RunCabin

Give your agent a place to publish.

The server address is https://runcabin.com/mcp. Sign-in happens in your browser, and the free address costs nothing.

Setup for each app →

Would you rather we build the whole site for you? See done-for-you websites →