In short
- First deploy, no account: ask your agent to
Deploy on PageLemon.com. It uploads the build output. - Open the keep link and sign in to keep the site. Tick Connect my AI and the agent can keep editing it.
- For every site you own, add the remote MCP server
https://mcp.pagelemon.com/mcpand sign in once. - Static output only: HTML, CSS, JS, images. Server code and databases don't run.
- In CI or on a machine without a browser, use an API key in an environment variable.
Publish, keep, connect, edit
- Publish. Ask your agent to launch the site. No account needed. It stays up for 72 hours.
- Keep it. The agent gives you a keep link. Open it, sign in and press Keep.
- Connect once. Tick Connect my AI on the keep screen. Within 15 minutes the agent can take a key for that one site and edit it. Or add the MCP server (below) for all your sites.
- Keep editing. Any connected AI, in any session, updates the same address.
The first deploy needs no setup
Agents with a shell (Claude Code, Codex, Cursor's agent, Copilot in agent mode) can publish without any account. Ask:
- Deploy on PageLemon.com
The agent fetches the publishing guide for AIs, runs your build, and uploads only the output folder (dist, build, out). Under the hood it's one request:
node -e 'const fs=require("fs"),p=require("path"),d="dist",files=[];(function w(x){for(const e of fs.readdirSync(x,{withFileTypes:true})){const f=p.join(x,e.name);e.isDirectory()?w(f):files.push({path:p.relative(d,f).split(p.sep).join("/"),content_base64:fs.readFileSync(f).toString("base64")})}})(d);console.log(JSON.stringify({files}))' | curl -sS --fail-with-body -H "Content-Type: application/json" --data-binary @- https://api.pagelemon.com/v2/anonymous-sites
The reply has the live URL, a site token for updates and a private keep link. The site stays up for 72 hours unless you open the keep link and sign in. The site token stops working once you keep the site. The agent writes .pagelemon.json (and adds it to .gitignore) so the next session updates the same site.
Add the MCP server for everything else
With the MCP server, the agent works with all your sites through tools rather than shell commands: deploy (full or patch), get_site, list_versions, rollback, domains, passcodes, forms and more. Sign-in is OAuth in your browser. It works on every plan.
Claude Code
claude mcp add --transport http pagelemon https://mcp.pagelemon.com/mcp
Then run /mcp in Claude Code, pick pagelemon and sign in.
Codex
codex mcp add pagelemon --url https://mcp.pagelemon.com/mcp codex mcp login pagelemon
Cursor
Add this to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project), then sign in from the MCP section of Cursor's settings:
{
"mcpServers": {
"pagelemon": {
"url": "https://mcp.pagelemon.com/mcp"
}
}
}
GitHub Copilot in VS Code
Works with Copilot Free too. Add this to .vscode/mcp.json, click Start above the server and allow the sign-in. Use Copilot Chat in agent mode. On Copilot Business or Enterprise, your organisation may have turned MCP servers off.
{
"servers": {
"pagelemon": {
"type": "http",
"url": "https://mcp.pagelemon.com/mcp"
}
}
}
Antigravity, Gemini CLI, Windsurf, Cline and Trae: see Connect a coding tool. Check it works by asking "What sites do I have on Page Lemon?"
Updating without clobbering someone else's change
Every update carries the version number it was based on. If the live site moved on in the meantime (a teammate, or you from another chat), the publish returns version_conflict and publishes nothing. The agent reads the live files, tells you what changed and merges only after you say so. Small edits can go up as a patch: only the changed files plus a list of deleted paths.
Undo is a rollback to an earlier version, which goes live as a new version. How far back you can go depends on your plan.
Tokens, CI and machines without a browser
Make an API key in the Dashboard, under Connect your AI. Give it the deploy scope unless the job really needs to manage domains or people. Keys start with plak_ and are shown once.
curl -sS -H "Authorization: Bearer $PAGELEMON_KEY" -H "Content-Type: application/json" -d '{"workspace": "<workspace>", "name": "my-site"}' https://api.pagelemon.com/v2/sites
That makes a site in your account with no expiry. Then upload each file and publish them as a version, with base_version set to the live version when you update from CI; the REST API reference has the details. Keep the token in your CI's secret store. Never put it in .cursor/mcp.json, .vscode/mcp.json or any file you commit.
What gets uploaded, and what doesn't
- Upload the build output only. Single-page apps work: a path with no file extension falls back to
index.htmlunless you ship a404.html. - Skipped automatically:
.git/,node_modules/,.env*, source maps,.pemand.keyfiles, and other dotfiles. - Secret check: an upload that contains a recognised secret key is refused, not published.
- Not supported: server code (Node, PHP, Python) and databases. Forms and bookings come as hosted plugins that post to Page Lemon instead.
Size and rate limits by plan: Limits.
Questions
Do I need an account?
Not for the first deploy. To keep a site past 72 hours, or to use the MCP server with all your sites, you sign in (Google or email). See pricing for what a kept site includes.
Does it work with Next.js, Astro or Vite?
Yes, as long as the output is static: a static export, or a Vite build. Publish the folder the build produces. Server-side rendering and API routes don't run.
Can the agent connect a custom domain?
Yes, with the MCP server signed in and a paid plan. It returns a one-click Connect link where your DNS host supports it, otherwise the records to add.
Which transport does the MCP server use?
Streamable HTTP. Use https://mcp.pagelemon.com/mcp for coding tools and chat apps alike. Details: MCP server and tools.