publish-my
MCP server for publish.my: your AI agent publishes a folder as a live
website at https://<id>.publish.my. Free, and no account needed to start.
Ask your agent to "put this online" and it calls publish_site. The first publish gives a
preview link; the user enters their email on that page once and the site goes live at the same
address. After that, every publish goes live immediately.
Install
Claude Code
Cursor: add this to ~/.cursor/mcp.json
VS Code
Codex
Claude Desktop, Windsurf and other MCP clients: a stdio server running npx -y publish-my
(Node 20 or newer).
claude.ai and ChatGPT have no filesystem, so they use the remote connector instead: add a
custom connector with the URL https://api.publish.my/mcp and sign in to publish.my once.
Tools
There is no delete tool. Sites are deleted in the console.
What it stores
The same files the curl flow uses, so the two stay interchangeable:
~/.publishmy: your publish.my API key (mode 600), saved when you activate your first site.
A working key here is never replaced by a key for a different account.
~/.config/publish-my/keys/<site id> (mode 600): if a site gets activated on a different account
than the key in ~/.publishmy, its key is kept here and used only for that site.
<project>/.publish-my.json: which publish.my site this folder is, so "publish again" updates
the same address.
~/.config/publish-my/pending.json (mode 600): secrets for sites waiting for activation. It
is kept out of the project folder so it never ends up in git.
Hidden files (.env and similar), node_modules and file types publish.my does not host are left
out of the upload. The tool reports what it left out.
Environment overrides: PUBLISHMY_API_KEY, and PUBLISHMY_API_URL for testing.
Limits (free)
500 MB per account, unlimited sites, 50 MB per upload, 2,000 files per site, static files only.
Framework apps (Next.js, Vite, Astro, SvelteKit, Nuxt) must be built first; publish the output
folder. Full details: https://publish.my/agents/
Development