The set
Four ways in. Same deploy API. Same live URL. Do not invent a fifth format.
| Spec | AFT | |
|---|---|---|
| MCP | modelcontextprotocol.io | mcp.aft.page/mcp |
| Skills | agentskills.io | deploy-to-aft Skill in the plugin |
| Plugins | agent-plugins.org | npx plugins add vaibhavmule/aft.page |
| Unix | — | CLI + curl + HTTP API |
MCP
Thin deploy adapter — not a control plane. Tools:
deploy, deploy_repo,
aft_deploys, aft_rollback,
aft_health.
{
"mcpServers": {
"aft-page": {
"type": "streamable-http",
"url": "https://mcp.aft.page/mcp"
}
}
}
Full schemas: /mcp.md.
Skills
The plugin ships an Agent Skill (deploy-to-aft).
Compatible hosts load SKILL.md as reusable
instructions: build locally, upload artifacts, persist
.aft/state.json, return the live URL. The Skill
does not add tools — MCP already has them.
Plugins
One portable package: Skill + remote MCP. Restart the host, then ask it to deploy to aft.page.
npx plugins add vaibhavmule/aft.page
Alias: aft plugins add. Source:
vaibhavmule/aft.page
(apps/plugin).
Unix
The best protocol is still Unix.
-
Small programs that do one thing and compose:
aft deploy,curl, MCP tools. Pipe, script, cron.curl -fsSL https://aft.page/install | sh aft deploy -
The HTTP API — embed deploy in a more
complex program. Your own CLI, a background agent, a software
factory. One POST, no SDK, and you do not have to speak MCP.
await fetch("https://api.aft.page/v1/deploy", { method: "POST", headers: { "content-type": "text/html" }, body: "<h1>hello</h1>", });
Humans who do not want an agent: Drop or the same CLI.