Give your agent
a publish button.
artifacts-mcp turns "make me a page" into a live URL. Any MCP-capable agent — Claude, Cursor, your own bots — can publish ready-to-share web pages from a conversation, and you decide exactly who can open each one.
“make this page live”
That's the whole workflow. Your agent says it back with a URL.
Agents build great pages. Then the pages die in the chat.
Trapped in the chat window.
Whatever your agent builds — a report, a dashboard, a prototype — lives inside the chat app that made it. Your client, your CFO, your other team can't open it.
Shared as screenshots.
So good work leaves as a PNG in Slack or a paste in an email — unstyled, uninteractive, and out of date by Friday.
Deploying is overkill.
Repo, build, host, DNS — nobody sets that up for a one-off page. Publishing should be one sentence in the conversation.
Three steps, once. Then it's just asking.
Connect
Point your agent at the connector URL — claude.ai, Claude Code, Cursor, or anything that speaks MCP — and sign in with Google or GitHub. Your publisher account is created on first sign-in. Full setup guide →
Ask
In any conversation: "publish this as a page". The agent calls
publish_artifact and hands you the live URL.
Share
Send the link. You choose who can open it — and the agent can update or unpublish the page later without the URL changing.
One URL is the whole setup.
You type this. You get this.
The part chat apps can't do: you decide who opens it.
Anyone. A normal web page.
Anyone with the link. Unlisted and kept out of search engines.
Only you. The URL shows nothing to anyone else — not even that it exists.
Specific people. They sign in once; only listed addresses get through.
Your whole company. Everyone @yourco.com and nobody else.
Real ways people use it.
Her team opens the same link every week. It's always the newest version.
domainThe client clicks, signs in once, and sees the live design — no accounts to create, no files to download.
emailsOne link in the morning stand-up. No wiki, no permissions tickets.
domainCompany-wide sharing is one argument.
No admin console, no user provisioning. Anyone who signs in with a company email can open domain-shared pages; everyone else sees nothing.
publish_artifact({
title: "On-call handbook",
html: "…",
visibility: "domain",
allowed_domain: "yourco.com"
})