Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Mit Google anmelden, um Bewertungen zu schreiben.Prototyp · alle 30 Min. aktualisiert
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

SEO & GEO

von OrtaMarcoVersion 1.2.3i★ 1iLäuft auf deinem Computer
Name in der Registryio.github.OrtaMarco/seo-geo-mcp-server

So installierst du es

What it does

Audit a page's SEO and its readiness for AI answer engines: meta, schema, robots, sitemaps, AI bots.

  • Connects Läuft auf deinem Computer
  • Account or key No key needed
  • Category Marketing & Social Media

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

3/3 Prüfungen bestanden · Läuft auf deinem Computer · ✓ Befehle geprüft am 13. Nov. 2026

Zuerst: Welche KI nutzt du?

Wähle deine App, dann erscheinen die Schritte unten.

Klappt mit Claude, aber erst etwas vorbereiten

Installiere zuerst Node.js auf deinem Computer (nur einmal) · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy

Von der KI installieren lassen

Kopiere diese Nachricht in einen Claude-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.

Installiere bitte den MCP server SEO & GEO für Claude auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe Node.js mit node -v. Fehlt es, sag mir, dass ich es von https://nodejs.org/en/download installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): { "mcpServers": { "seo-geo": { "command": "npx", "args": [ "-y", "seo-geo-mcp-server" ] } } } 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Kein Schlüssel nötig. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von SEO & GEO wirklich erscheinen.

Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.

  1. Node.js installieren (falls noch nicht vorhanden)

    Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter

    node -v
    • Eine Versionsnummer wie v26.13.1 = installiert, diesen Schritt überspringen
    • "command not found" (unter Windows "is not recognized") = noch nicht installiert, oder gerade installiert und das Terminal muss neu geöffnet werden
    So öffnest du das Terminal

    Mac: ⌘ + Leertaste drücken, Terminal eingeben, Enter

    Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen

    Noch nicht installiert: Öffne die offizielle Download-Seite, wähle die LTS-Version und den Klick-Installer: .pkg auf dem Mac · .msi unter Windows. Doppelklicken und bis zum Ende durchklicken. Kein curl-Befehl nötig

    Download-Seite von Node.js öffnen ↗

    Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: node -v

    Einmal installieren, gilt für alles, was Node.js braucht

  2. Einstellungsdatei der Claude-Desktop-App öffnen

    SettingsDeveloperEdit Config

  3. Diese Einstellungen einfügen und speichern

    {
      "mcpServers": {
        "seo-geo": {
          "command": "npx",
          "args": [
            "-y",
            "seo-geo-mcp-server"
          ]
        }
      }
    }
  4. Claude beenden und neu öffnen

  5. Ausprobieren

    Nutze SEO & GEO und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Claude sagt, dass es SEO & GEO nutzt, oder ein Werkzeug von SEO & GEO in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

ChatGPT kann SEO & GEO noch nicht verbinden

SEO & GEO läuft auf deinem Computer, aber ChatGPT verbindet nur Server, die im Web laufen

Das kannst du stattdessen tun

A · Eine App nutzen, die SEO & GEO verbinden kann

  • Installiere zuerst Node.js auf deinem Computer (nur einmal) · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy
  • Installiere zuerst Node.js auf deinem Computer (nur einmal)
  • Installiere zuerst Node.js auf deinem Computer (nur einmal)
  • Installiere zuerst Node.js auf deinem Computer (nur einmal)

B · Andere in Marketing & Social Media, die mit ChatGPT funktionieren

Aus den meistgenutzten derselben Kategorie, nur solche, die per Adresse ohne Schlüssel verbinden

Klappt mit Claude Code, aber erst etwas vorbereiten

Installiere zuerst Node.js auf deinem Computer (nur einmal)

Von der KI installieren lassen

Kopiere diese Nachricht in einen Claude Code-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.

