mcp.kan.fyi live

Publish from any chat.

Connect once — then ask your AI to ship. A sentence in the conversation becomes a real site with a real URL, in seconds.

Works with Claude Code Claude Desktop Cursor OpenCode any MCP client
Make a site for my supper club and publish it to kan.
create_site publishing…files sent inline
live → qf82hnxe.kan.fyi

Connect in one minute.

Three steps — and the third one is just talking.

  1. Mint a token

    In Settings → Access tokens (sign in first). It’s shown once — copy it then.

    kan_pat_YOUR_TOKEN

    Scoped to your account. Rotate anytime.

  2. Paste the snippet

    claude mcp add --transport http kan https://mcp.kan.fyi --header "Authorization: Bearer kan_pat_YOUR_TOKEN"

    Terminal — swap in your token from Settings → Access tokens.

  3. Say the thing

    Try saying

    “Make a landing page for my coffee cart and publish it to kan.”

    → 9vt3bwzr.kan.fyi

One call. One honest answer.

A publish blocks for a few seconds, then says what actually happened. Never a job id to poll.

live

Serving now. The answer comes with the URL — or, for a site set to private, a note pointing at the dashboard preview instead.

held

Queued for a human to look at — nothing more for you to do. New accounts start here: publishes are held until your first approval. That check is why kan stays clean.

failed

With the actual reason: “quota exceeded: 27262976 bytes > 26214400 limit”

unpublished

Not currently being served.

pending

Still publishing. get_site has the fresh verdict.

Files travel through two doors.

The site your AI wrote in the chat goes one way. A real folder on your disk goes another.

Door one

Inline

For the site your AI just wrote in the chat.

Your AI writes the site in the conversation

create_site

the files ride along, as text in the call

<id>.kan.fyi
up to 20 files 512 KB

Door two

Upload ticket

For real folders your AI never held.

A folder or zip on your disk — built by anything

create_upload_ticket

returns a single-use URL, short-lived

Your shell or browser sends the zip there — no token attached. The ticket is the credential.

<id>.kan.fyi
zip up to 30 MB single-use

Six tools. No more.

Everything the server can do, in one screen of docs.

create_site

A new site with a fresh eight-character id.

update_site

New files to an id you already have.

get_site

One site: its URL and current verdict.

list_sites

Every site on the account, at a glance.

create_upload_ticket

A single-use upload URL for the zip door.

read_site_files

The files behind a site — any live public one, and your own whatever their visibility.

Honest limits.

10sites per account
25 MBper site
512 KBinline — up to 20 files per call
30 MBzip, through an upload ticket

Visibility is per site — public, link-only, or private.

Questions.

Is it free?

Free while in beta. No card.

Which clients work?

Any MCP client that speaks Streamable HTTP — Claude Code, Claude Desktop, Cursor, OpenCode, and the rest.

Can I pick my URL?

No — ids are minted by the server. Eight characters, like 9vt3bwzr.

What if my AI publishes something bad?

While an account is new, every publish is held for a human look before it serves; the first approval lifts that for good. That check is why kan stays clean.

Connect once. Publish from anywhere.

Sign in, mint a token, paste one snippet. Then it’s just talking.

Start free https://mcp.kan.fyi