# Our homepage publishes for you now: an AI agent builds and ships a page, no login · Stacktree

Source: https://stacktr.ee/blog/agent-publishes-from-the-browser

[Skip to content](#main) [Stacktree](/)[Developers](/developers)[Agents](/agents)[Docs](/docs)[Use cases](/use-cases)[Pricing](/pricing)[Blog](/blog)[Dashboard](https://app.stacktr.ee)[Sign in →](https://app.stacktr.ee)      By [ Steve Smith ](/about) · Founder, Stacktree  ·  Last updated August 23, 2026          blog

#  Our homepage publishes for you now.

   We put a WebMCP publish tool on the public site. A browsing AI agent, or you in a single sentence, can generate an HTML page and ship it live from stacktr.ee itself. No account, no file, no dashboard.

  [ Get started free ](https://app.stacktr.ee/?join=1&from=seo_blog_agent_publishes_from_the_browser)   install npx stacktree-install
Copy
     No card · 3 pages free · about a minute

##  Can an AI agent build and publish a website from a web page?

Yes. Stacktree registers a WebMCP tool, `stacktree_publish_html`, on its public marketing site. An AI agent operating in a WebMCP-capable Chrome reads that tool and calls it with a complete HTML document, and receives a live, unlisted URL in return. No sign-in, no upload, no dashboard. The whole act, generate and publish, happens from the page you are reading.

A sentence in the ⌘K palette generates a complete page and publishes it live. No sign-in.

## Manage was the first half. Create is the second.

A couple of weeks ago we [wired WebMCP into the dashboard](/blog/dashboard-speaks-webmcp): an in-browser agent could set a password, mint a share link, or change expiry on a site you already owned, all behind a sign-in. That covered managing. It left the more interesting half open. The first thing an agent wants to do is not manage an existing site, it is make one. So we moved the publish tool to the front door.

## What we added

The public site now registers `stacktree_publish_html` on `document.modelContext`. It takes a complete HTML document and an optional password or expiry, and it calls the same anonymous endpoint our `curl` and CLI paths use. There is no new backend and no auth. The agent gets back a live URL and a single-use claim link, so a human can adopt the site into a free account later and keep it past the 24-hour anonymous window.

One catalog, three consumers now: the MCP server for agents outside the browser, the in-page palette for humans, and WebMCP for agents inside the browser. They share the same verbs, so whoever shows up speaks the same language.

## Two doors to the same tool

  An agent calls it. Open stacktr.ee in a WebMCP-capable Chrome and a browsing agent sees the tool and can publish a page it generated, with no keystrokes from you.

  You describe it. Press ⌘K and the palette runs a natural-language mode. Say "a coming-soon page for a coffee roaster" or "a one-page manifesto for the agentic web," and a model writes a complete, considered HTML document and calls the publish tool for you. That mode is bring-your-own-key: your provider key lives only in your browser and goes straight to the provider. The plain tool needs no key at all. We also gave it a real design brief, not just "make it nice," so the output aims for premium rather than the templated look agents usually default to.

## Why the marketing site, not just the app

The instinct is to keep tools behind a login. But an agent's first contact with Stacktree is this page, not a dashboard it has no account for. If the web is turning into a surface agents act on instead of only read, the public front door should be actionable. A publish primitive whose entire pitch is "one call to a live link" should honor that from the very first call, before anyone signs up. So the homepage itself can publish.

## The honest part

WebMCP is in a Chrome origin trial, so most people's browsers cannot call this tool yet, which is why the clip above is a recording. We ship the surface anyway, for the same reason we publish [llms.txt](/llms.txt) and machine-readable [pricing](/pricing.md): agent-readable surfaces compound, and the day the standard lands widely is the day this already works. The deeper how-it-works, the tool schema, and the registration code live on the [WebMCP page](/webmcp).

     See it in one call, no account

```
`curl -X POST https://api.stacktr.ee/sites -F file=@index.html
# &rarr; a private URL, live for 24h. Claim it free to keep it.`
```

If your agents emit HTML, they need a durable publish target: publish once, then
`update_site`
on every revision keeps the same URL forever. MCP, REST, and skills all speak it:
        the map is at [agent.txt](https://stacktr.ee/agent.txt).

[
Get an API key free
](https://app.stacktr.ee/?join=1&from=bridge_blog_agent_publishes_from_the_browser)
FAQ

## Frequent questions

     Can an AI agent publish a website from a web page? +  Yes. Stacktree registers a WebMCP tool, stacktree_publish_html, on its public site. A browsing agent in a WebMCP-capable Chrome reads that tool and calls it with a complete HTML document, and gets back a live, unlisted URL. No account, no file upload, no dashboard. Anonymous sites last 24 hours and come with a claim link to keep them.   How is this different from the dashboard WebMCP post? +  The earlier piece was about managing sites you already have, behind a sign-in: an agent setting a password or minting a share link in the dashboard. This is about creating: publishing a brand-new page from the public marketing site, with no account at all. Manage versus create, both over the same WebMCP vocabulary.   Do I need an API key? +  Not for the raw tool. An agent calls publish_html with HTML and that is it. The optional in-page natural-language mode, where you describe a page and a model writes the HTML for you, is bring-your-own-key: your provider key is stored only in your browser and sent straight to the provider, never to us.   Why put the tool on the marketing site instead of only the app? +  Because an agent's first contact with Stacktree is the public page, not a logged-in dashboard. If the web is becoming a surface agents act on, the front door should be actionable, not just readable. So the homepage itself can publish.
Keep reading

## Related guides

   -  [ WebMCP on Stacktree The reference: the tools we expose, the schema, and the registration code. ](/webmcp)
-  [ Our dashboard already speaks WebMCP The first half: managing sites with in-browser tools. ](/blog/dashboard-speaks-webmcp)
-  [ Stacktree for AI agents Every door: MCP, REST, the CLI, and pay-to-provision. ](/agents)
-  [ Let an agent pay for its own hosting WebMCP for the page, x402 for the payment. ](/x402)

References

## Sources and further reading

   -  [ WebMCP on Chrome for Developers ↗ Official documentation for the WebMCP API and origin trial. ](https://developer.chrome.com/docs/ai/webmcp)
-  [ WebMCP origin trial announcement ↗ The Chrome 149 origin-trial launch post. ](https://developer.chrome.com/blog/ai-webmcp-origin-trial)
-  [ webmachinelearning/webmcp ↗ The W3C community-group explainer and API surface. ](https://github.com/webmachinelearning/webmcp)

##  Open it in Chrome and ask.

 Press ⌘K on any Stacktree page and describe a page, or point your browsing agent at stacktr.ee. The first publish is anonymous and free.

 [ Sign up free → ](https://app.stacktr.ee/?join=1&from=cta_blog_agent_publishes_from_the_browser)   install npx stacktree-install
Copy
       Private hosting for the HTML your agents make.

[](https://betalist.com/startups/stacktree?utm_campaign=badge-stacktree&utm_medium=badge&utm_source=badge-featured)[Featured on](https://devhunt.org/tool/stacktree)[](https://buildlist.io)[Get started free](https://app.stacktr.ee/?join=1)

## Product

- [Templates](/templates)
- [Example deliverables](/examples)
- [Custom domains](/custom-domains)
- [Client feedback](/client-feedback-loop)
- [One-time links](/one-time-view-links)
- [See how pages get read](/page-engagement)
- [Made with Stacktree](/made-with)
- [Security](/security)
- [Watch the demo](/demo)

## Agents

- [All integrations](/agents)
- [Claude Code](/claude-code)
- [OpenAI Codex](/codex)
- [Cursor](/cursor)
- [Claude.ai connector](/claude-ai-connector)
- [MCP server](/mcp-publish-html)
- [Deploy from Claude Code](/deploy-html-from-claude-code)
- [Skills](/skills)
- [Slack app](/slack)
- [n8n node](/n8n)
- [Agent payments (x402)](/x402)

## Alternatives

- [All comparisons](/alternatives)
- [Head-to-head comparisons](/compare)
- [Tiiny Host](/tiiny-host-alternative)
- [GitHub Pages (private)](/github-pages-private-alternative)
- [Vercel](/vercel-alternative-for-agents)
- [ngrok](/ngrok-alternative-for-html)
- [Display.dev](/display-dev-alternative)
- [Static.app](/static-app-alternative)
- [OpenAI Codex Sites](/openai-codex-sites-alternative)
- [here.now](/here-now-alternative)
- [Shippage](/shippage-ai-alternative)
- [Best private hosting](/best-private-html-hosting)

## Use cases

- [All use cases](/use-cases)
- [Share with clients](/share-with-clients)
- [Send a file to a client](/share-html-file-with-client)
- [Share Claude artifacts](/share-claude-artifacts)
- [Share Jupyter notebooks](/share-jupyter-notebook-html)
- [Host Storybook privately](/host-storybook-privately)
- [Architecture diagrams](/share-architecture-diagrams)
- [AI-generated reports](/host-ai-reports)
- [Internal HTML tools](/internal-tool-hosting)
- [Private HTML hosting](/private-html-hosting)
- [Vibe-coded page hosting](/vibe-coding-hosting)
- [Leave a website builder](/website-builder-migration)

## Learn

- [Blog](/blog)
- [Glossary](/glossary)
- [FAQ](/faq)
- [Agent-loop hosting](/agent-loop-hosting)
- [Why agents need a publish primitive](/blog/why-agents-need-a-publish-primitive)
- [MCP servers explained](/blog/mcp-servers-explained-for-developers)
- [What changed in the 2026-07 MCP spec](/blog/mcp-2026-spec-changes)
- [Sites in Codex explained](/blog/sites-in-codex-explained)
- [Private-by-default hosting](/blog/private-by-default-html-hosting)
- [An agent paid us $1 (x402)](/blog/agent-paid-to-provision-itself)
- [When a loop hits a paywall](/blog/loop-engineering-paywall)
- [Pricing](/pricing)
- [Self-host (new)](/self-host)
- [Changelog](/changelog)
- [Docs](https://stacktr.ee/docs)
- [About](/about)
© 2026 Stacktree · stacktr.ee

[Privacy](/privacy)[Terms](/terms)[Security](/security)[Dashboard](https://app.stacktr.ee)[npm](https://www.npmjs.com/package/stacktree-mcp)[Sitemap](/sitemap.xml)[llms.txt](/llms.txt)[API spec](/openapi.json)

---
Full markdown summary of the Stacktree marketing surface: https://stacktr.ee/llms-full.txt
