API-Dokumentation

Model Context Protocol (MCP)

Der Sitequest MCP-Endpunkt ermöglicht es KI-Assistenten wie GitHub Copilot, Claude oder anderen MCP-kompatiblen Clients, direkt mit deiner Infrastruktur zu interagieren.

Übersicht

MCP (Model Context Protocol) ist ein offener Standard, der KI-Anwendungen eine sichere Verbindung zu externen Tools und Datenquellen ermöglicht. Sitequest implementiert einen zustandslosen Streamable-HTTP-MCP-Server.

  • Endpunkt: POST https://hosting.site.quest/mcp
  • Protokollversion: 2025-03-26
  • Transport: Streamable HTTP (zustandslos, JSON-Antworten)
  • Authentifizierung: Dieselben API-Schlüssel wie bei der REST-API

Verfügbare Tools

Tool Erforderlicher Scope Beschreibung
list_vms vps:read Alle VPS mit Status, Spezifikationen und Nutzungsmetriken auflisten
get_vm vps:read Detaillierte VPS-Informationen einschließlich Live-Konfiguration und Status
get_vm_monitoring vps:read CPU-/Arbeitsspeicher-/Ping-Verlauf und Ausfallstatistiken
get_vm_traffic vps:read Aktuelle Bandbreitennutzung und tägliches Traffic-Protokoll
vm_power vps:manage VPS starten, stoppen oder neustarten
vm_reinstall_os vps:manage Betriebssystem neu installieren (destruktiv, Bestätigung erforderlich)
vm_mount_iso vps:manage ISO-Image einbinden oder aushängen
vm_reset_password vps:manage Neues Root-Passwort generieren (destruktiv, Bestätigung erforderlich)
rename_vm vps:manage Anzeigenamen eines VPS aktualisieren
list_backups vps:manage Alle Sicherungen eines VPS auflisten
create_backup vps:manage Neue Sicherung erstellen (Bestätigung erforderlich)
restore_backup vps:manage VPS aus einer Sicherung wiederherstellen (destruktiv, Bestätigung erforderlich)
delete_backup vps:manage Sicherung löschen (destruktiv, Bestätigung erforderlich)
get_firewall vps:manage Firewall-Status und Regeln abrufen
manage_firewall vps:manage Regeln hinzufügen/entfernen, Firewall aktivieren/deaktivieren
exec_command vps:manage Einmaligen SSH-Befehl auf einem VPS ausführen
list_files vps:manage Verzeichnisinhalte per SFTP auflisten
read_file vps:manage Dateiinhalt per SFTP lesen
write_file vps:manage Dateiinhalt per SFTP schreiben
create_vm vps:provision Neuen VPS erstellen (erstellt Bestellung + belastet Mandat)
delete_vm vps:provision VPS beim Provider löschen (destruktiv, erfordert Bestätigung)
upgrade_vm vps:provision VPS-Ressourcen upgraden (CPU, RAM, Festplatte usw.)
list_domains domains:read Alle Domains mit Registrierungsstatus und DNS-Eintragsanzahl auflisten
get_domain domains:read Detaillierte Domain-Informationen einschließlich DNS-Einträgen und Registrar-Daten
list_dns_records domains:read DNS-Einträge einer Domain auflisten
add_dns_record domains:manage DNS-Eintrag erstellen
edit_dns_record domains:manage Vorhandenen DNS-Eintrag aktualisieren
delete_dns_record domains:manage DNS-Eintrag entfernen
set_nameservers domains:manage Domain-Nameserver aktualisieren
set_transfer_lock domains:manage Transfersperre aktivieren oder deaktivieren
set_whois_privacy domains:manage WHOIS-Datenschutz aktivieren oder deaktivieren
set_dnssec domains:manage DNSSEC aktivieren oder deaktivieren
get_authcode domains:manage Domain-Authcode (Transferschlüssel) abrufen
register_domain domains:provision Neue Domain registrieren (erstellt Bestellung + belastet Mandat)
transfer_domain domains:provision Domain zu Sitequest transferieren (erstellt Bestellung + belastet Mandat)
cancel_domain domains:provision Domain beim Registrar kündigen (destruktiv, erfordert Bestätigung)
get_order_status vps:provision oder domains:provision Bestellstatus anhand von ID oder Token abrufen

Einrichtung für VS Code / GitHub Copilot

Erstelle eine .vscode/mcp.json-Datei in deinem Workspace:

{
  "servers": {
    "sitequest": {
      "type": "http",
      "url": "https://hosting.site.quest/mcp",
      "headers": {
        "Authorization": "Bearer DEIN_API_SCHLÜSSEL"
      }
    }
  }
}

Ersetze DEIN_API_SCHLÜSSEL durch einen API-Schlüssel mit den benötigten Berechtigungen (z.B. vps:read, domains:read).

Nach dem Speichern erkennt VS Code den MCP-Server automatisch. Du kannst Copilot dann Fragen stellen wie:

  • "Liste meine VPS auf"
  • "Welche Domains habe ich?"
  • "Zeige mir die Details für Server X"

Einrichtung für andere MCP-Clients

Jeder MCP-Client, der den Streamable-HTTP-Transport unterstützt, kann sich verbinden. Konfiguriere:

  • URL: https://hosting.site.quest/mcp
  • Methode: Nur POST (GET gibt 405 zurück)
  • Header:
    • Authorization: Bearer DEIN_API_SCHLÜSSEL
    • Content-Type: application/json
    • Accept: application/json, text/event-stream

Manuelles JSON-RPC-Beispiel

Initialisierung:

curl -X POST https://hosting.site.quest/mcp \
  -H "Authorization: Bearer DEIN_API_SCHLÜSSEL" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-03-26",
      "capabilities": {},
      "clientInfo": { "name": "mein-client", "version": "1.0" }
    }
  }'

Verfügbare Tools auflisten:

curl -X POST https://hosting.site.quest/mcp \
  -H "Authorization: Bearer DEIN_API_SCHLÜSSEL" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}'

Tool aufrufen:

curl -X POST https://hosting.site.quest/mcp \
  -H "Authorization: Bearer DEIN_API_SCHLÜSSEL" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "list_vms",
      "arguments": {}
    }
  }'

Authentifizierung

MCP verwendet dasselbe API-Schlüssel-System wie die REST-API. Weitere Details zum Erstellen von Schlüsseln und Verwalten von Berechtigungen findest du unter Autorisierung.

Rate Limiting

MCP-Anfragen teilen sich dasselbe Rate-Limit wie die REST-API: 60 Anfragen pro Minute pro API-Schlüssel. Rate-Limit-Header sind in jeder Antwort enthalten.

Unterschiede zur REST-API

Merkmal REST-API MCP
Protokoll HTTP REST JSON-RPC 2.0 über HTTP
Methoden Standard-HTTP-Verben Nur POST
Antwortformat { "data": ... } JSON-RPC Result/Error
Sitzungen Zustandslos Zustandslos (kein SSE-Streaming)
Anwendungsfall Direkte Integration KI-Assistenten-Integration