Dokumentation · Integrationen
MCP-Server für KI-Agenten
Über den MCP-Server fragt ein KI-Agent deine Websites, ihre Search-Console-Leistung, Keywords, Beiträge, Onpage-Befunde und Erreichbarkeit direkt bei evnxt ab: in Claude Code, in Cursor oder in einem eigenen Agenten. Er nutzt dieselben API-Schlüssel wie die Produkt-API und liest nur. Schreibende Werkzeuge gibt es noch nicht.
MCP (Model Context Protocol) ist der offene Standard, über den KI-Werkzeuge externe Datenquellen als „Werkzeuge“ einbinden. Der Agent sieht, welche Werkzeuge evnxt anbietet, ruft sie mit Parametern auf und bekommt strukturierte Antworten zurück.
Endpunkt
https://evnxt.de/mcp
Transport ist MCP Streamable HTTP: nur POST, zustandslos, Protokollversion 2025-11-25. Der Server meldet sich als evnxt, Version 1.1.0.
Anmeldung
Jede Anfrage trägt denselben API-Schlüssel wie für die Produkt-API (Präfix evx_live_) als Bearer-Token:
Authorization: Bearer evx_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Schlüssel legst du unter Einstellungen → API an. Ohne Schlüssel oder mit einem widerrufenen Schlüssel antwortet /mcp mit 401. Ist die API für deinen Workspace noch nicht freigeschaltet, antwortet /mcp mit 404, genau wie /api/v1.
Grenzen
Es gelten dieselben Schranken wie bei der Produkt-API, je Schlüssel: ein Minutenlimit (Vorgabe 60, bis 600) und ein Tageslimit (Vorgabe 10.000). Jede MCP-Anfrage zählt als ein Aufruf. Details und Antwortheader stehen unter Rate-Limits.
Ein Schlüssel sieht nur den Workspace, zu dem er gehört. Was der Schlüssel nicht sieht, existiert für den Agenten nicht.
Werkzeuge
Alle Werkzeuge sind nur lesend und als solche gekennzeichnet (readOnlyHint). Ein Schlüssel sieht nur die Werkzeuge, für die er den passenden Geltungsbereich hat. Die Geltungsbereiche onpage:read und monitoring:read sind neu; bestehende Schlüssel haben sie nicht. Lege dafür einen neuen Schlüssel an.
| Werkzeug | Geltungsbereich | Liefert |
|---|---|---|
list_websites |
websites:read |
Websites des Workspaces |
get_search_performance |
results:read |
Search-Console-Leistung eines Zeitraums |
get_top_movers |
results:read |
Gewinner und Verlierer |
list_keywords |
keywords:read |
Keywords einer Website |
list_articles |
articles:read |
Beiträge einer Website |
get_article |
articles:read |
ein Beitrag als Klartext |
get_onpage_findings |
onpage:read |
Befunde des letzten Onpage-Audits |
get_uptime_status |
monitoring:read |
Erreichbarkeit, Antwortzeit, SSL |
list_incidents |
monitoring:read |
bestätigte Ausfälle |
Listen liefern total, offset und next_offset. Für die nächste Seite gibst du next_offset als offset mit; null heißt Ende.
list_websites
Geltungsbereich websites:read. Liefert alle Websites des Workspaces mit ID, Name, Basisadresse, Sprache, Markt, CMS-Status und Search-Console-Status (verbunden, Status, Daten bis). Dieses Werkzeug zuerst aufrufen: die beiden anderen brauchen eine website_id.
get_search_performance
Geltungsbereich results:read. Search-Console-Leistung einer Website für einen Zeitraum: Klicks, Impressionen, CTR und durchschnittliche Position, auf Wunsch mit Vergleichszeitraum und Aufschlüsselung.
| Parameter | Bedeutung | Vorgabe |
|---|---|---|
website_id |
Pflicht; ID aus list_websites |
|
start_date, end_date |
Zeitraum als YYYY-MM-DD, höchstens 500 Tage |
die letzten 28 Tage mit Daten |
compare |
previous_period, previous_year oder none; liefert Vergleichswerte und die Veränderung in Prozent |
previous_period |
dimension |
none, page oder query; Aufschlüsselung nach Seiten oder Suchanfragen, nach Klicks sortiert |
none |
limit |
Zeilen der Aufschlüsselung, 1 bis 100 | 25 |
get_top_movers
Geltungsbereich results:read. Gewinner und Verlierer der letzten N Tage gegenüber den N Tagen davor, als Seiten oder Suchanfragen, jeweils mit Klicks, Impressionen und Position beider Zeiträume.
| Parameter | Bedeutung | Vorgabe |
|---|---|---|
website_id |
Pflicht; ID aus list_websites |
|
dimension |
query oder page |
query |
days |
7, 14, 28 oder 90 |
28 |
limit |
Einträge je Richtung, 1 bis 50 | 10 |
min_impressions |
Mindestzahl an Impressionen, damit ein Eintrag zählt | 10 |
list_keywords
Geltungsbereich keywords:read. Keywords einer Website mit Score, Suchvolumen, Schwierigkeit und Stand der Daten, nach Score sortiert.
| Parameter | Bedeutung | Vorgabe |
|---|---|---|
website_id |
Pflicht; ID aus list_websites |
|
status |
candidate, selected, planned oder rejected |
alle |
limit |
Einträge je Seite, 1 bis 100 | 50 |
offset |
Startposition zum Blättern | 0 |
list_articles
Geltungsbereich articles:read. Beiträge einer Website, neueste zuerst, mit Status, Veröffentlichung, Live-Adresse und den Search-Console-Werten der letzten 28 Tage mit Daten (Klicks, Impressionen, durchschnittliche Position).
| Parameter | Bedeutung | Vorgabe |
|---|---|---|
website_id |
Pflicht; ID aus list_websites |
|
status |
Beitragsstatus, zum Beispiel entwurf, angefragt oder publiziert |
alle |
limit |
Einträge je Seite, 1 bis 100 | 25 |
offset |
Startposition zum Blättern | 0 |
get_article
Geltungsbereich articles:read. Ein Beitrag als Klartext ohne HTML, mit Teaser, Quellen, Faktencheck- und Qualitätswert, Live-Adresse und den Klicks der letzten 28 Tage. Ein Beitrag aus einem fremden Workspace heißt „nicht gefunden“.
| Parameter | Bedeutung | Vorgabe |
|---|---|---|
article_id |
Pflicht; ID aus list_articles |
|
max_chars |
Länge des Textes, 0 bis 50.000; 0 liefert nur die Metadaten |
12.000 |
get_onpage_findings
Geltungsbereich onpage:read. Ergebnis des letzten fertigen Onpage-Audits: die Lage, die wichtigsten Maßnahmen und die Befundgruppen je Regel mit Schwere (error, warning, info) und der Zahl der Adressen, die offen, behoben oder erledigt sind. Mit rule_id kommen die betroffenen Adressen einer Regel, seitenweise. Ohne fertiges Audit gibt es einen Hinweis mit dem nächsten Termin. Der Aufruf kostet kein Kontingent.
| Parameter | Bedeutung | Vorgabe |
|---|---|---|
website_id |
Pflicht; ID aus list_websites |
|
severity |
error, warning oder info |
alle |
rule_id |
Regel, deren betroffene Adressen du sehen willst | |
only_open |
nur offene Befunde | |
limit |
Einträge je Seite, 1 bis 100 | 25 |
offset |
Startposition zum Blättern | 0 |
get_uptime_status
Geltungsbereich monitoring:read. Je überwachter Adresse der Status (up, down, unknown), die Verfügbarkeit in Prozent für 24 Stunden, 7, 30 und 90 Tage, die Antwortzeit (Mittel und p95 der letzten 24 Stunden), das SSL-Zertifikat (gültig bis, Resttage, Warnstufe) und ein laufender Ausfall. Dazu Prüfabstand und Zielgrenze deines Pakets.
| Parameter | Bedeutung | Vorgabe |
|---|---|---|
website_id |
Pflicht; ID aus list_websites |
list_incidents
Geltungsbereich monitoring:read. Bestätigte Ausfälle der letzten N Tage, neueste zuerst, mit Beginn, Ende, Dauer und Ursache (DNS, Verbindung, TLS, Zeitüberschreitung, HTTP 4xx/5xx, Pflichttext fehlt, Weiterleitung).
| Parameter | Bedeutung | Vorgabe |
|---|---|---|
website_id |
Pflicht; ID aus list_websites |
|
days |
Zeitraum in Tagen, 1 bis 365 | 30 |
limit |
Einträge je Seite, 1 bis 100 | 20 |
offset |
Startposition zum Blättern | 0 |
Besonderheiten
- Search-Console-Daten laufen zwei bis drei Tage nach. Jede Antwort nennt deshalb
data_until, den letzten Tag mit Daten. - Liegt die Website in einem Unterverzeichnis einer größeren Domain, zählen nur deren Seiten (
"scope": "directory"), wie in der evnxt-Oberfläche. - Ist keine Search Console verbunden, bekommt der Agent einen Hinweis statt eines Fehlers.
- Eine fremde oder unbekannte
website_idergibt den FehlerWebsite not found.
Sicherheit
Suchanfragen, Seitenadressen, Keywords, Beitragstitel und -texte, Audit-Texte, betroffene Adressen und andere Inhalte, die von außen stammen, stehen in den Antworten in einem Block untrusted_content. Ein Agent soll sie als Daten behandeln, nie als Anweisung. Der Server ruft selbst keine fremden Adressen ab.
Schreibende Werkzeuge gibt es noch nicht. Freigeben, Veröffentlichen und Seitenänderungen kommen später und nur mit einem eigenen Geltungsbereich.
Einrichtung
Claude Code:
claude mcp add --transport http evnxt https://evnxt.de/mcp --header "Authorization: Bearer evx_live_…"
Cursor und andere Werkzeuge mit mcp.json:
{"mcpServers":{"evnxt":{"url":"https://evnxt.de/mcp","headers":{"Authorization":"Bearer evx_live_…"}}}}
Eine Anbindung als „Connector“ in Claude.ai oder ChatGPT mit Anmeldung über dein evnxt-Konto (OAuth) gibt es noch nicht; sie kommt später.
Beispiele für Fragen an den Agenten: „Welche Suchanfragen haben in den letzten 28 Tagen am meisten Klicks verloren?“, „Vergleiche die Klicks im September mit dem Vorjahr.“, „Welche Onpage-Fehler sind noch offen, und welche Seiten betrifft der wichtigste?“, „War meine Website diesen Monat erreichbar? Liste die Ausfälle.“ oder „Welche meiner Beiträge bringen die meisten Klicks?“
Datenschutz
Was ein Agent über den MCP-Server abfragt, geht an den KI-Anbieter, den du nutzt. Dafür bist du verantwortlich. Trage den Schlüssel nur in Werkzeuge ein, denen du vertraust, und widerrufe ihn bei Verdacht unter Einstellungen → API.