Home / Guides / Publish HTML from Claude Code
Claude Code just built you a page — a report, a dashboard, a landing page. The old ending to that story is a file in your working directory. The better ending is a live URL, produced by Claude itself, in the same conversation. Two minutes of setup makes that permanent.
Claude Code setup pageAdd htmldrop's hosted MCP server to Claude Code:
claude mcp add --transport http htmldrop https://htmldrop.app/mcp
That's the whole install. The first time Claude tries to publish, your browser opens an OAuth sign-in — approve it once and you're done. There is no API key to create, copy, or paste into a config file; the server uses the standard MCP authorization flow, so Claude Code handles tokens (and refreshes them) itself. If you don't have an account yet, the sign-in page creates one for free.
From then on, publishing is conversation, not workflow:
report.html as a drop and paste the URL into the PR description."Claude calls htmldrop_publish (or htmldrop_list / htmldrop_delete) and hands back a live slug.htmldrop.app URL. The page serves immediately — share it in Slack, drop it in a ticket, open it on your phone.
For the class of pages Claude generates — one-file reports, prototypes, visualizations, internal docs — a real deploy pipeline is overkill: repo, commit, build, environment, DNS. htmldrop treats the page as what it is, a hosted artifact: no build step, unguessable URL, not indexed by search engines unless you opt in, password-protectable from $5/mo, and updatable in place (re-publish and the URL stays stable, with version history on paid plans). When a prototype graduates into a product, move it to a real pipeline — nothing about a drop locks you in.
Scripts and CI jobs can't do a browser sign-in — that's what API tokens are for. Create one at dashboard → API tokens and either run the local server (npx -y @htmldrop.app/mcp with HTMLDROP_API_TOKEN) or hit the REST API directly with one curl. Same account, same drops, same URLs.
Add the server, sign in once, and Claude ships pages for you from then on.
Set up Claude CodeNot for the remote server. https://htmldrop.app/mcp signs you in with OAuth in the browser the first time Claude tries to publish. API tokens (hsk_live_…) exist for the local stdio server and CI, where a browser sign-in isn't possible.
HTML documents and Markdown (rendered to a clean page server-side). Anything self-contained runs as-is — inline JS, canvas, p5.js, Three.js, CDN libraries. Claude can also list your existing drops and delete ones you're done with.
Pages are served at a slug.htmldrop.app URL under your account. Free accounts keep 3 drops at 10 MB each; paid plans from $5/mo make drops permanent, add password protection and version history, and custom domains from $10/mo.
Yes — any MCP client that supports remote streamable-HTTP servers can add https://htmldrop.app/mcp and get the same OAuth sign-in and publish tools. See the setup pages for Claude Desktop, Cursor, and Cline.