dynu-mcp
dynu-mcp
MCP-Server für Dynu — einen Anbieter für Dynamic DNS, Domain-Registrierung, E-Mail-Hosting und Cloud-Compute (VPS). Stellt die vollständige öffentliche Dynu REST-API v2 als MCP-Tools bereit.
Übersicht
Zustandsloser HTTP-Dienst. Es werden niemals Anmeldeinformationen gespeichert — jede Anfrage liefert ihren eigenen API-Schlüssel über einen Header, der nur für die Lebensdauer dieser einzelnen Anfrage verwendet wird.
Unterstützt gleichzeitige Anfragen; die Isolierung der Anmeldeinformationen pro Anfrage erfolgt über Python
contextvars, nicht über eine globale/ gemeinsame Client-Instanz.Einstiegspunkte:
POST /mcp(MCP-Protokoll) undGET /health(Gesundheitsprüfung).Standardport:
8080(konfigurierbar überMCP_HTTP_PORT).
Related MCP server: dynadot-mcp
Umfang
30 Tools, reduziert von einem ursprünglichen Build mit 117 Tools, die die vollständige OpenAPI-3.0-Spezifikation von Dynu abdecken. Die Plattform, hinter der dieser MCP läuft, aggregiert die Tools jedes aktivierten Anbieter-MCPs in einen einzigen Gemini/Vertex-Modellaufruf, der bei insgesamt 512 Funktionsdeklarationen gedeckelt ist — bei über 50 registrierten Anbieter-MCPs muss jeder einzelne schlank bleiben. Beibehalten, über dieselben 6 Kategorien: dns (8 — der echte GET /dns-Endpunkt von MSPbots plus Kern-CRUD für Datensätze/Dienste), email (7 — Dienstliste/-details, Konto erstellen/lesen/aktualisieren/löschen), compute (4 — Instanzliste/-details/start/stopp), domain (2 — Liste/Details), monitor (7, vollständige Kategorie), ping (2, vollständige Kategorie). Vollständig entfernt: Verwaltung der Domain-Registrierung (Glue-Records, Nameserver, automatische Verlängerung, Sperren/Entsperren), E-Mail-Schwarz-/Weißlisten-/Alias-/Verteilerlisten-/DKIM-Verwaltung und Backup-/Snapshot-/VNC-/Neuinstallationsvorgänge von Compute — siehe Bekannte Lücken. MSPbots selbst ruft nur 1 Endpunkt auf (GET /dns), der beibehalten wird.
Authentifizierung
Dynu authentifiziert mit einem einzigen statischen API-Schlüssel (zu finden im Bereich API-Anmeldeinformationen des Dynu-Kontrollpanels). Die Integrationskonvention von MSPbots sendet diesen Schlüssel als Rohwert des API-Key-Headers, und dieser Server leitet ihn genau so weiter.
HEADER Erläuterung der Autorisierungsparameter
Header | Typ | Erforderlich | Standardwert | Aufzählungswerte | Feldbeschreibung | Beispiel |
| string | Ja | Keiner | Keine | Dynu statischer API-Schlüssel, wird unverändert als |
|
Fehlt der Header, wird 401 zurückgegeben:
{
"error": "Missing credentials",
"message": "This server requires the X-Dynu-Api-Key header",
"required_headers": ["X-Dynu-Api-Key"],
"optional_headers": []
}Umgebungsvariablen
Variable | Typ | Erforderlich | Standardwert | Beschreibung |
| int | Nein |
| HTTP-Listenport |
| string | Nein |
| HTTP-Listenadresse |
| string | Nein |
| Basis-URL der Dynu-API |
MCP-Endpunkt
POST /mcp— MCP-Protokoll (streambarer HTTP-Transport)GET /health— Gesundheitsprüfung, gibt{"status": "ok"}zurück (reine lokale Lebendigkeitsprüfung, hängt nicht von der Dynu-API ab)
Werkzeugliste
Toolnamen werden aus der jeweiligen Zusammenfassung der Operation in der OpenAPI-Spezifikation des Anbieters abgeleitet (z. B. „Get a list of domains for DNS service" → dynu_get_list_domains_dns_service); die eine Namenskollision (sowohl GET /ping als auch POST /ping haben eine identische Zusammenfassung) wird durch ein _get/_post-Suffix eindeutig gemacht. body-Parameter für POST-Operationen werden als generisches dict akzeptiert — siehe den Models-Abschnitt der OpenAPI-Spezifikation des Anbieters (unten verlinkt) für die genauen Feldnamen/-typen jeder Ressource.
Kategorie | Tool | Funktion | Methode+Pfad | Parameter |
dns |
| Neuen DNS-Datensatz für den DNS-Dienst hinzufügen. | POST /dns/{id}/record | id(erforderlich), body(erforderlich, dict) |
dns |
| Neuen DNS-Dienst hinzufügen. | POST /dns | body(erforderlich, dict) |
dns |
| Details eines DNS-Datensatzes für den DNS-Dienst abrufen. | GET /dns/{id}/record/{dnsRecordId} | id(erforderlich), dns_record_id(erforderlich) |
dns |
| Details einer Domain für den DNS-Dienst abrufen. | GET /dns/{id} | id(erforderlich) |
dns |
| Liste der DNS-Datensätze für den DNS-Dienst abrufen. | GET /dns/{id}/record | id(erforderlich) |
dns |
| Liste der Domains für den DNS-Dienst abrufen. | GET /dns | |
dns |
| DNS-Datensatz aus dem DNS-Dienst entfernen. | DELETE /dns/{id}/record/{dnsRecordId} | id(erforderlich), dns_record_id(erforderlich) |
dns |
| Vorhandenen DNS-Datensatz für den DNS-Dienst aktualisieren. | POST /dns/{id}/record/{dnsRecordId} | id(erforderlich), dns_record_id(erforderlich), body(erforderlich, dict) |
domain |
| Details einer Domain-Registrierungsdomain abrufen. | GET /domain/{id} | id(erforderlich) |
domain |
| Liste der Domains für den Domain-Registrierungsdienst abrufen. | GET /domain | |
| Neues E-Mail-Konto für den E-Mail-Dienst hinzufügen. | POST /email/{id}/account | id(erforderlich), body(erforderlich, dict) | |
| Details des E-Mail-Kontos abrufen. | GET /email/{id}/account/{accountId} | id(erforderlich), account_id(erforderlich) | |
| Details eines E-Mail-Dienstes abrufen. | GET /email/{id} | id(erforderlich) | |
| Liste der E-Mail-Konten für den E-Mail-Dienst abrufen. | GET /email/{id}/account | id(erforderlich) | |
| Liste der E-Mail-Dienste abrufen. | GET /email | ||
| E-Mail-Konto aus dem E-Mail-Dienst entfernen. | DELETE /email/{id}/account/{accountId} | id(erforderlich), account_id(erforderlich) | |
| Vorhandenes E-Mail-Konto für den E-Mail-Dienst aktualisieren. | POST /email/{id}/account/{accountId} | id(erforderlich), account_id(erforderlich), body(erforderlich, dict) | |
compute |
| Instanz abrufen. | GET /compute/instance/{id} | id(erforderlich) |
compute |
| Liste der Instanzen abrufen. | GET /compute/instance | |
compute |
| Instanz starten. | GET /compute/instance/{id}/start | id(erforderlich) |
compute |
| Instanz stoppen (aussetzen). | GET /compute/instance/{id}/stop | id(erforderlich) |
monitor |
| Neuen Monitor hinzufügen. | POST /monitor | body(erforderlich, dict) |
monitor |
| Monitor löschen. | DELETE /monitor/{id} | id(erforderlich) |
monitor |
| Details eines Monitors abrufen. | GET /monitor/{id} | id(erforderlich) |
monitor |
| Liste der Monitore abrufen. | GET /monitor | |
monitor |
| Mit der Überwachung verbundene Grenzwerte. | GET /monitor/limit | |
monitor |
| Monitor pausieren. | GET /monitor/{id}/pause | id(erforderlich) |
monitor |
| Monitor fortsetzen. | GET /monitor/{id}/unpause | id(erforderlich) |
ping |
| API-Server anpingen, um die Pong-Antwort zu erhalten. | GET /ping | message(erforderlich) |
ping |
| API-Server anpingen, um die Pong-Antwort zu erhalten. | POST /ping | body(erforderlich, dict) |
Testbeispiel
# Health check
curl -s http://localhost:8080/health
# Call a tool via the MCP protocol (streamable HTTP) — requires an
# initialize handshake first per the MCP spec; abbreviated example below
# shows the tool-call request body only:
curl -s -X POST http://localhost:8080/mcp -H "X-Dynu-Api-Key: <your-dynu-api-key>" -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -H "mcp-session-id: <session-id-from-initialize>" -d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "dynu_get_list_domains_dns_service",
"arguments": {}
}
}'Live-verifiziert (2026-07-29): dynu_get_list_domains_dns_service (derselbe Endpunkt, den MSPbots selbst aufruft, null Parameter) wurde Ende-zu-Ende über diesen laufenden Server mit einem echten API-Schlüssel aufgerufen und lieferte echte DNS-Domaindatensätze für das Konto zurück.
API-Referenz
Übersicht: https://www.dynu.com/Support/API
Offizielle OpenAPI-3.0-Spezifikation (Swagger): https://www.dynu.com/files/dynu.api/Dynu.API.OAS.zip
Bekannte Lücken
Von 117 auf 30 Tools reduziert, durch ausdrückliche Benutzerentscheidung: Die Plattform, hinter der dieser MCP läuft, aggregiert die Tools jedes aktivierten Vendor-MCPs in einen einzigen Gemini/Vertex-Modellaufruf, der bei insgesamt 512 Funktionsdeklarationen gedeckelt ist – bei über 50 registrierten Vendor-MCPs muss jeder schlank bleiben. Behalten: MSPbots' echter
GET /dns-Endpunkt, Kern-CRUD für DNS-Einträge/Dienste (8), Kern-CRUD für E-Mail-Dienste/Konten (7), grundlegende Compute-Instanz- Liste/Detail/Start/Stopp (4), Domänen-Liste/Detail (2) sowie Monitor/Ping in vollem Umfang (9). Vollständig entfernt: Domänen-Registrar-Verwaltung (Glue-Records, Nameserver, Auto-Verlängerung, Sperren/Entsperren/Stornieren), E-Mail- Blacklist/Whitelist/Alias/Verteilerlisten/DKIM-Verwaltung sowie Compute- Backup/Snapshot/VNC/Neuinstallation/Passwortänderung. Jede dieser Funktionen kann auf Anfrage wieder hinzugefügt werden, wenn ein realer Anwendungsfall sie benötigt.Schreiboperationen für Compute und Domänen bleiben risikoreicher, auch nach der Kürzung –
dynu_start_instance/dynu_stop_suspend_instancewirken auf echte VPS-Instanzen. Behandeln Sie diese als destruktiv/irreversibel und bestätigen Sie sie vor dem Aufruf mit einem Menschen.body-Parameter sind untypisiert (dict) statt vollständig modelliert – der Abschnitt „Models" der OpenAPI-Spezifikation definiert das genaue Schema pro Ressource (z. B.DNS.dnsRecordA), aber die vollständige Abbildung aller als typisierte Python-Parameter war außerhalb des Rahmens. Aufrufer sollten dasbody-Dict gemäß der verlinkten Spezifikation gestalten.Nur
dynu_get_list_domains_dns_service(MSPbots' eigener Endpunkt) wurde live mit echten Kontodaten verifiziert. Die übrigen 29 Tools sind strukturell korrekt (Schema validiert, MCP-Protokolltools/listbestätigt, Tool-Anzahl nach der Kürzung erneut geprüft), aber nicht einzeln einem Smoke-Test unterzogen – mehrere sind Schreib-/destruktive Operationen, die echte DNS-Einträge, E-Mail-Konten oder VPS- Instanzen erstellen, ändern oder löschen würden, weshalb sie nicht gegen das Live- Testkonto ausgeführt wurden.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for DNSimple — domains, DNS zone records, availability, pricing and contacts.
Remote MCP for 1,500+ APIs. Vault-managed credentials; OAuth or API key. Search, load, and execute.
135 MCP tools: geo, email, phone, company, DNS, FX, equities, weather, tax, econ, intel — one key.
49 developer tools via MCP: DNS, WHOIS, IP lookup, JWT, hashing, QR, and more.
Related MCP Servers
- AlicenseBqualityAmaintenanceMCP server for Dynadot domain registrar API3 — manage domains, DNS, contacts, transfers & more6736 npm1MIT
- FlicenseCqualityCmaintenanceMCP server for Dynadot API to manage domains, DNS, contacts, nameservers, folders, and aftermarket.1001-
- AlicenseNot gradedqualityDmaintenanceEnables DNS record CRUD operations (list, get, create, update, delete) through MCP tools, provider-agnostic and secure.MIT
- FlicenseNot gradedqualityDmaintenanceEnables managing Cloudflare domains, DNS records, SSL certificates, zone operations, analytics, and cache purging via MCP or CLI.5 npm-