Publish HTML from Cursor with one command.
Run npx stacktree-install — pick Cursor when prompted — and every HTML file the agent writes can be published to a private, unguessable URL. Replace-in-place via update_site means the same URL survives every revision.
No card · 3 pages free · about a minute
How do you publish HTML from Cursor in 2026?
Run npx stacktree-install, pick Cursor when prompted, restart Cursor, and ask the agent to publish any HTML file. Stacktree returns an unguessable URL you can password-protect, email-gate, expire, or replace in place. Sites belong to your account from the first publish.
The 30-second install
Run npx stacktree-install in your terminal. It opens your browser, signs you in to stacktr.ee, and writes the stacktree entry into the Cursor mcp.json you pick — per-project at .cursor/mcp.json, or per-user at ~/.cursor/mcp.json. Restart Cursor to pick up the new server.
What the installer writes (for the curious)
If you'd rather edit mcp.json by hand, the entry the installer adds looks like:
{
"mcpServers": {
"stacktree": {
"command": "npx",
"args": ["-y", "stacktree-mcp"],
"env": { "STACKTREE_API_KEY": "stk_live_…" }
}
}
} Generate the key from app.stacktr.ee/api-keys if you go this route.
What the agent gets
Twelve tool calls become available to the Cursor agent: publish_html, update_site, get_site, set_password, set_expiry, set_email_gate, set_agentation, list_sites, delete_site, link_wallet, list_feedback, resolve_feedback. The agent uses them like any other MCP tool — Cursor decides when to call them based on the prompt.
Typical flow
- Cursor generates a single-file HTML report.
- You: "publish that as a private Stacktree, gate it to @yourco.com, expire in 7 days."
- Cursor calls
publish_html, thenset_email_gate, thenset_expiry. Three tool calls, one operation in your head. - You paste the URL into Slack. Anyone with a verified
@yourco.comemail opens it via magic link.
When iterating
If you ask Cursor to revise the same artifact, tell it to "update the same Stacktree" — it'll call update_site with the existing slug. The URL doesn't change; the content does. Anyone who already opened the link sees the new version on refresh.
Set up Cursor in one line
Paste this into Cursor. It fetches the setup instructions, installs Stacktree, checks the connection, and learns the parts agents usually get wrong: replacing a page in place so a link you already sent keeps working, reading the real expiry instead of promising permanence, and filing work under the client it belongs to.
Fetch and follow the setup instructions at https://stacktr.ee/prompt.md Works in any agent that can fetch a URL. Nothing to install first, and the instructions are plain Markdown you can read before you run them.
Frequent questions
How do I add Stacktree to Cursor? +
npx stacktree-install and pick Cursor when prompted. It signs you in to stacktr.ee in your browser, then writes a stacktree entry to your Cursor mcp.json (per-project .cursor/mcp.json or per-user ~/.cursor/mcp.json — your choice during install). Restart Cursor and the tool calls become available.Does Cursor support stdio MCP? +
stacktree-mcp defaults to. No HTTP wiring required.Can the Cursor agent replace a previous publish? +
update_site. The URL stays stable across iterations, so any link your team has bookmarked still shows the latest version.Do I need a Stacktree account to start? +
stacktree login stores a token at ~/.stacktree/credentials when you want persistence.Is this Cursor-specific? +
stacktree-mcp package works in Claude Code, Codex CLI, Claude.ai connectors, and any MCP-compatible client. Cursor just needs the standard mcp.json entry.Related guides
Sources and further reading
Add Stacktree to Cursor.
One command. The next time Cursor writes HTML, you get a private link.
Sign up free →