publish.my

my.publishPublished by publish.myOfficial publisherv0.1.0Updated Oct 30, 2026

Publish a folder as a live website at https://<id>.publish.my. Free, no account needed.

VerifiedStreamable HTTPWeb executableCloud & InfrastructureDeveloper Tools

Overview

AI-generated overview

Publishes a local folder as a public static website on publish.my and returns its URL, with tools to check activation, list sites and recover access.

What you can do
  • Publish a folder containing index.html as a public static site and get its URL, including updates to an existing site
  • Check whether a newly published site has been activated by the owner's email confirmation
  • List the user's sites with URLs, status and 30-day views
  • Reconnect a live site after the local publish.my key was lost by emailing the owner a confirm link
When to use it
Useful when the user wants a page, demo, report or prototype put online and shared as a link without setting up hosting. Also handy for updating an already published site from the same folder.
Requirements
Runs either as a remote endpoint at api.publish.my (for clients without filesystem access, signing in once) or locally via npx publish-my with Node 20 or newer. OAuth sign-in or an optional PUBLISHMY_API_KEY; the first publish needs the user to enter an email and click a confirmation link. Static files only, with framework apps built first.
Before you install
Publishing uploads the folder's contents to a public address, so anything in it becomes publicly readable; hidden files such as .env, node_modules and unsupported types are excluded and reported. The API key is stored in ~/.publishmy and per-site keys under ~/.config/publish-my, and a project file records which site a folder maps to. Updating a live site requires confirm_update set after asking the user. There is no delete tool; sites are removed in the console. Free limits apply: 500 MB per…

Installation

In SourceWeft

  1. Open publish.my in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/my.publish%2Fpublish-my/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "publish-my": {
      "type": "http",
      "url": "https://api.publish.my/mcp"
    }
  }
}

README

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

sh
claude mcp add publish-my -- npx -y publish-my

Cursor: add this to ~/.cursor/mcp.json

json
{ "mcpServers": { "publish-my": { "command": "npx", "args": ["-y", "publish-my"] } } }

VS Code

sh
code --add-mcp '{"name":"publish-my","command":"npx","args":["-y","publish-my"]}'

Codex

sh
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

ToolWhat it does
publish_sitePacks 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_activationChecks whether the user has confirmed their email for a new site.
list_sitesLists the user's sites with status and 30-day views.
reconnect_siteRecovers 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

sh
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

Source: README.md at commit 4818f88

Tools

4

publish_site

Publish a folder as a website

Publish a local folder (with index.html at its top) as a public static website on publish.my and return its URL. Use for "publish", "deploy", "host", "put online", "share a link", and "publish again / update the site". The first publish of a folder gives a preview URL the user activates by entering their email on that page; after that, publishes go live immediately. Re-publishing a folder that is already live updates the same URL: ask the user first, then pass confirm_update: true. Framework apps (Next.js, Vite, Astro, SvelteKit, Nuxt) must be built/exported first; pass the output folder (out/, dist/, build/, .output/public).

Parameterspathrequirednew_siteproject_idconfirm_update

check_activation

Check site activation

Check whether the user has activated a newly published site (entered their email and clicked the link). When they have, the site is live and the publish.my key is saved for future updates.

Parametersproject_id

list_sites

List my sites

List the user's publish.my sites with their URLs, status and 30-day views.

Takes no parameters.

reconnect_site

Reconnect a live site

Use when a site is already live but this machine lost its publish.my key (updates fail with 401/403 or "no key"). Emails the site owner a confirm link; once clicked, the key is saved and updates work again.

Parameterspathproject_id

Version history

1
  1. v0.1.0LatestOct 23, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts