About host-html
host-html publishes HTML as a shareable live page and can replace its contents while keeping the same URL. It is aimed at AI agents and their users who need to share generated HTML without managing a deployment server.
Key features
- 01Publish HTML as a live link
- 02Update content at the same URL
- 03Export HTML slides to PDF with a skill
- 04Use a personal API key for publishing
Use cases
- 01Share an AI-generated HTML page
- 02Revise a published page without changing its link
- 03Turn HTML slides into a PDF
MCP support
The MCP server exposes `publish_html` and `update_page` tools. Publishing requires a personal `HOSTHTML_API_KEY` from a free, email-verified account.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y host-html-mcpHOSTHTML_API_KEYSecretPersonal API key (hh_...) from host-html.com → Account → API keysLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEhost-html
Publish any HTML file as a live link — instantly. Free account required. No deploy pipeline, no server to manage. → host-html.com
Heads up — breaking change in v2.0.0: Anonymous publishing has been retired. Publishing now requires a free, email-verified host-html account and a personal API key set as
HOSTHTML_API_KEY. See Setup: get an API key. Older releases that relied on the built-in shared key will stop publishing.
Install
Claude Code
/plugin marketplace add phanosh/host-html
/plugin install host-html@host-html
The official Claude Code marketplace listing is in the works — until it lands, install directly from this repo with the two commands above.
Claude Desktop, Cursor, Codex (MCP server)
// claude_desktop_config.json / .cursor/mcp.json / .mcp.json
{
"mcpServers": {
"host-html": {
"command": "npx",
"args": ["-y", "host-html-mcp"],
"env": { "HOSTHTML_API_KEY": "hh_your_key_here" }
}
}
}
Two tools: publish_html (HTML in, link out) and update_page (new HTML, same link).
Source and docs: mcp-server/ · npm: host-html-mcp
Other AI Agents (Skills)
npx skills add phanosh/host-html -g -y
Then use the skills:
/host-html # publish HTML as a live link
/host-pdf # export HTML slides to PDF
/host-html finds the HTML, publishes it, and hands you a live URL in seconds.
/host-pdf captures each slide at retina quality and assembles a PDF.
Works with Claude Code, Cursor, Codex, Copilot, and 40+ more agents.
Setup: get an API key
Publishing now requires a free host-html account:
-
Sign in (free) at host-html.com
-
Confirm your email
-
Go to Account → API keys → Create key
-
Copy the generated key (starts with
hh_…— shown once) -
Set it as an environment variable:
export HOSTHTML_API_KEY=hh_your_key_here
The skill reads HOSTHTML_API_KEY automatically. Custom slugs (see the Direct
API table below) still require a Pro/Team plan; publishing itself does not.
Update
When a new version is released here, pull it into your local Claude Code with:
/plugin marketplace update phanosh/host-html
That single command refreshes the marketplace catalog and installs any version bumps in marketplace.json, plugin.json, or the skill frontmatter. To check what you're on:
/plugin
To stay current automatically, open /plugin, go to the Marketplaces tab, select phanosh/host-html, and toggle auto-update on — Claude Code will then pull updates on startup.
For the standalone skills install (npx skills add ...), re-run the same command to upgrade:
npx skills add phanosh/host-html -g -y
Direct API
The publish edge function requires a personal host-html API key (format
hh_…) as the bearer token — see Setup to generate
one. Pass it via the Authorization header (no apikey header is needed):
curl -X POST https://suifgsvtcbrawzdhyuhk.supabase.co/functions/v1/publish \
-H "Authorization: Bearer $HOSTHTML_API_KEY" \
-H "Content-Type: application/json" \
-d '{"html": "<h1>Hello</h1>", "title": "my page"}'
Request
| Field | Type | Required | Description |
|---|---|---|---|
html | string | ✓ | HTML content (max 1MB) |
title | string | Page title | |
slug | string | Custom URL path matching ^[a-z0-9-]{2,64}$ (paid plans) | |
password | string | Password-protect the page (4–72 chars, paid plans, JSON body only) |
Response 201
{
"url": "https://host-html.com/p/abc123",
"slug": "abc123",
"edit_token": "...",
"page_id": "...",
"has_password": false,
"expires_at": "2026-03-16T..."
}
has_password is true when the request set a password (the page is locked
and served from private storage); false otherwise.
expires_at is string | null. On a free plan it is the ISO timestamp when the page goes
dark; on a paid plan the page never expires and the field is null. It is the authoritative
expiry — read it from the response rather than assuming a fixed duration, and handle the null
rather than formatting it as a date.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.
