MCP-EINRICHTUNG

KI-Tools verbinden

Gib Claude oder ChatGPT einen echten Upfling-Deploy. Beschreib die Seite, der Assistent veröffentlicht sie. Coding-Tools wie Claude Code, Cursor, Windsurf und VS Code verbinden sich genauso.

Server
URL
https://mcp.upfling.host/mcp
Auth
Anmeldung mit deinem Upfling-Konto oder ein API-Schlüssel

Ein Endpunkt für jeden Client. Die Anmeldung über den Client läuft per OAuth, es landet also kein Geheimnis in einer Konfigurationsdatei. Ein API-Schlüssel funktioniert überall, wo du einen Header setzen kannst.

Deployst du stattdessen aus einer Pipeline? Du kannst die REST-API aus CI aufrufen, mit demselben Schlüssel.

1
Schritt 1

Client verbinden

Fang mit Claude oder ChatGPT an: eine URL einfügen, anmelden, fertig. Nichts zu installieren. Die Coding-Tools weiter unten brauchen stattdessen einen kurzen Konfigurationsausschnitt.

Claude und Claude Desktop

Öffne Einstellungen, dann Connectoren, dann Eigenen Connector hinzufügen. Nenn ihn Upfling, füg die URL unten ein und melde dich an, wenn Claude danach fragt. Sonst ist nichts auszufüllen: Claude registriert sich selbst, Upfling stellt das Token aus.

Upfling steht auch in Claudes Connector-Verzeichnis, das dieselbe Einrichtung ohne die URL erledigt. Sieh dir an, was der Connector kann.

https://mcp.upfling.host/mcp

ChatGPT

Öffne Einstellungen, dann Connectoren, dann Erstellen. Füge die URL unten ein und melde dich an, wenn ChatGPT fragt. Im normalen Chat und in Deep Research kann ChatGPT deine Seiten lesen: es durchsucht sie und holt eine Seite oder eine Datei. Zum Veröffentlichen und Bearbeiten aus ChatGPT heraus schaltest du unter Einstellungen, Connectoren den Entwicklermodus ein; vor jedem Schreibzugriff fragt es nach.

https://mcp.upfling.host/mcp

Coding-Tools

Für alle, die im Terminal oder Editor arbeiten. Anmelden bleibt der Normalfall; die Schlüssel-Variante folgt dort, wo das Tool Header unterstützt. Jedes davon wird über eine JSON-Datei konfiguriert. Wenn ein Client nach dem Einfügen nicht startet, prüfe zuerst, ob das JSON gültig ist, bevor du woanders suchst.

Claude Code

Ein Befehl fügt den Server hinzu; danach tippst du in Claude Code /mcp, wählst upfling und meldest dich an. Wenn du dich lieber nicht anmeldest, übergib einen Schlüssel als Header, oder leg das JSON als .mcp.json ab und halte den Schlüssel in einer Umgebungsvariable UPFLING_API_KEY.

Terminal
claude mcp add --transport http upfling https://mcp.upfling.host/mcp
Terminal
claude mcp add --transport http upfling https://mcp.upfling.host/mcp \
  --header "Authorization: Bearer upf_YOUR_KEY_HERE"
.mcp.json
{
  "mcpServers": {
    "upfling": {
      "type": "http",
      "url": "https://mcp.upfling.host/mcp",
      "headers": {
        "Authorization": "Bearer ${UPFLING_API_KEY}"
      }
    }
  }
}

Cursor

Speichere die Datei als .cursor/mcp.json im Projekt oder als ~/.cursor/mcp.json für überall. Cursor fragt nach der Anmeldung; füge stattdessen den headers-Block hinzu, wenn du lieber einen Schlüssel nutzt.

.cursor/mcp.json
{
  "mcpServers": {
    "upfling": {
      "url": "https://mcp.upfling.host/mcp"
    }
  }
}
.cursor/mcp.json
{
  "mcpServers": {
    "upfling": {
      "url": "https://mcp.upfling.host/mcp",
      "headers": {
        "Authorization": "Bearer upf_YOUR_KEY_HERE"
      }
    }
  }
}

Windsurf

Trag den Server in ~/.codeium/windsurf/mcp_config.json ein und setz deinen API-Schlüssel an die Stelle von upf_YOUR_KEY_HERE; die Anmeldung über Windsurf ist nicht geprüft, deshalb nutzt dieser Ausschnitt die Schlüssel-Variante. Windsurf nennt das Feld serverUrl, nicht url.

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "upfling": {
      "serverUrl": "https://mcp.upfling.host/mcp",
      "headers": {
        "Authorization": "Bearer upf_YOUR_KEY_HERE"
      }
    }
  }
}

VS Code (Copilot)

Speichere die Datei als .vscode/mcp.json. VS Code fragt nach der Anmeldung. Die zweite Variante nutzt einen inputs-Block, damit VS Code den Schlüssel einmal abfragt und in seinem eigenen Speicher hält, und nichts in Git landet.

.vscode/mcp.json
{
  "servers": {
    "upfling": {
      "type": "http",
      "url": "https://mcp.upfling.host/mcp"
    }
  }
}
.vscode/mcp.json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "upfling-api-key",
      "description": "Upfling API key",
      "password": true
    }
  ],
  "servers": {
    "upfling": {
      "type": "http",
      "url": "https://mcp.upfling.host/mcp",
      "headers": {
        "Authorization": "Bearer ${input:upfling-api-key}"
      }
    }
  }
}

Andere Clients

