By · Founder, Stacktree · Last updated
use case

Your agent built a dashboard. Here is where to put it.

Agents now assemble a dashboard on demand and hand you the HTML. But HTML is not a link, and a page with real numbers in it is not something you want public or permanent. Here is how to host an agent-built dashboard on a private URL that opens without an account and clears itself away when it is done.

Get started free

Where do you host a dashboard an AI agent built?

On a host that turns the agent's HTML into a private link. Publish it to an unguessable URL the viewer opens with no account, set an expiry so a single-use page removes itself, and add a password or email-domain gate when it goes to a client. Stacktree does this and lets the agent publish over MCP, so the dashboard goes from generated to a shareable private link in one step, then tidies itself away.

The step the agent leaves you with

The on-demand pattern is simple: ask an agent to gather the data and render an HTML dashboard to answer the question in front of you, instead of maintaining a standing dashboard nobody opens. It works. But it stops one step short. The agent produces a block of HTML, and HTML on its own is not something you can send to a colleague or a client. Someone has to open it, often away from your terminal, which means the page needs a URL.

That is the only gap, and it is small. The page has to be hosted somewhere that hands back a link. The question is just which host, because the obvious ones are built for a different job.

Why generic hosting is the wrong shape

You could drop the HTML on GitHub Pages, Netlify, or an S3 bucket. They will serve it. But their defaults are built for publishing a public website and keeping it up: the page is public, often indexable, and permanent unless you go and delete it. An agent-built dashboard is usually the opposite of all three. It tends to carry real data the agent pulled in, it is meant for specific people, and it is single-use. So the generic host leaves you manually setting access you do not have, and manually cleaning up pages that were obsolete an hour after they were built.

The shape this use case wants is private by default, gateable per link, and disposable on a timer. That is a different host, not a different bucket.

The private, disposable fix

Full disclosure: we build Stacktree, so read this as us describing where we fit. Stacktree takes the agent's HTML and publishes it to a private link with three properties that match a throwaway dashboard specifically:

  • Private by default. The URL is unguessable and the page is served with a search and AI opt-out header, so it is not indexed and not discoverable by guessing. A page with client numbers stays between you and the recipient.
  • It expires. Put an expiry on the page so a single-use dashboard removes itself. Anonymous publishes already default to a 24-hour expiry, so disposable is the default, not a chore.
  • Gateable per link. Add a password, or restrict to a client's email domain with magic-link verification, when the page leaves your team.

The trade is that Stacktree hosts static HTML, so the page is a snapshot, not a self-refreshing dashboard. That is the right shape here: a throwaway dashboard is a snapshot by definition. If you need a standing view that re-queries live data for many viewers, that is a real dashboard tool's job, not this.

How an agent does it in one step

Because the publish step runs over MCP, the agent can finish the job without you leaving the conversation. It calls publish_html with the rendered page and gets back a private URL, setting an expiry in the same call so the page is disposable from the start. For a client, it adds a password or an email-domain gate. If a follow-up changes the view, update_site replaces the page in place at the same URL, so a link you already sent stays correct. We package this as an agent-run-report skill so the gather, render, and publish steps run as one move, but the primitive is just the publish call.

Where to host an agent-built dashboard

Criterion Generic static host Stacktree
Default visibility Public. Private, unguessable URL.
Indexed by search engines Often yes. No, opt-out header on every page.
Expires on its own No, permanent until deleted. Yes, 24h default for anonymous publishes.
Password or email-domain gate Not built in. Yes, per link.
Agent can publish over MCP No, needs a deploy step. Yes, one publish_html call.
Replace in place at same URL Via redeploy. update_site, same URL.
Good for a public website Yes, that is its job. Not the target use.
FAQ

Frequent questions

Where do I host a dashboard an AI agent built? +
The agent produces HTML, so you need a host that turns it into a link a person can open. A private-by-default host like Stacktree publishes the HTML to an unguessable URL the viewer opens with no account, lets you set an expiry so a single-use dashboard removes itself, and lets the agent publish it directly over MCP. Generic static hosts work too, but they default to keeping pages forever and indexing them, which is the wrong shape for a throwaway dashboard.
How do I share an AI-generated dashboard with a client? +
Publish the HTML to a private link and gate it to the recipient. On Stacktree the URL is unguessable and the page is not indexed; you can require a password or restrict access to the client's email domain with magic-link verification, and set an expiry so the link does not outlive the engagement. The client opens a normal link with no account and no workspace to join.
Can an agent publish the dashboard itself? +
Yes. Stacktree exposes a publish tool over MCP, so an agent wired to it calls publish_html with the rendered HTML and gets back a private URL in the same turn, optionally with an expiry and a gate. If you ask a follow-up that changes the view, the agent calls update_site to replace the page in place at the same URL, so a link you already sent stays correct.
Should an agent-built dashboard expire? +
For a single-use dashboard, yes. A dashboard built to answer one question is a snapshot, and letting it expire keeps it from accumulating as a dead link, the exact maintenance problem that made people stop building standing dashboards. Stacktree supports an expiry on any page and defaults anonymous publishes to 24 hours. Set a longer window or remove the expiry when a page needs to stick around.
Can I just use GitHub Pages or Netlify for an agent dashboard? +
You can host the HTML there, but the defaults fight the use case. Those hosts are built to publish public pages and keep them indefinitely, so a dashboard with client numbers or internal data lands on a public, potentially indexed URL with no expiry and no per-link gate. They are right for a public site and wrong for a private, disposable dashboard, which is what an agent-built one usually is.
Is a hosted snapshot the same as a live dashboard? +
No, and for this pattern that is fine. A hosted page is a snapshot of the data at the moment the agent built it, not a self-refreshing view. The on-demand pattern leans on that: you build the dashboard to answer a question now, and if you want a fresh read tomorrow the agent builds tomorrow's. For a standing, self-refreshing view that many people watch, keep a real dashboard tool.
Keep reading

Related guides

References

Sources and further reading

Give your agent's dashboard a private link that expires.

Stacktree publishes agent-built HTML to a private, unguessable URL the viewer opens without an account, and lets it expire on its own. Free tier, no card.

Sign up free →