Add read-only STRATO DNS MCP prototype

This commit is contained in:
Mikei386
2026-08-28 19:55:20 +02:00
commit 4754626d34
7 changed files with 599 additions and 0 deletions
+57
View File
@@ -0,0 +1,57 @@
# STRATO-DNS-MCP – Read-only-Prototyp
Dieser Prototyp prüft den undokumentierten HTTP-Leseweg des STRATO-
Kundenbereichs. Er kann sich anmelden und die CNAME-Einträge genau einer
konfigurierten DNS-Zone auflisten.
**Diese Version kann keine DNS-Einträge erstellen, ändern oder löschen.** Im
Quellcode existiert absichtlich keine Speichermethode.
## Technische Grundlage
STRATO dokumentiert für normale Hosting-Domains nur die Verwaltung im
Kunden-Login. Der öffentliche Certbot-Plugin
[`FlixMa/certbot-dns-strato`](https://github.com/FlixMa/certbot-dns-strato)
zeigt jedoch einen funktionsfähigen HTTP-Ablauf über
`https://www.strato.de/apps/CustomerService`. Der hier verwendete Leseweg wurde
ohne Certbot-Abhängigkeit neu und deutlich defensiver implementiert.
Referenzstand der Untersuchung:
`FlixMa/certbot-dns-strato@67df6dcfc3ef0035ec5aa5daf7c5b0bd8310d7fb`.
## Lokaler Test – noch nicht produktiv installieren
1. `strato.env.example` außerhalb von Git nach `strato.env` kopieren.
2. Dort Benutzername, Passwort und DNS-Zone eintragen.
3. Falls STRATO TOTP verlangt, zusätzlich TOTP-Secret und den bei STRATO
angezeigten Gerätenamen eintragen.
4. Image bauen und zunächst ausschließlich `strato_connection_status` sowie
`strato_list_cnames` testen.
Das Docker-Image wird direkt aus diesem Repository gebaut:
```sh
docker build -t strato-dns-mcp:readonly .
```
Die Offline-Tests benötigen keine Zugangsdaten und kontaktieren STRATO nicht:
```sh
python3 -m unittest -v tests/test_strato_readonly.py
```
Zugangsdaten, TOTP-Werte, Cookies und STRATO-Session-ID werden weder geloggt
noch als Toolausgabe zurückgegeben. Fehlermeldungen enthalten nur eine kurze
Fehlerklasse.
## Noch bewusst nicht enthalten
- kein Compose-Deployment
- keine Unraid-XML
- keine Hermes-Registrierung
- keine schreibenden Werkzeuge
- keine produktive Installation
Diese Teile kommen erst, wenn der Read-only-Test gegen das aktuelle STRATO-
Konto funktioniert. Falls sich der Login oder das HTML geändert hat, wird nur
der Parser angepasst; es findet kein Schreibversuch statt.