Installiere bitte den MCP server SEO & GEO für Claude Code auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe Node.js mit node -v. Fehlt es, sag mir, dass ich es von https://nodejs.org/en/download installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): claude mcp add --scope user seo-geo -- npx -y seo-geo-mcp-server 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Kein Schlüssel nötig. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von SEO & GEO wirklich erscheinen.

Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.

  1. Node.js installieren (falls noch nicht vorhanden)

    Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter

    node -v
    • Eine Versionsnummer wie v26.13.1 = installiert, diesen Schritt überspringen
    • "command not found" (unter Windows "is not recognized") = noch nicht installiert, oder gerade installiert und das Terminal muss neu geöffnet werden
    So öffnest du das Terminal

    Mac: ⌘ + Leertaste drücken, Terminal eingeben, Enter

    Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen

    Noch nicht installiert: Öffne die offizielle Download-Seite, wähle die LTS-Version und den Klick-Installer: .pkg auf dem Mac · .msi unter Windows. Doppelklicken und bis zum Ende durchklicken. Kein curl-Befehl nötig

    Download-Seite von Node.js öffnen ↗

    Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: node -v

    Einmal installieren, gilt für alles, was Node.js braucht

  2. Terminal öffnen

    Mac: Command+Leertaste drücken und Terminal tippen · Windows: PowerShell öffnen

  3. Diesen Befehl einfügen und Enter drücken

    claude mcp add --scope user seo-geo -- npx -y seo-geo-mcp-server
  4. /mcp in Claude Code eingeben

    SEO & GEO sollte in der Liste als verbunden erscheinen

  5. Ausprobieren

    Nutze SEO & GEO und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Claude Code sagt, dass es SEO & GEO nutzt, oder ein Werkzeug von SEO & GEO in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Klappt mit Cursor, aber erst etwas vorbereiten

Installiere zuerst Node.js auf deinem Computer (nur einmal)

Von der KI installieren lassen

Kopiere diese Nachricht in einen Cursor-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.

Installiere bitte den MCP server SEO & GEO für Cursor auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe Node.js mit node -v. Fehlt es, sag mir, dass ich es von https://nodejs.org/en/download installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): { "mcpServers": { "seo-geo": { "command": "npx", "args": [ "-y", "seo-geo-mcp-server" ] } } } 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Kein Schlüssel nötig. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von SEO & GEO wirklich erscheinen.

Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.

  1. Node.js installieren (falls noch nicht vorhanden)

    Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter

    node -v
    • Eine Versionsnummer wie v26.13.1 = installiert, diesen Schritt überspringen
    • "command not found" (unter Windows "is not recognized") = noch nicht installiert, oder gerade installiert und das Terminal muss neu geöffnet werden
    So öffnest du das Terminal

    Mac: ⌘ + Leertaste drücken, Terminal eingeben, Enter

    Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen

    Noch nicht installiert: Öffne die offizielle Download-Seite, wähle die LTS-Version und den Klick-Installer: .pkg auf dem Mac · .msi unter Windows. Doppelklicken und bis zum Ende durchklicken. Kein curl-Befehl nötig

    Download-Seite von Node.js öffnen ↗

    Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: node -v

    Einmal installieren, gilt für alles, was Node.js braucht

  2. Mit diesem Button Cursor öffnen

    In Cursor öffnen

    Cursor fragt nach einer Bestätigung; klicke Install

  3. KI-Chat in Cursor im Agent-Modus öffnen

  4. Ausprobieren

    Nutze SEO & GEO und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Cursor sagt, dass es SEO & GEO nutzt, oder ein Werkzeug von SEO & GEO in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Cursor abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Klappt mit VS Code, aber erst etwas vorbereiten

Installiere zuerst Node.js auf deinem Computer (nur einmal)

Von der KI installieren lassen

Kopiere diese Nachricht in einen VS Code-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.

