MCP-Server

Zuletzt aktualisiert: 2026-09-08

hdply bringt einen eingebauten MCP-Server mit. Jeder MCP-Client — Claude Code, Claude Desktop oder ein eigener Agent — kann Ihre Sites auflisten, eine anlegen, das live geschaltete HTML lesen, eine neue Version veröffentlichen und die Deploy-Historie einsehen. Fünf Tools, ein API-Schlüssel, nichts lokal auszuführen.

Sicher genug für einen Agenten

Es gibt kein Lösch-Tool. Eine Site zu entfernen geht absichtlich nur über die Web-Konsole. Ein Agent mit vollen Deploy-Rechten kann eine schlechte Version veröffentlichen, aber Ihre Arbeit nicht zerstören.

Jeder Deploy — von Mensch oder Agent — wird versioniert. Ein falscher Deploy ist in der Konsole mit einem Klick wiederhergestellt, und get_deploy_history zeigt genau, welche Deploys über MCP kamen ("source": "mcp"). Das ist der Unterschied zu einem allgemeinen Deployment-MCP: hdply ist auf eine HTML-Datei pro Site begrenzt, der schlimmste Fall ist also eine Seite, die eine Minute lang falsch aussieht.

Der Hauptanwendungsfall

Claude schreibt Ihnen eine Seite — ein Konzept, ein Dashboard, ein Mockup — als HTML-Artefakt. Statt die Datei zu speichern und irgendwo hochzuladen, sagen Sie „veröffentliche das“, und dieselbe Unterhaltung endet mit einer öffentlichen URL zum Verschicken. Später ist „ändere die Überschrift und veröffentliche neu“ wieder nur ein Zug.

Verbinden

Claude Code, ein Befehl:

claude mcp add --transport http hdply https://api.app.hdply.com/mcp \
  --header "Authorization: Bearer hdply_sk_…"

Claude Desktop, in claude_desktop_config.json (über mcp-remote, da Desktop nur lokale Befehle startet):

{
  "mcpServers": {
    "hdply": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://api.app.hdply.com/mcp",
               "--header", "Authorization: Bearer hdply_sk_…"]
    }
  }
}

Jeder andere Client: Es ist ein zustandsloser Streamable-HTTP-Endpunkt. Senden Sie JSON-RPC an die URL unten mit demselben Bearer-Header.

POST https://api.app.hdply.com/mcp
Authorization: Bearer hdply_sk_…
Content-Type: application/json

{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}

Den Schlüssel erstellen Sie im Konsolen-Dashboard (Karte „API key“). Er wird einmal angezeigt und gewährt Zugriff auf alle Sites des Kontos — behandeln Sie ihn wie ein Passwort.

Tools

Jedes Tool nimmt ein JSON-Objekt entgegen und liefert Textinhalt zurück. Fehler kommen als Text mit isError: true, nie als Transportfehler, damit ein Agent den Grund lesen und es erneut versuchen kann.

list_sites

Alle Sites, die Sie verwalten können, persönlich und im Team, mit Live-URL und ob schon etwas deployt ist. Ohne Argumente.

Beispielaufruf

{ "name": "list_sites", "arguments": {} }

Ergebnis

[
  {
    "id": 42,
    "name": "Q3 proposal",
    "subroute": "k3v9x2m7q1",
    "url": "https://k3v9x2m7q1.hdply.com",
    "live": true
  },
  {
    "id": 43,
    "name": "Launch page",
    "subroute": "launch",
    "url": "https://launch.hdply.com",
    "live": false,
    "team_id": 7,
    "team_name": "Design"
  }
]

create_site

Legt eine Site an. Mit html ist sie live, sobald der Aufruf zurückkehrt, auf einer vom Server vergebenen zufälligen Subdomain; ohne bleibt sie leer bis deploy_site.

Eingabe

{
  "html":    string   // optional — full HTML document, max 1 MB; live immediately when given
  "name":    string   // optional — falls back to the HTML <title>
  "team_id": number   // optional — create inside a team (0 = personal)
}

Beispielaufruf

{
  "name": "create_site",
  "arguments": {
    "html": "<!doctype html><html><head><title>Q3 proposal</title></head><body><h1>Q3 proposal</h1></body></html>"
  }
}

Ergebnis

Site "Q3 proposal" live at https://k3v9x2m7q1.hdply.com (id 42, subroute k3v9x2m7q1)

get_site_html

Das HTML, das Besucher gerade bekommen. Vor einer Änderung lesen, damit der Agent das ändert, was wirklich live ist, nicht das, woran er sich erinnert.

Eingabe

{
  "site": string   // required — numeric project id ("42") or subdomain ("k3v9x2m7q1")
}

Beispielaufruf

{ "name": "get_site_html", "arguments": { "site": "k3v9x2m7q1" } }

Ergebnis

<!doctype html><html><head><title>Q3 proposal</title>…

deploy_site

Veröffentlicht neues HTML auf einer bestehenden Site. Live bei Rückkehr des Aufrufs, versioniert wie jeder Deploy, in der Historie mit mcp markiert.

Eingabe

{
  "site": string   // required — numeric project id or subdomain
  "html": string   // required — full HTML document, max 1 MB
}

Beispielaufruf

{
  "name": "deploy_site",
  "arguments": {
    "site": "k3v9x2m7q1",
    "html": "<!doctype html>…"
  }
}

Ergebnis

Deployed. Live at https://k3v9x2m7q1.hdply.com

get_deploy_history

Die Deploy-Historie: wer, wann, wie groß und über welchen Weg (web, api, mcp, restore). Neueste zuerst.

Eingabe

{
  "site": string   // required — numeric project id ("42") or subdomain ("k3v9x2m7q1")
}

Beispielaufruf

{ "name": "get_deploy_history", "arguments": { "site": "k3v9x2m7q1" } }

Ergebnis

[
  {
    "id": 918,
    "size": 4812,
    "hash": "3f9c1a7b2d4e6f80",
    "source": "mcp",
    "actor_email": "you@example.com",
    "created_at": "2026-09-08T09:41:12Z"
  },
  {
    "id": 902,
    "size": 4790,
    "hash": "b81e0c5d9a2f4711",
    "source": "web",
    "actor_email": "you@example.com",
    "created_at": "2026-09-07T18:02:55Z"
  }
]

Fehler

Tool-Fehler sind gewöhnliche Ergebnisse mit isError: true. Der Text beginnt mit einem stabilen Code, wo es einen gibt: file_too_large (über 1 MB), project_limit (Tariflimit erreicht), site not found. Die einzigen Fehler auf HTTP-Ebene sind Authentifizierungsfehler (401).

{ "content": [{ "type": "text", "text": "file_too_large: html exceeds the 1MB size limit" }], "isError": true }

Grenzen

Discovery

Der Server beschreibt sich unter zwei URLs ohne Authentifizierung: einer Server-Card mit der aktuellen Tool-Liste samt Schemas und dem Manifest für MCP-Verzeichnisse.

https://api.app.hdply.com/.well-known/mcp/server-card.json   # tools + schemas, live
https://api.app.hdply.com/.well-known/mcp/server.json        # registry manifest (com.hdply/hdply)

Lieber reines HTTP? Dieselben Operationen gibt es als REST-API, und hdply.com/llms.txt fasst beides für Agenten zusammen.