Files
Strato-MCP/README.md
T

70 lines
2.5 KiB
Markdown

# STRATO-DNS-MCP
Dieser MCP verwaltet die CNAME-Einträge genau einer konfigurierten DNS-Zone im
STRATO-Kundenbereich. Er kann Einträge auflisten, anlegen, ändern und löschen.
## 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 den von STRATO selbst verwendeten HTTP-Ablauf über
`https://www.strato.de/apps/CustomerService`.
Der MCP liest vor jeder Änderung das komplette TXT/CNAME-Formular, verändert
genau den gewünschten CNAME, sendet alle übrigen Einträge unverändert zurück
und liest danach erneut zur Kontrolle. Referenzstand der Untersuchung:
`FlixMa/certbot-dns-strato@67df6dcfc3ef0035ec5aa5daf7c5b0bd8310d7fb`.
## Werkzeuge
- `strato_connection_status`
- `strato_list_cnames`
- `strato_create_cname`
- `strato_update_cname`
- `strato_delete_cname`
## Konfiguration und Start
1. `strato.env.example` außerhalb von Git nach `strato.env` kopieren.
2. Benutzername, Passwort und DNS-Zone eintragen.
3. Falls STRATO TOTP verlangt, TOTP-Secret und Gerätenamen eintragen.
4. Für Änderungen zusätzlich `STRATO_WRITE_ENABLED=true` setzen. Ohne diesen
Schalter bleiben die drei Schreibwerkzeuge gesperrt.
Das fertige Image liegt in der Gitea-Registry:
```sh
docker pull git.casaderoll.de/michael/strato-mcp:1.0.0
```
`latest` zeigt auf dieselbe freigegebene Version. Für einen lokalen
Entwicklungs-Build kann das Image weiterhin direkt aus diesem Repository
gebaut werden:
```sh
docker build -t strato-dns-mcp:latest .
```
Eine Unraid-DockerMan-Vorlage ohne Zugangsdaten liegt unter
`unraid/my-Strato-MCP.xml`. Benutzername, Passwort und TOTP-Secret werden dort
als GUI-Felder eingetragen; sensible Felder sind maskiert.
Die Offline-Tests benötigen keine Zugangsdaten, kontaktieren STRATO nicht und
prüfen auch, dass bestehende TXT- und CNAME-Einträge erhalten bleiben:
```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.
## Produktiver Funktionstest
Echte DNS-Schreibtests werden nicht automatisch ausgeführt. Nach dem Neubau
des Containers sollte ein eigens dafür vorgesehener Testname einmal angelegt,
geändert und wieder gelöscht werden. Danach stehen die neuen Werkzeuge in
Hermes nach einer frischen MCP-Verbindung beziehungsweise einer neuen Sitzung
zur Verfügung.