seo-geo
Provides read-only access to Google Search Console data, including top search queries and pages with clicks, impressions, CTR, and position; striking distance opportunities (positions 8-20 with high potential); and URL inspection status (indexing status, coverage, last crawl, canonical URL).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@seo-geoshow me my top search queries from Google Search Console this month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SEO- und GEO-Werkzeuge für Claude
Ein kleiner MCP-Server, der Claude direkten Zugriff auf Ihre Google Search Console, auf IndexNow und auf eine Prüfung von Title und Meta-Description gibt. Fragen Sie Claude, welche Seiten fast auf Seite eins stehen, ob eine neue URL schon im Index ist oder ob Ihre Metadaten zu lang sind. Die Antworten beruhen auf echten Daten Ihrer Property statt auf Schätzungen.
Tools
Tool | Was es tut |
| Top-Suchanfragen einer Property mit Klicks, Impressionen, Klickrate und Position für einen wählbaren Zeitraum |
| Top-Seiten einer Property mit denselben Kennzahlen |
| Striking Distance: Suchanfragen auf Position 8 bis 20 mit genügend Impressionen, sortiert nach Potenzial (geschätzte Zusatzklicks bei 10 % Klickrate) |
| URL Inspection: Indexierungsstatus, Abdeckung, robots.txt, letzter Crawl und Canonical-URL aus Sicht von Google |
| Meldet URLs (direkt oder aus einer Sitemap) per IndexNow an Bing, Yandex und weitere Suchmaschinen |
| Lädt eine Seite und prüft Title (maximal 60 Zeichen) und Meta-Description (70 bis 155 Zeichen) gegen die strengeren Bing-Grenzen, mit Befund und Kürzungshinweis |
meta_laengen_pruefen funktioniert ohne jede Einrichtung. Für die gsc_*-Tools brauchen Sie ein Google-Dienstkonto, für indexnow_melden einen IndexNow-Schlüssel.
Related MCP server: gsc-mcp-server
Voraussetzungen
Node.js 20 oder neuer
Eine bestätigte Property in der Google Search Console
Ein Google-Cloud-Projekt (kostenlos), in dem Sie ein Dienstkonto anlegen dürfen
Für IndexNow: Schreibzugriff auf das Stammverzeichnis Ihrer Website
Installation
Laden Sie das Repository herunter oder klonen Sie es, dann im Projektordner:
npm install
npm run buildDer Server liegt danach unter dist/index.js. Ein kurzer Selbsttest ohne Zugangsdaten startet den Server, listet die Tools und prüft die Metadaten einer Seite:
npm run selbsttest https://www.example.com/Einrichtung
1. Dienstkonto in Google Cloud anlegen
In der Google Cloud Console ein Projekt anlegen oder auswählen.
Unter "APIs und Dienste" die Google Search Console API aktivieren.
Unter "IAM und Verwaltung", "Dienstkonten" ein neues Dienstkonto anlegen. Rollen im Projekt sind nicht nötig.
Beim Dienstkonto unter "Schlüssel" einen neuen Schlüssel vom Typ JSON erstellen und die Datei an einem sicheren Ort außerhalb des Repositorys speichern.
Falls Ihre Organisation das Erstellen von Schlüsseln per Richtlinie blockiert, muss eine Administratorin oder ein Administrator die Richtlinie für dieses Projekt freigeben.
2. Dienstkonto in der Search Console freigeben
In der Search Console die Property öffnen.
"Einstellungen", "Nutzer und Berechtigungen", "Nutzer hinzufügen".
Die E-Mail-Adresse des Dienstkontos eintragen (Feld
client_emailin der JSON-Datei, endet aufiam.gserviceaccount.com).Berechtigung "Uneingeschränkt" wählen. Leistungsdaten funktionieren auch eingeschränkt, die URL-Prüfung braucht uneingeschränkten Zugriff.
Der Server nutzt nur den Lese-Scope webmasters.readonly. Er kann in der Search Console nichts verändern.
3. IndexNow-Schlüsseldatei anlegen
Einen Schlüssel erzeugen (8 bis 128 Zeichen, Buchstaben, Ziffern und Bindestriche), zum Beispiel:
node -e "console.log(crypto.randomUUID())"Eine Textdatei
<schluessel>.txtim Stammverzeichnis der Website ablegen, deren einziger Inhalt der Schlüssel ist. Sie muss unterhttps://www.example.com/<schluessel>.txterreichbar sein.Den Schlüssel als
INDEXNOW_KEYkonfigurieren (siehe unten) oder beim Aufruf als Parameter übergeben.
Umgebungsvariablen
Variable | Bedeutung |
| Pfad zur Service-Account-JSON oder deren kompletter Inhalt |
| Alternative zu |
| Standard-Property, z. B. |
| IndexNow-Schlüssel |
| Optional: Host, z. B. |
| Optional: abweichende URL der Schlüsseldatei |
| Optional: anderer IndexNow-Endpunkt, Standard |
Property, Host und Schlüssel lassen sich bei jedem Aufruf auch als Parameter übergeben. So arbeiten Sie mit mehreren Websites in einer Konfiguration.
Konfiguration für Claude Code
claude mcp add seo-geo --scope user \
--env GSC_SA_JSON=/pfad/zu/service-account.json \
--env GSC_PROPERTY=sc-domain:example.com \
--env INDEXNOW_KEY=ihr-indexnow-schluessel \
-- node /pfad/zu/mcp-seo-geo-werkzeuge/dist/index.jsMit claude mcp list prüfen Sie, ob der Server verbunden ist. In einer Sitzung zeigt /mcp die verfügbaren Tools.
Konfiguration für Claude Desktop
Tragen Sie den Server in claude_desktop_config.json ein (Windows: %APPDATA%\Claude\, macOS: ~/Library/Application Support/Claude/) und starten Sie Claude Desktop neu:
{
"mcpServers": {
"seo-geo": {
"command": "node",
"args": ["C:/pfad/zu/mcp-seo-geo-werkzeuge/dist/index.js"],
"env": {
"GSC_SA_JSON": "C:/pfad/zu/service-account.json",
"GSC_PROPERTY": "sc-domain:example.com",
"INDEXNOW_KEY": "ihr-indexnow-schluessel",
"INDEXNOW_HOST": "www.example.com"
}
}
}
}Beispiel-Prompts
"Welche Seiten stehen fast auf Seite eins? Zeig mir die zehn mit dem größten Potenzial und schlag für die ersten drei konkrete Verbesserungen vor."
"Was waren in den letzten 90 Tagen die Top-Suchanfragen, und bei welchen ist die Klickrate auffällig niedrig?"
"Ist https://www.example.com/neue-seite schon im Google-Index? Wann wurde sie zuletzt gecrawlt?"
"Prüf Title und Meta-Description von https://www.example.com/leistungen und formulier eine Fassung, die in die Längen passt."
"Melde alle URLs aus https://www.example.com/sitemap.xml per IndexNow."
Wichtige Hinweise
Zugangsdaten nie committen. Service-Account-JSON und
.env-Dateien gehören nicht ins Repository. Die mitgelieferte.gitignoreschließt JSON-Dateien außer den Projektdateien aus. Wurde ein Schlüssel versehentlich veröffentlicht, löschen Sie ihn sofort in der Google Cloud Console und erstellen einen neuen.Search-Console-Daten sind 2 bis 3 Tage verzögert. Der Zeitraum endet deshalb automatisch drei Tage vor heute. Neue Seiten tauchen erst nach Indexierung und einigen Tagen in den Leistungsdaten auf.
IndexNow erreicht Google nicht. Für Google bleiben Sitemap und die Search Console der Weg, die URL-Prüfung zeigt den Stand.
Längen sind Zeichen, keine Pixel. Google kürzt pixelbasiert, die Zeichen-Grenzen sind eine sichere Faustregel für Bing und Google.
Autor
André Heiner, KI-Engineer aus Wiesbaden. Ich baue KI-Agenten und Automatisierungen, die im Betrieb laufen, und schule Teams zur KI-Kompetenz nach Artikel 4 der EU-KI-Verordnung.
heiner.io · Termin: heiner.io/termin
Lizenz: MIT
Available Tools
6 toolsgsc_fast_seite_einsSearch Console: fast auf Seite einsARead-only
Findet Suchanfragen in Striking Distance: Kombinationen aus Suchanfrage und Seite auf Position 8 bis 20 mit genügend Impressionen. Sortiert nach Potenzial (geschätzte zusätzliche Klicks bei 10 % Klickrate). Ideal, um zu entscheiden, welche Seiten zuerst überarbeitet werden.
| Name | Required | Description | Default |
|---|---|---|---|
| tage | No | Zeitraum in Tagen bis zum letzten verfügbaren Datentag (Standard 28, maximal 480). | |
| limit | No | Anzahl der Zeilen (Standard 25). | |
| pos_bis | No | Schlechteste Position im Band (Standard 20). | |
| pos_von | No | Beste Position im Band (Standard 8). | |
| property | No | Search-Console-Property, z. B. sc-domain:example.com (Domain-Property) oder https://www.example.com/ (URL-Präfix). Ohne Angabe wird GSC_PROPERTY verwendet. | |
| min_impressionen | No | Mindestanzahl Impressionen, damit eine Zeile zählt (Standard 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds real behavioral context beyond that: the scoring methodology (estimated additional clicks assuming a 10% CTR) and the impression/position gating, which tells the agent how rows are ranked and why some data is absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what is found, then the ranking basis, then the use case — no filler. Minor imprecision in calling the results 'Suchanfragen' before clarifying they are query+page combinations, but the structure is efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, zero-required-parameter tool with fully documented schema, the description covers purpose, filtering logic, ranking, and use case. With no output schema, it could say a bit more about the shape of returned rows (which columns the agent will see), which is the only real remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters including defaults and bounds. The description only restates the band (8–20) and the impression threshold conceptually; it adds no syntax, format, or interaction detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it finds query+page combinations in a defined striking-distance band (positions 8–20) with sufficient impressions, and it discloses the sort order (estimated extra clicks at 10% CTR). The query+page granularity and the position band distinguish it from the broader sibling gsc_suchanfragen without needing to name it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete decision scenario — 'Ideal, um zu entscheiden, welche Seiten zuerst überarbeitet werden' — which tells the agent when this output is the right input for prioritization. It stops short of naming alternatives or exclusion conditions (e.g. when to use gsc_suchanfragen instead), so it is clear context without full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_seitenSearch Console: Top-SeitenARead-only
Liefert die Seiten einer Google-Search-Console-Property mit den meisten Klicks, inklusive Impressionen, Klickrate und durchschnittlicher Position.
| Name | Required | Description | Default |
|---|---|---|---|
| tage | No | Zeitraum in Tagen bis zum letzten verfügbaren Datentag (Standard 28, maximal 480). | |
| limit | No | Anzahl der Zeilen (Standard 25). | |
| property | No | Search-Console-Property, z. B. sc-domain:example.com (Domain-Property) oder https://www.example.com/ (URL-Präfix). Ohne Angabe wird GSC_PROPERTY verwendet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description usefully adds that results include impressions, CTR and average position, but says nothing about ordering guarantees, result limits, or how the default property (GSC_PROPERTY) is resolved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states resource, ranking basis and returned metrics with no filler. It is efficient, though it spends its only sentence on output content rather than routing guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, fully-optional-parameter, read-only tool with 100% schema coverage and no output schema, the description covers what an agent needs: what the rows are and which metrics come back. Only the missing sibling routing and ordering behavior keep it from being complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: all three parameters (tage, limit, property) are fully documented in the schema, including defaults and bounds. The description adds no parameter-level detail, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ("Liefert") and resource ("Seiten einer Google-Search-Console-Property"), plus the ranking criterion ("mit den meisten Klicks") and the metrics returned. It is clearly distinct in content from a query-level tool, but it never names or contrasts with the sibling gsc_suchanfragen, so sibling differentiation is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "mit den meisten Klicks" implies this is the tool for a top-pages-by-clicks report, which is usable guidance by implication. However, there is no explicit when-to-use statement, no mention of when to prefer gsc_suchanfragen or gsc_fast_seite_eins, and no prerequisites (e.g. that a property must be configured).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_suchanfragenSearch Console: Top-SuchanfragenARead-only
Liefert die Top-Suchanfragen einer Google-Search-Console-Property mit Klicks, Impressionen, Klickrate und durchschnittlicher Position, sortiert nach Klicks.
| Name | Required | Description | Default |
|---|---|---|---|
| tage | No | Zeitraum in Tagen bis zum letzten verfügbaren Datentag (Standard 28, maximal 480). | |
| limit | No | Anzahl der Zeilen (Standard 25). | |
| property | No | Search-Console-Property, z. B. sc-domain:example.com (Domain-Property) oder https://www.example.com/ (URL-Präfix). Ohne Angabe wird GSC_PROPERTY verwendet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=true, so safety and external data source are already covered. The description adds that results are sorted by clicks and include specific metrics, which is useful context. However, it doesn't mention pagination limits, data freshness beyond what the schema says, or what happens if the property is invalid. With annotations covering the safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the core action, no wasted words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the essential purpose and metrics. For a read-only analytics tool with fully documented parameters and annotations, it is nearly complete. It could mention that results are limited by default (25 rows) or how to interpret average position, but these are minor given the schema covers limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (tage, limit, property) are fully documented in the schema itself. The description adds no additional parameter meaning, such as timezone or date-range nuances. Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: returns top search queries for a GSC property, listing the metrics (clicks, impressions, CTR, position) and the sort order. Clear for an agent. It doesn't explicitly distinguish itself from sibling gsc_seiten (likely top pages), but the 'Suchanfragen' (queries) focus is evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: query analytics data for a property. No explicit when-to-use or when-not-to-use guidance, and siblings like gsc_seiten (pages) are not referenced or contrasted. An agent must infer that this tool is for query-level data rather than page-level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_url_pruefenSearch Console: URL prüfenARead-only
Prüft eine einzelne URL über die URL Inspection API: Indexierungsstatus, Abdeckung, robots.txt, letzter Crawl und von Google gewählte Canonical-URL. Das Dienstkonto braucht in der Property Vollzugriff.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Vollständige URL, die zur Property gehört. | |
| sprache | No | Sprache der Statusmeldungen als BCP-47-Code (Standard de). | de |
| property | No | Search-Console-Property, z. B. sc-domain:example.com (Domain-Property) oder https://www.example.com/ (URL-Präfix). Ohne Angabe wird GSC_PROPERTY verwendet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and openWorldHint=true, and the description adds meaningful context beyond them: the URL Inspection API, the inspected fields, and the requirement that the service account needs full access in the property. It does not describe quota/rate-limit behavior, but the auth and return-scope disclosure is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two front-loaded sentences with no wasted wording. It first states the action and inspected result dimensions, then states the access prerequisite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the main returned inspection fields, and annotations cover the safety profile. It includes the important auth prerequisite, though it could say more about error cases or quota constraints for a live URL Inspection API call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents url, sprache, and property in detail. The description adds no parameter-specific syntax or format guidance beyond implying a single URL and referencing property access, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Prüft eine einzelne URL über die URL Inspection API' and lists inspected aspects. It implicitly distinguishes this single-URL inspection from sibling list/report tools, though it does not name those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'eine einzelne URL' and the URL Inspection API context, but the description gives no explicit when-to-use/when-not guidance or alternatives among siblings such as gsc_suchanfragen or gsc_seiten. The access prerequisite is stated, but not routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
indexnow_meldenIndexNow: URLs meldenAIdempotent
Meldet neue oder geänderte URLs per IndexNow an Bing, Yandex und weitere Suchmaschinen. URLs direkt oder über eine Sitemap übergeben. Schlüssel und Host kommen aus den Parametern oder aus INDEXNOW_KEY und INDEXNOW_HOST. Die Schlüsseldatei muss unter https:///.txt erreichbar sein.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | IndexNow-Schlüssel. Standard: INDEXNOW_KEY. | |
| host | No | Host ohne Protokoll, z. B. www.example.com. Standard: INDEXNOW_HOST oder Host der ersten URL. | |
| urls | No | Liste vollständiger URLs desselben Hosts. | |
| sitemap_url | No | Alternativ oder zusätzlich: URL einer Sitemap (auch Sitemap-Index), deren URLs gemeldet werden. | |
| key_location | No | URL der Schlüsseldatei. Standard: https://<host>/<key>.txt. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds important behavioral context beyond the annotations: the requirement that the key file be reachable at a specific URL pattern, and that key/host can come from environment variables. This complements the openWorldHint and idempotentHint annotations. It does not detail error behavior or rate limits, but the key-file prerequisite is a notable addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the core action and recipients. Every sentence carries necessary information about inputs, defaults, and the key-file prerequisite, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a submission tool with no output schema: covers what it does, how to provide URLs, default sources for key/host, and the critical external requirement of the key file. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all five parameters with defaults. The description mentions key and host sources and the key file location, but adds only marginal detail beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (meldet) and resource (neue oder geänderte URLs) and names the target services (Bing, Yandex, weitere Suchmaschinen). Clearly distinguishes from siblings like gsc_url_pruefen and gsc_suchanfragen, which concern Google Search Console checks rather than IndexNow submission to multiple engines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains that URLs can be submitted directly or via a sitemap, which is a clear usage instruction. It does not explicitly state when to prefer this tool over siblings like gsc_fast_seite_eins, but the context is sufficient for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_laengen_pruefenTitle und Meta-Description prüfenARead-only
Lädt eine Seite, liest title und meta description und prüft die Längen gegen die strengeren Bing-Grenzen, die auch für Google passen: Title maximal 60 Zeichen, Meta-Description 70 bis 155 Zeichen. Liefert Befund und einen Kürzungshinweis. Braucht keine Zugangsdaten.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Vollständige URL der zu prüfenden Seite. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful behavioral context: it loads a page over the network, requires no credentials, and returns a finding plus a shortening hint. It stops short of mentioning rate limits or error behavior, so it is not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action 'Lädt eine Seite...', with no wasted clauses. Each sentence carries distinct information: what is loaded and checked, the exact thresholds and return values, and that no credentials are needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description appropriately sketches return values ('Befund und einen Kürzungshinweis'). Combined with 100% parameter coverage and annotations, an agent has enough to invoke and interpret the tool, though the exact format of the 'Befund' remains unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter (url) with 100% schema description coverage, so the schema already fully documents the parameter. The description's length thresholds describe the check performed on the page content rather than the meaning of the url parameter, so it adds nothing beyond the structured field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: loads a page, reads title and meta description, and checks lengths against specific thresholds (title max 60, meta description 70–155 characters). It is clearly about meta-length auditing rather than GSC data or indexing, but it does not explicitly name or distinguish itself from siblings like gsc_url_pruefen or gsc_fast_seite_eins.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides contextual guidance that the limits are stricter Bing limits that also suit Google, implying use for SEO meta checks, but it never states when to choose this tool over alternatives or when not to use it. No sibling tool is referenced, so the agent must infer the intended workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.1.0- First observed
gsc_fast_seite_eins - First observed
gsc_seiten - First observed
gsc_suchanfragen - First observed
gsc_url_pruefen - First observed
indexnow_melden - First observed
meta_laengen_pruefen
TDQS
Scored across 6 tools
Each tool targets a distinct SEO operation: GSC queries, GSC pages, striking-distance query-page pairs, URL inspection, IndexNow submission, and meta-length checks. Even the two inspection-like tools (URL indexing vs. meta lengths) are clearly separated by description.
All names are lowercase snake_case, but the semantic pattern is mixed: some are noun phrases (gsc_suchanfragen, gsc_seiten), one is an adjective/number phrase (gsc_fast_seite_eins), and others end with a verb (gsc_url_pruefen, indexnow_melden, meta_laengen_pruefen). The set is readable but lacks a predictable verb/noun convention.
Six tools is well within the recommended range and each appears to earn its place for a focused SEO/GSC plus IndexNow workflow. There is no obvious redundancy or bloat.
The surface covers GSC performance analysis, URL inspection, IndexNow submission, and meta checks, but notable gaps remain for a server named seo-geo: no property/site listing, no sitemap submission or validation to Google, no bulk URL inspection, and no GEO-specific or content optimization tools. Agents can do core technical SEO tasks but will hit limits on broader SEO/GEO workflows.
Maintenance
Related MCP Connectors
Live SEO workflow tools for Claude Code, Codex, and AI agents.
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
Turn Search Console data into SEO actions, content, publishing, indexing, and AI insights.
GA4, Google Ads and Search Console in Claude. Read-only OAuth, multi-account for agencies.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConnects Google Search Console with Claude AI to analyze SEO data through natural language, enabling search analytics reporting, URL inspection, indexing status checks, sitemap management, and data visualization for SEO professionals.MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to access Google Search Console data including search performance, URL indexation, sitemaps, and built-in SEO analysis tools such as trending queries, cannibalization detection, and traffic drop diagnostics.91 npm11MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying Google Search Console data, including search analytics, indexing status, and sitemap management, through natural language conversations with Claude.91 npm5MIT
- AlicenseAqualityAmaintenanceLets you ask Claude questions about your Google Search Console data and get real analysis, not raw API rows. Provides 20 tools for analysis, indexing, and safety.29868 npm123Apache 2.0