aft.page

page.aftPublished by aft.pageOfficial publisherv1.1.0Updated Oct 25, 2026

Deploy a folder, build output, or public GitHub repo to a live URL. Update, roll back.

VerifiedStreamable HTTPWeb executableCloud & InfrastructureDeveloper Tools

Overview

AI-generated overview

Remote MCP server that lets an assistant publish HTML, build output or a public GitHub repo to a live URL, then list versions, roll back and promote previews.

What you can do
  • Publish a single HTML page or a built site folder to a live URL
  • Build and deploy a public GitHub repository, including Next.js, Node, Python and Dockerfile apps
  • List a site's deploy versions with labels, commits and live or preview status
  • Roll the live URL back to an earlier version, or promote a held preview to live
  • Check connectivity to the deploy API
When to use it
Useful when you want a coding agent to ship a page, static build or public repo to a shareable URL without setting up hosting, and to manage later versions and rollbacks from the same conversation.
Requirements
A remote streamable HTTP endpoint; no local package or account is needed for the first deploy. Updating, listing versions, rolling back and promoting require the site's edit token, which the agent stores in .aft/state.json. Public GitHub repositories only.
Before you install
A first deploy is public immediately; claiming it is what keeps it and makes it private. The edit token is stored in .aft/state.json, which should stay out of git. Never deploy secrets such as .env files, keys or credentials. Deploying writes and publishes content to a live public URL.

Installation

In SourceWeft

  1. Open aft.page in the dashboard and add it to a workspace.
  2. 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/page.aft%2Fmcp/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.

{
  "mcpServers": {
    "aft-page": {
      "type": "http",
      "url": "https://mcp.aft.page/mcp"
    }
  }
}

README

aft.page plugin

Ask your coding agent to deploy to aft.page and get back a live, shareable URL. No account needed for the first deploy.

The plugin is two things: a skill that tells the agent how to build and ship safely, and the aft.page remote MCP server (https://mcp.aft.page/mcp) that does the upload. It adds no local code.

Install

Cursor: install aft.page from the Cursor Marketplace, or add this repo as a marketplace source.

Claude Code

text
/plugin marketplace add aft-page/plugins/plugin install aft-page@aft-page

Codex, Copilot CLI, VS Code, and other agents via the plugins installer:

bash
npx plugins add aft-page/plugins

Entire: the aft CLI as entire aft … (binary from this repo's releases, named by entire-plugin.yml):

bash
entire plugin install https://github.com/aft-page/pluginsentire aft deploy

Any MCP client (no plugin):

json
{  "mcpServers": {    "aft-page": { "type": "streamable-http", "url": "https://mcp.aft.page/mcp" }  }}

Restart the agent, then say:

Deploy this to aft.page

What it can deploy

Static sites and build output (Vite, Next.js static export), and public GitHub repos through the same engine as aft.page/run: Next.js server rendering, Node, Python (Flask, FastAPI, Django) and Dockerfile apps. The tools:

ToolDoes
deployPublish HTML or a built folder; update it with the same slug + edit token
deploy_repoBuild and publish a public GitHub repo
aft_deploysList a site's deploy history
aft_rollbackRoll back to an earlier deploy on the same URL
aft_healthCheck the connection to aft.page

Before you deploy

  • A first deploy is public immediately. Claim it (the agent returns a claim link) to keep it and to make it private.
  • The agent stores the site's edit token in .aft/state.json. Keep .aft/ out of git; the skill adds it to .gitignore.
  • Never deploy secrets: the skill excludes .env*, keys and credentials.

Layout

text
.cursor-plugin/plugin.json   Cursor manifest.claude-plugin/              Claude Code manifest + marketplace.plugin/plugin.json, .mcp.json   `npx plugins` manifest + MCPplugin.json, mcp.json        Agent Plugins manifest + MCPskills/deploy-to-aft/        the skillentire-plugin.yml            Entire CLI plugin manifest (binaries ship as releases)

Issues and questions: [email protected] · aft.page

Source: README.md at commit fbb6365

Tools

6

deploy

Deploy to aft.page

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/. First hit: preferred_slug from aft.json (include aft.json in files). Later: same slug + edit_token from .aft/state.json — every update is a new version (v1, v2…) at the same URL. Pass hold:true to keep an update as a preview until aft_promote. label names the version. Limits: 500 files, 25MB each, 100MB total.

Parametersholdhtmlfileslabelexpiresedit_tokenpreferred_slug

deploy_repo

Deploy a public GitHub 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.

Parametersurlrequired

aft_deploys

List aft.page deploy history

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.

Parametersslugrequirededit_tokenrequired

aft_rollback

Rollback aft.page site

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.

Parametersslugrequiredversiondeploy_idedit_tokenrequired

aft_promote

Promote a held aft.page version

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

Parametersslugrequiredversiondeploy_idedit_tokenrequired

aft_health

Check aft.page API

Ping the aft.page deploy API.

Takes no parameters.

Version history

2
  1. v1.1.0LatestOct 25, 2026
  2. v1.0.0Sep 16, 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 listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts