AP

aft.page

page.aft/mcp

Deploy HTML or dist/ to a live HTTPS URL. No account. Drop, MCP, or CLI.

Yes, your AI can use this right now.Answered a live MCP handshake in 597 ms with no sign-in needed and exposes 6 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://mcp.aft.page/mcp

6 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
deploy

Publish to a live URL. Pass html (one page) OR files (a built site, or a small app's source). Plain HTML → html. Vite/React → npm run build, then files from dist/. Next static export → files from out/; a static site needs index.html. Flask/FastAPI/Django/Express → the source files with requirements.txt or package.json; aft builds and runs it. Never upload node_modules, .venv, or .next/. Fi

deploy_repo

Same engine as aft.page/run: public GitHub URL → detect → build → live URL. Static is instant; Vite and Next.js build in the background (polls until live or failed). Private repos are refused. For a local project dir, use hosted CLI aft deploy instead.

aft_deploysread-only

List the versions (v1, v2…) of a slug with their label, door, commit and whether each is live or a held preview. Needs edit_token from .aft/state.json (or the first deploy). Same history the project UI shows after claim.

aft_rollbackcan modify

Point the live slug at a prior version from aft_deploys, by version number or deploy_id. Same URL. Needs edit_token from .aft/state.json. Claim not required.

aft_promote

Make a held preview version live at the same URL. Pass version (e.g. 4) or deploy_id from aft_deploys. Needs edit_token.

aft_healthread-only

Ping the aft.page deploy API.

Alternatives in Developer Tools

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”