Jeder Client, der Streamable HTTP spricht, funktioniert mit der URL oben auf dieser Seite, per OAuth-Anmeldung oder mit einem API-Schlüssel im Header. Clients, die beides nicht können, gehen über mcp-remote.

Terminal
npx -y mcp-remote https://mcp.upfling.host/mcp \
  --header "Authorization: Bearer upf_YOUR_KEY_HERE"
2
Schritt 2

Oder einen API-Schlüssel nutzen

Für CI, Skripte oder einen Client, der keinen Browser öffnen kann. Erstelle einen Schlüssel auf der Seite API-Schlüssel und kopiere ihn; du siehst ihn nur einmal. Wo ein Ausschnitt den Platzhalter unten zeigt, füge deinen Schlüssel ein.

API-Schlüssel öffnen →

upf_YOUR_KEY_HERE

3
Schritt 3

Einen Prompt ausprobieren

Sobald der Client die Upfling-Werkzeuge auflistet, frag nach etwas Konkretem.

  • Veröffentliche dieses HTML als Seite namens portfolio.
  • Zeig mir meine Upfling-Seiten und sag mir, welche noch ausstehen.
  • Korrigiere den Tippfehler in index.html auf my-portfolio und veröffentliche neu.
  • Wie viel Speicher nutze ich, und wie viele Seiten kann ich noch anlegen?

Was der Assistent kann

Fünfzehn Werkzeuge. Der Assistent wählt sie selbst, du tippst also nie einen Werkzeugnamen, aber zu wissen, was es gibt, hilft beim Fragen.

Seiten

list_sites
Jede Seite im Konto, mit URL und Status.
get_site
Details zu einer Seite: URL, Status und letzte Änderung.
create_site
Eine neue Seite aus Textdateien veröffentlichen.
update_site
Seite umbenennen, Subdomain ändern, Passwort oder Startseite setzen.
delete_site
Seite in den Papierkorb legen oder endgültig löschen.

Dateien

write_site_files
Einzelne Dateien hinzufügen oder überschreiben. Alles andere bleibt.
replace_site_files
Den kompletten Dateisatz austauschen. Nicht enthaltene Dateien werden entfernt.
read_site_file
Eine Datei zurücklesen, direkt oder als kurzlebigen Link.
list_site_files
Dateien einer Seite mit Größe und Typ auflisten.
delete_site_files
Eine Datei entfernen. Die Seite bleibt online.

Große Dateien

request_upload
Upload-URLs für Binärdateien oder alles über 1 MB reservieren.
confirm_upload
Einen hochgeladenen Stapel veröffentlichen, sobald jede Datei da ist.

Suche

search
Findet deine Seiten und Dateien nach Name, Titel, Beschreibung, Domain oder Pfad. Hier fängt ChatGPT an.
fetch
Liest ein Suchergebnis: eine Seitenübersicht mit Dateiliste oder den Inhalt einer Datei.

Konto

get_account_info
Tarif, Seitenzahl, genutzter Speicher und was übrig ist.

Dein Assistent zeigt eventuell ein sechzehntes Werkzeug an: report_missing_feature. Es schickt uns einen Satz, wenn der Assistent etwas sucht, das Upfling noch nicht kann, und ändert nichts an deinem Konto.

Grenzen und Hinweise

  • Inline-Dateien: bis zu 200 Dateien pro Aufruf, 1 MB pro Datei, nur Text (HTML, CSS, JS, SVG, JSON).
  • Bilder, Schriften, PDFs und alles über 1 MB laufen über request_upload und confirm_upload: Der Assistent holt sich signierte Upload-URLs, lädt die Bytes selbst dorthin hoch und bestätigt dann den Stapel.
  • Tariflimits gelten genau wie im Dashboard: 2 Seiten und 25 MB im Free-Tarif, mehr in den bezahlten Tarifen.
  • Ratenlimits teilen sich mit der REST-API: 60 Anfragen pro Minute im Free-Tarif, 300 bei Lite und Pro, 600 bei Business.
  • Die Anmeldung gibt dem Client sites:read und sites:write nur für dein Konto. API-Schlüssel sind dieselben upf_-Schlüssel wie bei der REST-API; widerrufst du einen auf der Seite API-Schlüssel, stoppt jeder Client damit innerhalb von Sekunden.

Wenn etwas nicht klappt

Die Anmeldeseite öffnet sich nie
Der Client erreicht den Server nicht oder ist eine ältere Version ohne OAuth. Prüf, ob die URL auf /mcp endet, aktualisiere den Client oder nutz vorerst die Schlüssel-Variante.
401 Unauthorized
Die Anmeldung ist abgelaufen, oder der Schlüssel ist falsch, widerrufen oder ohne upf_-Präfix. Melde dich neu an oder erstelle einen neuen Schlüssel auf der Seite API-Schlüssel und aktualisiere die Konfiguration.
insufficient_scope beim Schreiben
Du hast nur Lesezugriff genehmigt. Entferne den Server aus dem Client, füge ihn erneut hinzu und bestätige beide Berechtigungen auf dem Zustimmungsbildschirm.
429 Too Many Requests
Du hast das Minutenlimit deines Tarifs erreicht. Warte, bis der Retry-After-Header abgelaufen ist, oder wechsle in einen Tarif mit höherem Limit.
Der Assistent sagt, er habe keine Upfling-Werkzeuge
Starte den Client nach dem Bearbeiten der Konfiguration neu. Die meisten Clients lesen MCP-Einstellungen nur beim Start.

API-Schlüssel sind dieselben wie bei der REST-API.