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

A
Qualität der Beschreibung
88%
Vollständigkeit des Schemas
83%
Qualität der Benennung
80%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (2)

  • LOWTool 'aft_rollback' description lacks action verbin aft_rollback
  • LOWTool 'aft_health' description lacks action verbin aft_health

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~948Tokens (Tool-Definitionen)
~1.3 KBTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (0.74% von 128k Kontext)

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-http

Was es kann

Tool-Inventar

Tools (5)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟡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

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet5 Tools
verifiziertVersion nicht aufgezeichnet5 Tools