Installiere bitte den MCP server SEO & GEO für VS Code auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe Node.js mit node -v. Fehlt es, sag mir, dass ich es von https://nodejs.org/en/download installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): { "servers": { "seo-geo": { "type": "stdio", "command": "npx", "args": [ "-y", "seo-geo-mcp-server" ] } } } 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Kein Schlüssel nötig. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von SEO & GEO wirklich erscheinen.

Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.

  1. Node.js installieren (falls noch nicht vorhanden)

    Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter

    node -v
    • Eine Versionsnummer wie v26.13.1 = installiert, diesen Schritt überspringen
    • "command not found" (unter Windows "is not recognized") = noch nicht installiert, oder gerade installiert und das Terminal muss neu geöffnet werden
    So öffnest du das Terminal

    Mac: ⌘ + Leertaste drücken, Terminal eingeben, Enter

    Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen

    Noch nicht installiert: Öffne die offizielle Download-Seite, wähle die LTS-Version und den Klick-Installer: .pkg auf dem Mac · .msi unter Windows. Doppelklicken und bis zum Ende durchklicken. Kein curl-Befehl nötig

    Download-Seite von Node.js öffnen ↗

    Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: node -v

    Einmal installieren, gilt für alles, was Node.js braucht

  2. Mit diesem Button VS Code öffnen

    In VS Code öffnen

    VS Code fragt nach einer Bestätigung; klicke Install

  3. KI-Chat in VS Code im Agent-Modus öffnen

  4. Ausprobieren

    Nutze SEO & GEO und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn VS Code sagt, dass es SEO & GEO nutzt, oder ein Werkzeug von SEO & GEO in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von VS Code abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Andere Apps mit MCP, etwa Windsurf, Zed oder Gemini CLI, fügen Server unterschiedlich hinzu. Sieh in der App-Liste nach

Alle Apps mit MCP ansehen →

JSON-Einstellungen stehen unten unter „Für Entwickler“

Hängst du fest? Frag Leute, die SEO & GEO nutzen💬 Diskussion →
Für Entwickler: Terminal-Befehle und JSON-Einstellungen

Auf deinem Computer installiert

Claude Code

claude mcp add --scope user seo-geo -- npx -y seo-geo-mcp-server

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "seo-geo": {
      "command": "npx",
      "args": [
        "-y",
        "seo-geo-mcp-server"
      ]
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "seo-geo": {
      "command": "npx",
      "args": [
        "-y",
        "seo-geo-mcp-server"
      ]
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "seo-geo": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "seo-geo-mcp-server"
      ]
    }
  }
}

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Auf einen Blick

Downloads pro Wochei
176/Wo.
Verbindung
Läuft auf deinem Computer
Neueste Versioni
1.2.3
In der Registry veröffentlichti
10. Nov. 2026
Code zuletzt geänderti
10. Nov. 2026
Entwickler
OrtaMarco
Pakete
npm: seo-geo-mcp-server
Registry-Status
Aktiv

Welche Apps ihn nutzen können

Basierend darauf, wie sich dieser Server verbindet, und auf der eigenen Doku jeder App, geprüft am 10. Nov. 2026.

Laufen auf deinem Computer in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

Alle Apps, mit Vor- und Nachteilen →

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 15. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto OrtaMarco bestätigt, dem das Repo gehört

  • ✓ Bestanden

    Wird noch gepflegt

    Code zuletzt geändert: vor 5 Tagen

  • ✓ Bestanden

    Hat eine Lizenz

    Nutzt MIT

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Veröffentlichte Schwachstellen (OSV.dev)

Noch nicht geprüft

Was wir prüfen → · JSON

Entwickler: neue Prüfung anfordern oder falsche Angaben melden

Diskussion

Fragen, Tipps teilen oder melden, dass etwas nicht geht. Sortiert nach „hilfreich“.

Noch keine Beiträge. Stell die erste Frage oder teile einen Tipp.

Beiträge hier stammen von Nutzern, nicht vom PopNx-Team.

Anmelden, um zu posten

Nutzerbewertungen

Noch keine Bewertungen

Anmelden, um eine Bewertung zu schreiben

Im Vergleich mit anderen in Marketing & Social Mediai

  • Mehr Sterne als 86 % der anderen 3959 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 85 % der anderen 3959 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 3959 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist SEO & GEO sicher?

