publish.my
Publish a folder as a live website at https://<id>.publish.my. Free, no account needed.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
claude mcp add --transport http publish-my 'https://api.publish.my/mcp'
{
"mcpServers": {
"publish-my": {
"type": "http",
"url": "https://api.publish.my/mcp"
}
}
}
publish-myclaude mcp add publish-my -e 'PUBLISHMY_API_KEY=<your publishmy_api_key>' -- npx -y publish-my@0.1.0
{
"mcpServers": {
"publish-my": {
"command": "npx",
"args": [
"-y",
"publish-my@0.1.0"
],
"env": {
"PUBLISHMY_API_KEY": "<your publishmy_api_key>"
}
}
}
}
Environment variables
PUBLISHMY_API_KEYsecret Optional. A publish.my API key; without it the first publish gives a preview link and the key is saved to ~/.publishmy when the user activates.
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
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
claude mcp add publish-my -- npx -y publish-my
Cursor: add this to ~/.cursor/mcp.json
{ "mcpServers": { "publish-my": { "command": "npx", "args": ["-y", "publish-my"] } } }
VS Code
code --add-mcp '{"name":"publish-my","command":"npx","args":["-y","publish-my"]}'
Codex
codex mcp add publish-my -- npx -y publish-my
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
| Tool | What it does |
|---|---|
publish_site | Packs a folder (with index.html at its top) and publishes it. Updating a live site needs confirm_update: true, which the agent sets after asking the user. |
check_activation | Checks whether the user has confirmed their email for a new site. |
list_sites | Lists the user's sites with status and 30-day views. |
reconnect_site | Recovers access to a live site after the key on this machine was lost. |
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
npm test # unit tests
./scripts/e2e-dev.sh # full flow against a local publish.my DEV server (needs the app repo)
node scripts/client.mjs list
Frequently asked questions
What is publish.my?
Publish a folder as a live website at https://<id>.publish.my. Free, no account needed.
How do I install publish.my?
It runs as a remote server. In Claude Code: claude mcp add --transport http publish-my 'https://api.publish.my/mcp'. For other clients, paste the JSON configuration from this page into their MCP settings.
Does publish.my need an API key?
Yes. It expects PUBLISHMY_API_KEY, which you set in its configuration.
Is publish.my open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains publish.my?
It is published by aizuikmal. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.