aft.page
Deploy HTML or dist/ to a live HTTPS URL. No account. Drop, MCP, or CLI.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (2)
- LOWin aft_rollback
- LOWin aft_health
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"mcp": {
"url": "https://mcp.aft.page/mcp"
}
}
}Remote-Endpunkte
https://mcp.aft.page/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (5)
🟡deploy(html, files, preferred_slug, edit_token, expires)
Publish to a live URL. Pass html (one page) OR files (built site). Plain HTML → html. Vite/React → npm run build, then files from dist/. Next static export → files from out/. Always include index.html. Never upload src/, node_modules, or .next/. First hit: preferred_slug from aft.json (include aft.json in files). Later: same slug + edit_token from .aft/state.json. Limits: 500 files, 25MB each, 100MB total.
Eingabe-Schema
{
"type": "object",
"properties": {
"html": {
"description": "One HTML document. Ignored if files is set.",
"type": "string",
"minLength": 1
},
"files": {
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string",
"minLength": 1,
"description": "Relative path, e.g. index.html"
},
"content": {
"type": "string",
"description": "UTF-8 text (or base64 if encoding=base64)"
},
"encoding": {
"type": "string",
"enum": [
"utf8",
"base64"
]
}
},
"required": [
"path",
"content"
]
}
},
"preferred_slug": {
"description": "aft.json slug. Required with edit_token.",
"type": "string",
"pattern": "^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$"
},
"edit_token": {
"type": "string",
"minLength": 1,
"description": "From first deploy / .aft/state.json. Required to update or rollback the same URL."
},
"expires": {
"type": "string",
"pattern": "^\\d+(s|m|h|d)?$",
"description": "Optional quick-view expiry, e.g. \"1h\", \"24h\", \"90s\", \"7d\". Anonymous (unclaimed) deploys only — the link 404s after this."
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡deploy_repo(url)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"description": "GitHub URL or owner/repo, e.g. https://github.com/mdn/beginner-html-site"
}
},
"required": [
"url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡aft_deploys(slug, edit_token)
List rollback-able deploys for a slug. Needs edit_token from .aft/state.json (or the first deploy). Same history the project UI shows after claim.
Eingabe-Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$",
"description": "Site slug from aft.json or .aft/state.json"
},
"edit_token": {
"type": "string",
"minLength": 1,
"description": "From first deploy / .aft/state.json. Required to update or rollback the same URL."
}
},
"required": [
"slug",
"edit_token"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡aft_rollback(slug, edit_token, deploy_id)
Point the live slug at a prior deployId from aft_deploys. Same URL. Needs edit_token from .aft/state.json. Claim not required.
Eingabe-Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$",
"description": "Site slug from aft.json or .aft/state.json"
},
"edit_token": {
"type": "string",
"minLength": 1,
"description": "From first deploy / .aft/state.json. Required to update or rollback the same URL."
},
"deploy_id": {
"type": "string",
"minLength": 1,
"description": "Prior deployId from aft_deploys"
}
},
"required": [
"slug",
"edit_token",
"deploy_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡aft_health
Ping the aft.page deploy API.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Nachweis