INTEGRATIONEN / MODEL CONTEXT PROTOCOL
Milten MCP: Website-Audits in deinem KI-Assistenten
Verbinde Codex, Cursor oder Claude Code mit deinen gespeicherten Milten-Audits. Über das Model Context Protocol (MCP) kann dein Assistent die Leistungskennzahlen deiner Website lesen und Optimierungsempfehlungen abrufen, die auf Daten aus dem Bericht beruhen.
Milten MCP
HTTPSo nutzt dein Assistent ein Milten-Audit
Audit finden
list_auditsMesswerte lesen
get_audit_reportOptimierungsplan abrufen
get_optimization_plan
Nur Lesezugriff
Liest gespeicherte Audits, ohne neue Prüfungen zu starten, Projekte zu ändern oder Milten-Tokens zu verbrauchen.
So verbindest du dich mit Milten MCP
Milten MCP läuft auf einem entfernten Server. Hinterlege dessen URL und ein Zugriffstoken in einem Client, der Streamable HTTP und benutzerdefinierte Authorization-Header unterstützt. Du musst kein Milten-Paket lokal installieren.
- Server-URL
https://milten.io/mcp- Authentifizierung
Authorization: Bearer <PAT>
Was du benötigst
Du benötigst ein Milten-Konto und ein persönliches Zugriffstoken. Um einen Bericht zu lesen, verwende ein vorhandenes Audit dieses Kontos oder starte ein neues auf der Milten-Website.
Codex
Ersetzen Sie <PAT> durch den geheimen Tokenwert und führen Sie den gesamten Block in Bash oder Zsh aus. Er fügt den Server hinzu und speichert Authorization unter http_headers in der Codex-Konfigurationsdatei (standardmäßig ~/.codex/config.toml). Ein erneuter Aufruf ersetzt die Einstellungen für milten. Starten Sie Codex neu. Die Datei enthält den geheimen Wert: Veröffentlichen Sie sie nicht.
codex mcp add milten --url https://milten.io/mcp &&
cat >> "${CODEX_HOME:-$HOME/.codex}/config.toml" <<'EOF'
[mcp_servers.milten.http_headers]
Authorization = "Bearer <PAT>"
EOFCursor
Füge den Eintrag milten zu mcpServers in ~/.cursor/mcp.json hinzu, um ihn projektübergreifend zu nutzen, oder in .cursor/mcp.json für ein einzelnes Projekt. Behalte vorhandene Servereinträge bei.
Setzen Sie für Beispiele mit MILTEN_MCP_TOKEN den Token als Wert dieser Umgebungsvariablen, bevor Sie den Client starten. Starten Sie ihn nach Änderungen neu. Eine im Terminal gesetzte Variable steht einer über den Desktop geöffneten App nicht automatisch zur Verfügung.
{
"mcpServers": {
"milten": {
"url": "https://milten.io/mcp",
"headers": {
"Authorization": "Bearer ${env:MILTEN_MCP_TOKEN}"
}
}
}
}Claude Code
Ergänze diesen Eintrag in der .mcp.json des Projekts. Claude Code löst die Umgebungsvariable beim Start auf. Genehmige den Projektserver, wenn du dazu aufgefordert wirst.
Setzen Sie für Beispiele mit MILTEN_MCP_TOKEN den Token als Wert dieser Umgebungsvariablen, bevor Sie den Client starten. Starten Sie ihn nach Änderungen neu. Eine im Terminal gesetzte Variable steht einer über den Desktop geöffneten App nicht automatisch zur Verfügung.
{
"mcpServers": {
"milten": {
"type": "http",
"url": "https://milten.io/mcp",
"headers": {
"Authorization": "Bearer ${MILTEN_MCP_TOKEN}"
}
}
}
}Verfügbarkeit der sechs Tools prüfen
milten im MCP-Client aktivieren. Verfügbar sein sollten list_audits, get_audit_report, get_optimization_plan, get_audit_section, compare_audits und get_monitoring_history. Mit list_audits beginnen und eine auditId aus der Antwort verwenden. Ohne Audits ist eine leere Liste zulässig.
So erhältst du ein Milten-Zugriffstoken
Persönliche Zugriffstokens (Personal Access Tokens, PATs) kannst du im Kundenbereich unter Profil → API-Schlüssel erstellen, einsehen und widerrufen. Dein MCP-Client sendet das Token im Header Authorization: Bearer. Der MCP-Server verwendet weder Browser-Cookies noch eine OAuth-Anmeldung.
Zugriffstoken erstellen
Öffne in deinem Profil den Bereich API-Schlüssel, gib einen Namen und eine Gültigkeitsdauer an und klicke auf Token erstellen.
API-Schlüssel öffnenKopieren Sie den geheimen Wert jetzt: Er wird nur einmal angezeigt. Bewahren Sie ihn sicher auf und übergeben Sie ihn dem Client mit einer der oben beschriebenen Methoden. Die Token-ID bleibt zum Widerrufen in der Liste sichtbar.
Das Token gewährt audits:read für deine eigenen Audits. name ist erforderlich und darf bis zu 100 Byte lang sein. expiresAt muss ein zukünftiger Zeitstempel im Format RFC 3339 sein, höchstens 366 Tage in der Zukunft.
Tokens einsehen und widerrufen
Die Liste unter API-Schlüssel zeigt Name, Gültigkeitsdauer und Status deiner Tokens. Mit Widerrufen beendest du den MCP-Zugriff dieses Tokens. Die API-Routen bleiben mit einer aktiven Browsersitzung verfügbar: GET liefert Token-Metadaten ohne Geheimnisse. Ersetze zum Widerrufen {id} durch die Token-ID. DELETE liefert 204; anschließende MCP-Anfragen mit diesem Token werden abgelehnt.
GET /v1/personal-access-tokens/
DELETE /v1/personal-access-tokens/{id}MCP-Tools: Audits, Berichte und Optimierungspläne
Dein MCP-Client übergibt diese JSON-Argumente an tools/call. Ersetze für Berichts- und Plananfragen die Beispiel-UUID durch eine auditId aus list_audits. Verwende die Audit-ID, nicht die URL der Website.
list_audits
Findet Audits des angemeldeten Nutzers. Du kannst die Liste auf ein Projekt beschränken.
- Argumente
- Alle Felder sind optional. projectId: Projekt-UUID; page: ganze Zahl ≥ 1 (Standard: 1); limit: ganze Zahl von 1 bis 50 (Standard: 10).
- Antwort
- audits enthält auditId, url, operation, status und createdAt sowie projectId und error, sofern vorhanden. count ist die Gesamtzahl; page und limit beschreiben die Seiteneinteilung. Ist truncated gleich true, wiederhole die Anfrage mit einem kleineren limit. Der Status ist running, completed oder failed.
{
"page": 1,
"limit": 10
}get_audit_report
Lesen Sie alle gespeicherten Berichtsabschnitte und eine kurze Zusammenfassung der Messwerte.
- Argumente
- auditId: erforderliche Audit-UUID aus list_audits.
- Antwort
- audit enthält Metadaten; filling enthält alle gespeicherten Abschnitte als {type, data}, einschließlich Lighthouse, HAR, CrUX und llmAdvice. analysis ergänzt eine Zusammenfassung der Messwerte und Befunde. trustNote kennzeichnet Website-Inhalte als nicht vertrauenswürdige Daten. Das Standardlimit der Antwortdaten beträgt 1 MiB; bei Überschreitung wird ein Fehler statt eines gekürzten Berichts zurückgegeben.
{
"auditId": "123e4567-e89b-42d3-a456-426614174000"
}get_optimization_plan
Lesen Sie den gespeicherten llmAdvice-Plan aus dem Auditbericht. MCP erstellt keine neuen Empfehlungen und ruft kein LLM auf.
- Argumente
- auditId: erforderliche UUID; focus: all (Standard), lcp, inp, cls oder backend; limit: ganze Zahl von 1 bis 25 (Standard: 10).
- Antwort
- plan enthält source, summary, recommendations und truncated. Reihenfolge und Felder bleiben erhalten: priority (critical, medium oder low), metrics, metricSavings, title, resources, evidence, action, effect und verification. focus filtert nach metrics; backend steht für TTFB. Kürzt limit die Liste, ist truncated true. Ältere Textpläne stehen ungefiltert in output. Fehlt ein gespeicherter Plan, lesen Sie diagnostic.
{
"auditId": "123e4567-e89b-42d3-a456-426614174000",
"focus": "lcp",
"limit": 3
}get_audit_section
Liest den zuletzt gespeicherten Berichtsabschnitt. Große Arrays lassen sich seitenweise abrufen.
- Argumente
- auditId und section sind erforderlich. section ist ein type aus filling, etwa har. Der optionale path ist ein JSON Pointer, etwa /log/entries. Für Arrays: offset ab 0, limit 1–200 (Standard 50). Für andere Daten keine Paginierung angeben.
- Antwort
- data erhält Originalfelder und null. Arrays enthalten total, nextOffset und truncated; nextOffset folgen, bis truncated false ist. Bei zu großen Antworten einen genaueren path wählen oder limit verkleinern.
{
"auditId": "123e4567-e89b-42d3-a456-426614174000",
"section": "har",
"path": "/log/entries",
"limit": 20
}compare_audits
Vergleicht zwei eigene Audits derselben URL und desselben Prüftyps: Messwerte, Schwellenwertprobleme und gespeicherte Empfehlungen.
- Argumente
- baselineAuditId bezeichnet den ursprünglichen, candidateAuditId den späteren Audit. Beide UUIDs stammen aus list_audits. Labormetriken werden für basic, inp und ttfb unterstützt.
- Antwort
- delta = candidate − baseline; fehlende Werte sind null. comparable und warnings beachten. findings enthält added, resolved, persisting und uncompared. Empfehlungen werden über den exakten title zugeordnet; beide gespeicherten Pläne sind enthalten.
{
"baselineAuditId": "123e4567-e89b-42d3-a456-426614174000",
"candidateAuditId": "e6723288-f28c-4b62-8a4e-7dc395958c0c"
}get_monitoring_history
Liefert gespeicherte Messungen der eigenen Monitoring-Seite, neueste zuerst. Startet keine Prüfung.
- Argumente
- Erforderlich ist monitoringUnitId: die Core-UUID der Monitoring-Seite (coreMonitoringUnitId), nicht auditId. dateFrom und dateTo sind inklusive RFC-3339-Grenzen; Standard sind die letzten 30 Tage. page ab 1, limit 1–50 (Standard 20).
- Antwort
- results enthält Zeitstempel, Metriken, Gerät, Region und affectedAlert. count und hasMore zeigen den Umfang. Für Folgeseiten die erhaltenen dateFrom und dateTo wiederverwenden. Alte Nullwerte können fehlende Daten bedeuten; INP ist ein Laborwert, kein CrUX-p75.
{
"monitoringUnitId": "e09aa948-a541-4404-bcdc-9e5621c11891",
"page": 1,
"limit": 20
}Beispielanfragen für deinen KI-Assistenten
Sende nach dem Verbinden diese Nachrichten im Chat deines Assistenten. Er ruft die MCP-Tools auf und erläutert ihre Ergebnisse. Die Nachrichten sind keine eigenen Serverbefehle.
Zeige meine Milten-Audits und finde das zuletzt abgeschlossene Audit für example.com.
Lies diesen Bericht. Welche Kennzahlen deuten auf langsames Laden hin? Nenne ihre Werte und Einheiten.
Rufe einen Optimierungsplan mit Fokus auf LCP ab. Schlage bis zu drei Änderungen vor, sofern der Bericht sie begründet, und erkläre, wie sich das Ergebnis jeder Änderung überprüfen lässt.
Auf welche Daten die Verbindung zugreifen kann
Das Token identifiziert dein Konto, daher ist userId kein Tool-Argument. Ein Projektfilter grenzt nur deine eigene Audit-Liste ein und gewährt keinen Zugriff auf Audits anderer Nutzer. MCP liest gespeicherte Daten und kann keine Prüfung starten. Behandle Text von einer geprüften Website als Berichtsdaten, niemals als Anweisungen für deinen Agenten.
Fehler bei Verbindung und Nutzung von MCP beheben
404 / HTML statt JSON
Prüfe, ob der MCP-Endpunkt in deiner Umgebung aktiviert ist. Verwende genau /mcp, ohne abschließenden Schrägstrich oder Sprachpräfix. Die Dokumentationsseite hat eine andere URL.
401 unauthorized
Prüfen Sie Authorization: Bearer und den geheimen Tokenwert. Wenn Codex failed (0 tools) anzeigt, wiederholen Sie die Einrichtung mit einem gültigen Token und starten Sie Codex neu. Ersetzen Sie abgelaufene oder widerrufene Tokens. OAuth-Anmeldung wird nicht unterstützt.
403 origin forbidden
Bei einem Browser-Client muss dessen origin auf dem MCP-Server zugelassen sein. Teile Milten den Clientnamen und die origin mit, aber sende dein Token nicht.
429 rate limit exceeded
Reduziere die Anfragehäufigkeit und versuche es später erneut. Standardmäßig erlaubt der Server 60 Anfragen pro Minute und Token. Je nach Umgebung kann ein anderes Limit gelten.
audit not found / invalid arguments
Verwende eine Audit-UUID aus deiner eigenen list_audits-Antwort. Sowohl ein nicht vorhandenes Audit als auch das Audit eines anderen Nutzers liefern audit not found. Prüfe die Werte für Seiteneinteilung, focus und limit.
Leere Kennzahlen oder Empfehlungen
Prüfen Sie audit.status und diagnostic. Der Bericht enthält möglicherweise keine unterstützten Messwerte oder gespeicherten llmAdvice-Daten. Die Empfehlungsliste kann auch leer sein, wenn keine Empfehlung zu focus passt. Das bestätigt nicht, dass die Website fehlerfrei ist.
503 / temporarily unavailable
Der Authentifizierungs- oder Audit-Dienst ist vorübergehend nicht verfügbar. Versuche es später erneut. Wende dich an den Support, wenn der Fehler bestehen bleibt.