Er hat 3 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt vor 5 Tagen geändert, und die neueste Version (1.2.3) kam vor 5 Tagen in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Relaticle, ChatbotX, X (Twitter) MCP Server by Xquik, Betterlytics, BibiGPT YouTube Video Summarizer

Ähnliche Alternativen

Gleiche Kategorie, andere Entwickler, Befehle bereits geprüft. Offizielle zuerst, dann nach Sternen.

So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Relaticle

Open-source CRM your AI agents can write to: companies, people, opportunities, tasks and notes.

von relaticleWachsend★ 1844Aktualisiert vorgestern

Läuft in der Cloud✓ vom Dienst · relaticle.com

ChatbotX

Omnichannel customer messaging, CRM contacts, flows, sequences, broadcasts, and AI automation.

von ChatbotXIOWachsend★ 1119 Sterne des ganzen ReposAktualisiert vor 9 Tagen

Läuft in der Cloud✓ vom Dienst · chatbotx.io

X (Twitter) MCP Server by Xquik

Xquik is the world's fastest and cheapest X (Twitter) data API with the most complete X data.

von Xquik-devWachsend★ 229Aktualisiert vor 3 Tagen

Läuft in der Cloud✓ xquik.com

Betterlytics

Query your Betterlytics web analytics from AI agents: traffic, funnels, journeys, errors, uptime.

von betterlyticsWachsend★ 180Aktualisiert vor 3 Monaten

Läuft in der Cloud✓ vom Dienst · betterlytics.io

BibiGPT YouTube Video Summarizer

AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.

von JimmyLvWachsend★ 141Aktualisiert vor 18 Tagen

Läuft in der Cloud✓ vom Dienst · bibigpt.co

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

seo-geo-mcp-server

An MCP server that lets an AI agent audit a page for SEO *and* GEO (Generative Engine Optimization) — on-page tags, structured data, robots.txt, sitemaps, hreflang, and whether ChatGPT, Claude, Perplexity and Gemini can actually crawl and cite you. No API keys required.

Built on the v2 MCP SDK: the server speaks the 2026-07-28 protocol revision and still accepts 2025-era clients (Claude Desktop, Claude Code, Cursor) from the same factory — one build, both eras, nothing to configure.

Ask Claude *"how is this page doing, and will AI assistants cite it?"* and it runs a full audit and hands you a graded report with prioritised fixes — instead of you pasting a URL into six different web tools.

> Audit https://example.com/guide and tell me if ChatGPT can cite it

seo_audit(url="https://example.com/guide", include_geo=true)

Overall: A (92/100) · indexable: yes Meta tags & social preview 95 (A) Heading structure 100 (A) Structured data 75 (C)

GEO readiness: B (85/100) ✅ AI crawler access 25/25 ✅ Server-rendered content 20/20 ❌ Authorship & entity 2/10

  1. Add author and Organization markup with sameAs links to official profiles.

Why this exists

Two gaps, one server.

The SEO gap: the on-page checkers are all web UIs. None of them let an agent run the audit, read the result and fix the code in the same loop.

The GEO gap: "generative engine optimization" tooling is mostly rank-tracking dashboards behind a subscription. The mechanics that actually decide whether an AI assistant can cite you are cheap to check and almost never checked:

  • Can the AI search crawlers reach you? Blocking GPTBot stops *training*. Blocking OAI-SearchBot stops you being *cited*. Most sites that meant to do the first have accidentally done the second. This server separates them.
  • Does your content exist without JavaScript? Googlebot renders JS. GPTBot, ClaudeBot, PerplexityBot and CCBot largely do not. A client-rendered page can rank fine in Google and be invisible to every AI assistant.

It is the agent-facing companion to the tools at ortamarco.me, and shares its core (the connect-time SSRF guard and host validation) with domain-security-mcp-server.

Tools

