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ÜSSELContent-Type: application/jsonAccept: 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 |