Audits
ToolWhat it does
`seo_audit` ⭐One fetch → seven weighted sections (meta, headings, content, schema, images, links, crawlability) → 0–100 score, A–F grade, prioritised fixes. include_geo=true adds the GEO dimension
`geo_audit` ⭐AI answer-engine readiness: crawler access (25), server-rendered content (20), structured data (15), extractable structure (15), authorship (10), freshness (8), depth (7)
GEO
ToolWhat it does
ai_crawler_accessResolves ~35 AI crawler tokens against robots.txt. Separates training from citation bots, flags blocks that vendors document as unenforceable, handles the Applebot→Googlebot fallback
render_checkWhether content survives without JavaScript — detects unhydrated SPA shells that AI crawlers cannot read
llms_txt_checkDetects and validates /llms.txt against the llmstxt.org proposal — and reports its real adoption status rather than implying it earns visibility
On-page
ToolWhat it does
meta_tags_checkTitle, description, canonical, robots (meta and X-Robots-Tag), lang, charset, viewport
social_preview_checkOpen Graph + Twitter Card, and verifies the og:image actually loads
heading_structureFull h1–h6 outline, multiple h1s, skipped levels, question-shaped headings
structured_data_checkJSON-LD/microdata/RDFa extraction, parse errors, and Google rich-result requirements for 21 schema types
content_analysisWord count, Flesch reading ease, thin-content detection, text-to-HTML ratio, term density (EN + ES stopwords)
image_seo_checkMissing alt text, missing dimensions (layout shift), lazy loading, WebP/AVIF adoption
Technical
ToolWhat it does
robots_txt_checkRFC 9309 parse; flags wildcard Disallow: / and 5xx responses (which Google reads as disallow-all)
sitemap_checkDiscovery via robots.txt → conventional paths; index following, gzip, 50k/50MiB limits, lastmod validity
canonical_host_checkAll four http/https × apex/www variants — do they converge on one canonical URL, and via 301 or 302?
redirect_traceHop-by-hop chain with loop and temporary-redirect detection
link_auditInternal/external split, rel attributes, generic anchor text, optional broken-link sampling
hreflang_checkBCP-47 validity, self-reference, x-default, duplicates — plus optional reciprocity verification

Every tool is read-only, declares an outputSchema and returns structuredContent (validated by the SDK) alongside human-readable Markdown (default) or JSON (response_format="json"), plus actionable error messages.

Honesty notes

This server deliberately refuses to overstate two things that most GEO content gets wrong. Both are surfaced in tool output, not buried here:

  • `llms.txt` is not an adopted standard. It is a community proposal from September 2024. No major AI vendor has documented that its crawlers read it from third-party sites, and Google has publicly said it does not. The tool reports presence and validates shape — and geo_audit deliberately does not score it. (llms-full.txt is a docs-tooling convention, not part of the proposal.)
  • Some robots.txt blocks are advisory. Perplexity-User, ChatGPT-User and meta-externalfetcher are documented *by their own vendors* as ignoring or possibly ignoring robots.txt. Reporting those as cleanly "blocked" would be misleading, so they are listed separately as unenforceable.

Crawler tokens carry a provenance field distinguishing first-party vendor documentation from community aggregators, and vendors that publish no token at all (xAI/Grok, Microsoft Copilot) are named explicitly — because a missing rule cannot be read as either allowed or blocked.

Install

Requires Node.js 20.18+. Nothing to clone — every MCP client can run it with npx.

Use it with Claude Code

claude mcp add seo-geo -- npx -y seo-geo-mcp-server

Use it with Claude Desktop or Cursor

Add to claude_desktop_config.json (or ~/.cursor/mcp.json) — see examples/:

{

"mcpServers": { "seo-geo": { "command": "npx", "args": ["-y", "seo-geo-mcp-server"] } } }

On Windows use "command": "cmd" with "args": ["/c", "npx", "-y", "seo-geo-mcp-server"]. Restart the client, then ask: *"Audit the SEO and GEO of example.com."*

Self-host (HTTP transport)

The same server speaks stateless Streamable HTTP for remote or multi-client use. One endpoint serves both protocol eras; there is no session state and no Mcp-Session-Id to carry.

TRANSPORT=http npx -y seo-geo-mcp-server

POST JSON-RPC to http://127.0.0.1:3000/mcp · health at /healthz

It is safe by default: it binds to 127.0.0.1 and only accepts localhost Host and Origin headers, which blocks DNS-rebinding attacks from a web page. To expose it — for example behind Coolify or Traefik — opt in explicitly:

VariableDefaultPurpose
TRANSPORTstdiohttp to serve Streamable HTTP
PORT3000Listening port
HOST127.0.0.1Bind address; 0.0.0.0 to accept remote connections
ALLOWED_HOSTS—Comma-separated hostnames the Host header may carry (e.g. mcp.example.com)
ALLOWED_ORIGINS—Comma-separated origins allowed to call from a browser
MCP_AUTH_TOKEN—If set, every request needs Authorization: Bearer

Binding to a non-loopback address without ALLOWED_HOSTS or MCP_AUTH_TOKEN works, but the server says so on stderr. With Docker (the image sets HOST=0.0.0.0):

docker build -t seo-geo-mcp .

docker run -p 3000:3000 -e ALLOWED_HOSTS=mcp.example.com -e MCP_AUTH_TOKEN=change-me seo-geo-mcp

Develop

npm run dev      # tsx watch (stdio)

npm test # deterministic unit tests: SSRF guard, robots matcher, nesting guard,

gzip sitemaps, SPA detection, JSON-LD, HTTP transport defaults

npm run smoke # call all 17 tools over MCP, in BOTH protocol eras, and validate

structuredContent vs outputSchema

npm run inspect # open the MCP Inspector against the built server npm run build # type-check + emit dist/

evals/ holds a 10-question LLM evaluation set (stable, verifiable) and instructions for running it — see evals/README.md.

How it works

src/

├── index.ts # transport selection: serveStdio | createMcpHandler + Express ├── server.ts # the factory: registers every tool on one McpServer ├── schemas.ts # Zod 4 outputSchema for each tool ├── core/ # pure logic, no MCP coupling — reusable & testable │ ├── validate.ts # host/URL validation and the address classifier │ ├── netguard.ts # connect-time SSRF guard (every socket's address is checked) │ ├── fetch.ts # fetch: guarded dispatcher, manual redirects, loop detection, byte caps │ ├── page.ts # HTML loading + the shared parsed-document model │ ├── meta.ts # title/description/canonical/robots, Open Graph, hreflang │ ├── content.ts # headings, readability, word counts, image SEO │ ├── structured-data.ts # JSON-LD/microdata + Google rich-result requirements │ ├── robots.ts # RFC 9309 parser and rule matcher │ ├── ai-crawlers.ts # the AI crawler registry (token, purpose, compliance, provenance) │ ├── sitemap.ts # discovery, index following, gzip, protocol limits │ ├── links.ts # link classification + broken-link sampling │ ├── redirects.ts # chain tracing + host canonicalisation │ ├── geo.ts # llms.txt, JS-rendering detection, GEO scoring │ └── seo-audit.ts # the composite audits (one fetch, every analyser) └── tools/ # thin MCP wrappers (Zod schemas, descriptions, formatting)

The core/ layer is deliberately free of any MCP types, so the same logic can power both this server and a web UI.

Security

The tools fetch URLs the caller names *and* URLs the audited site names (links, og:image, hreflang alternates, sitemap children, redirects), so every outbound connection is screened against server-side request forgery:

  • Private, loopback, link-local (cloud metadata), shared (CGNAT), multicast and reserved addresses are refused in every spelling, including IPv4 embedded in IPv6 ([::ffff:127.0.0.1]).
  • The check runs at connect time, on the address the socket is about to use, so DNS rebinding and names only an internal resolver knows are refused too. Redirects are followed by hand, every hop is screened, and loops are reported.
  • Untrusted input is bounded: 2 MB of HTML, 512 levels of nesting (what browsers keep), a backtracking-free robots.txt matcher, 10 MiB per sitemap (gzip output included), six link checks at a time, and

Nur der Anfang wird gezeigt; den Rest findest du im Repo