Google Search Console MCP
Google Search Console MCP
Deutsch | Русский
A1 Google Search Console MCP verbindet eine KI-App mit der Google Search Console. Untersuchen Sie die Suchleistung, prüfen Sie, ob eine URL indexiert ist, sehen Sie sich Sitemaps an und reichen Sie eine Sitemap bei Bedarf gezielt ein oder wieder ein oder entfernen Sie sie.
Es funktioniert mit den Properties, auf die Ihr Google-Konto Zugriff hat. Wichtig ist: Es wird der exakte Property-Wert der Search Console verwendet – ein Domain-Property und eine URL-Präfix-Property sind unterschiedliche Objekte.
12 Tools. Sieben Tools lesen Properties, Suchdaten, Sitemaps und Index-Status; zwei Tools fügen ein Property hinzu oder reichen eine Sitemap ein; drei Tools können Daten entfernen oder eine beliebige API-Methode aufrufen.
Exakte Property-IDs.
https://example.com/,https://www.example.com/undsc-domain:example.comsind voneinander verschieden.list_siteszeigt den zu verwendenden Wert.Suchdaten mit Kontext. Rufen Sie Klicks, Impressionen, CTR und Position nach Datum, Seite, Suchanfrage, Land, Gerät oder Suchdarstellung ab.
Indexierung, nicht Veröffentlichung. Die URL-Untersuchung zeigt den aktuellen Google-Status; sie nimmt eine Seite nicht in den Index auf, sondern erzwingt das nicht.
Beginnen Sie mit einer reinen Lesefrage:
Zeigen Sie die Top-20-Suchanfragen für meine Property der letzten 28 Tage, mit Klicks und CTR.
Server verbinden · Anwendungsfälle entdecken · Technische Dokumentation öffnen
So funktioniert Sie es in einer Minute
Sie: Ist
https://example.com/pricingindexiert? Wenn nicht, warum?Assistent: Prüft die URL und zeigt den Index-Status, die Abdeckung, die Crawl-Informationen und die kanonischen URLs an. Es wird nichts verändert.
Sie: Prüfen Sie meine eingereichten Sitemap-Prüfe und bereiten Sie eine erneute Einreichung on denen mit Fehlern vor.
Assistent: Zeigt die Sitemap, ihre Warnungen und Fehler und fragt dann um Bestätigung, bevor sie erneut eingereicht wird.
Sie: Bestätigt.
Assistent: Reicht die ausgewählte Sitemap erneut ein. Es werden keine Wortarten verändert, und Indexierung wird nicht garantiert.
Related MCP server: mcp-gsc
Inhalt
Schnellstart
Sie benötigen Node.js 20+, ein Google-Konto mit Zugriff auf eine Search-Console-Property und OAuth-Anmeldedaten von Google Cloud.
Fügen Sie den Server zu Ihrer KI-App hinzu.
Beginnen Sie mit der Lesefragen oben.
In der App: Öffnen Sie Settings → Plugins → MCP servers, wählen Sie Add server und fügen Sie npx -y mcp-google-search-console@latest mit GOOGLE_SEARCH_CONSOLE_CLIENT_ID, GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET und GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN hinzu.
codex mcp add google-search-console \
--env GOOGLE_SEARCH_CONSOLE_CLIENT_ID=your_client_id \
--env GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET=your_client_secret \
--env GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN=your_refresh_token \
-- npx -y mcp-google-search-console@latest
codex mcp listclaude mcp add \
--env GOOGLE_SEARCH_CONSOLE_CLIENT_ID=your_client_id \
--env GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET=your_client_secret \
--env GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN=your_refresh_token \
--transport stdio --scope user google-search-console \
-- npx -y mcp-google-search-console@latest
claude mcp listÖffnen Sie Settings → Developer → Edit Config und fügen Sie hinzu:
{"mcpServers":{"google-search-console":{"command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"your_client_id","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"your_client_secret","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"your_refresh_token"}}}}Falls Edit Config nicht verfügbar ist, bearbeiten Sie auf macOS ~/Library/Application Support/Claude/claude_desktop_config.json oder auf Windows %APPDATA%\Claude\claude_desktop_config.json.
Claude-Desktop-MCP-Dokumentation
Fügen Sie unter macOS/Linux zu ~/.cursor/mcp.json oder unter Windows zu %USERPROFILE%\.cursor\mcp.json hinzu:
{"mcpServers":{"google-search-console":{"type":"stdio","command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"your_client_id","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"your_client_secret","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"your_refresh_token"}}}}Führen Sie MCP: Open User Configuration aus und fügen Sie hinzu:
{"servers":{"google-search-console":{"type":"stdio","command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"${input:gsc_client_id}","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"${input:gsc_client_secret}","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"${input:gsc_refresh_token}"}}},"inputs":[{"type":"promptString","id":"gsc_client_id","description":"Google OAuth client ID"},{"type":"promptString","id":"gsc_client_secret","description":"Google OAuth client secret","password":true},{"type":"promptString","id":"gsc_refresh_token","description":"Google OAuth refresh token","password":true}]}Prüfen Sie es mit MCP: List Servers. VS-Code-MCP-Dokumentation
Mögliche Sie können es ihm sagen
Suchchancen finden
Welche Suchanfragen und Seiten haben diesen Monat die meisten Klicks gebracht?
Welche Seiten haben im Vergleich zum vorherigen Zeitraum Klicks verloren?
Zeigen Sie Suchanfragen mit
mcp, deren mittlere Position unter 10 liegt.
Indexstatus und Sitemaps prüfen
Ist diese URL indexiert? Zeigen Sie Abdeckung, Crawl-Informationen und kanonische URLs.
Welche eingereichten Sitemaps haben Fehler oder Warnungen?
Reichen Sie diese Sitemap nach der Anzeige ihres aktuellen Status erneut ein.
Properties sorgfältig verwalten
Listen Sie die Search-Console-Properties auf, zu denen ich Zugriff habe.
Fügen Sie den genauen Property-Wert hinzu; die Inhaberschaft prüfe ich separat.
Entfernen Sie diese Property nach der Bestätigung aus meinem Konto.
So funktionieren Search-Console-Properties
Eine URL-Präfix-Property-Site muss Protokoll und abschließenden Slash enthalten, zum Beispiel https://example.com/. Eine Domain-Property wird als sc-domain:example.com angeben. Eine Ähnliche Übereinstimmung führt zu 403 oder 404, verwenden Sie also den exakten Wert, den list_sites zurückgibt.
add_site registriert nur eine Property. Die Verifikation erfolgt weiterhin über die Oberfläche der Search Console oder die Site-Verification-API. Suchdaten beziehen sich auf die Pacific Time; end_date ist mit inkludiert und finale Analytics-Datenlaufen in der Regel zwei bis drei Tage hinterher. data_state: "all" kann frischere, sich noch ändernde Zeilen enthalten.
Was geändert werden kann
Operation | Was passiert | Bestätigungsgrenze |
Properties, Analysen, Sitemaps und URL-Status abrufen | Liest Search Console-Daten | Keine Änderung |
Property hinzufügen | Fügt einen Property-Eintrag hinzu; die Überprüfung ist nicht enthalten | Ändert den Konto-Zugriff |
Sitemap einreichen oder erneut einreichen | Fordert Verarbeitung einer Sitemap an | Ändert den Search-Console-Zustand |
Property löschen | Hebt die Property vom Konto, Google-Daten sind nicht enthalten | Destruktiv |
Sitemap löschen | Entfernt eine eingereichte Sitemap | Destruktiv |
Direkte API-Anfrage | Kann einen Schreib- oder Lösch-Endpunkt aufrufen | Potenziell destruktiv |
Der KI-Client steuert die Bestätigungsabfragen. Der Server kennzeichnet Lese-, Schreib- und destruktive Aufrufe, damit der Client eine reine Prüfung von einer echten Änderung unterscheiden kann.
Zugriff einrichten
Search Console-Daten erfordern Google OAuth 2.0; ein API-Schlüssel reicht nicht.
Erstellen Sie ein oder wählen Sie Google Cloud-Projekte und aktivieren Sie die Google Search Console API.
Konfigurieren Sie den OAuth-Zustimmungsbildschirm und erstellen Sie einen Desktop-OAuth-Client.
Verwenden Sie den OAuth 2.0 Playground mit Eigene OAuth-Anmeldedaten verwenden, um das Google-Konto mit Zugriff auf die Property zu autorisieren und ein aktualisierbar-Token zu erhalten.
Verwenden Sie den Bereich
https://www.googleapis.com/auth/webmasters, um Sitemaps- und Property-Änderungen abzudecken. Verwenden Siehttps://www.googleapis.com/auth/webmasters.readonlynur, wenn Sie Read-Only-Zugriff explizit benötigen.
Refresh-Tokens im Testmodus können nach sieben Tagen ablaufen. Legen die OAuth-App öffentlichs oder verwenden eine interne Workspace-App für dauerhaften Zugriffen. Behandeln Sie Client-Secret und Refresh-Tokenang geheim.
Konfiguration
Variable | Erforderlich | Beschreibung |
| Ja* | OAuth-Client-ID. |
| Ja* | OAuth-Client-Secret. |
| Ja* | OAuth-Refresh-Token. |
| Ja* | Kurzlebiges Alternative zum OAuth-Trio. |
| Nein | Überschreiben der Basis-URL der API. |
| Nein | Timeout pro Anfrage; Standard |
| Nein | Wiederholungen bei temporären Fehlern; Standard |
* Sie müssen entweder das OAuth-Trio oder ein Zugriffstoken angeben.
Daten, Grenzwerte und Hintergrundarbeit
Laufzeit. Solcher lokaler Server ruft Google auf und sendet anonyme Telemetrie mit Installations-ID, Versionen und Werkzeugnummern – niemalstaken OAuth-Tokens, Eigenschaftsdaten. Setzen Sie
ASKADS_TELEMETRY=0, um etwasemessen.API-Limits. URL-Ausrückpansion erlaubt 2.000 Preisprobe pro Property und Tag sowie 600 pro Minute. Analytics liefert höchsten 25.000 Zeilen pro Anfrage; anonymisierte Long-Tail-Abfragen werden nie zurückgegeben. Verwenden Sie Pagination und prüfen Sie nicht ganze Sites einzelner HTML.
Keine Hintergrundüberwachung. Es funktioniert nur, wenn Tools werden.in verwenden bleiben. Wenn Ihre KI-App geplante Aufgaben unterstützt, können Sie regelmäßig eine Sitemap oder eine wichtige URL prüfen.
Technische Dokumentation
MCP-Funktionskatalog – aufgabenorientierte Inhalte.
Support
Fehler gefunden oder Anwendungsszenario? Neues Issue erstellen oder uns bei Telegram abrufen.
Available Tools
18 toolsadd_siteAdd a propertyAIdempotent
Adds a property to the account's Search Console set. The property starts UNVERIFIED (permissionLevel siteUnverifiedUser) and most data calls will return 403 until it is verified — verification happens through the Search Console UI or the separate Site Verification API, not through this API. Success is an empty API response (surfaced as { ok: true, added }). Requires the full webmasters OAuth scope (the readonly scope cannot mutate).
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | The property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even with annotations available (readOnlyHint=false, idempotentHint=true, destructiveHint=false), the description adds substantial behavioral context: the property starts UNVERIFIED with a specific permission level, data calls will 403 until verification, success returns an empty API response, and the required OAuth scope is stated. This goes well beyond annotation signals.
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 a single, tightly packed paragraph that front-loads the action and then efficiently delivers critical caveats (verification, response shape, scope requirement). Every sentence earns its place without redundancy or fluff.
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 fully explains the expected success response and the unverified-state behavior. It covers the mutation, prerequisites, failure modes, and permissions, making it complete for a one-parameter tool with good annotations.
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 for the single parameter (site_url) is 100%, including format examples and error notes. The tool description itself does not repeat or add parameter-level detail, so it does not elevate above the schema's already-complete documentation. A baseline of 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 opens with 'Adds a property to the account's Search Console set,' which uses a specific verb and resource, clearly distinguishing it from sibling tools like list_sites, get_site, and delete_site. It also immediately conveys the key scope of the operation.
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 description provides robust usage guidance: it states that adding a property is not sufficient for data access, explicitly notes that verification happens through the UI or a separate API, warns that most data calls will return 403 until verified, and clarifies that the readonly OAuth scope cannot mutate. These are clear when-to-use and when-not-to-use directives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth_statusGoogle connection statusARead-onlyIdempotent
Shows whether this server is connected to Google: token presence and source (env variables or a stored in-chat login), expiry, the Google account email, granted vs missing OAuth scopes, where the credentials file lives and where the OAuth client comes from. Makes no network calls and never returns the token itself. Call it first when other tools report the server is not connected.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds meaningful behavioral assurances beyond the readOnly/idempotent/non-destructive annotations: 'Makes no network calls and never returns the token itself.' This is important safety context for an auth-status tool and goes well beyond what annotations already state.
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 dense but each clause earns its place: the first sentence lists the diagnostic fields, the second adds safety behavior, and the third gives a usage directive. It is front-loaded with the core purpose and contains no fluff.
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 zero-parameter read-only status tool with no output schema, the description is complete: it lists every relevant status dimension and the specific trigger for calling it. An agent has enough to decide when and why to invoke it.
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?
The tool takes zero parameters, so the baseline is 4. The description compensates by enumerating exactly what information the status output will contain, which is more useful than a bare schema with no properties.
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 diagnostic purpose: reporting Google connection status, token presence/source, expiry, account email, OAuth scopes, and credential locations. This clearly distinguishes it from sibling auth-flow tools like start_login, finish_login, and logout.
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 an explicit trigger: 'Call it first when other tools report the server is not connected.' It does not explicitly list when not to use it or name an alternative, but the diagnostic role relative to the login/logout siblings is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_siteRemove a propertyADestructiveIdempotent
Removes (unlinks) a property from the account's Search Console set. No data is deleted and other owners keep their access — this only removes the property from THIS account's list; it can be re-added later. Success is an empty API response (surfaced as { ok: true, removed }). Requires the full webmasters OAuth scope.
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | The property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by clarifying that no data is deleted, other owners keep access, the action is reversible (can be re-added later), and the success response format. It also specifies the required OAuth scope. This provides substantial behavioral context that annotations alone don't convey.
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 concise and well-structured: three sentences, each adding value. It leads with the core purpose, then clarifies non-destructive behavior and success/scope details. No wasted words.
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?
Given the tool's simplicity (one parameter, full schema coverage, no output schema), the description is complete. It explains behavior, side effects, reversibility, auth requirements, and response shape, leaving no significant gaps for an agent to guess.
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?
The schema already has 100% coverage with a detailed description of site_url, including format examples and error conditions. The tool description doesn't add anything parameter-specific beyond what the schema provides, so the baseline score of 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 clearly states the specific action: 'Removes (unlinks) a property from the account's Search Console set.' It uses a specific verb and resource, and the parenthetical '(unlinks)' distinguishes this from data deletion, differentiating it from sibling tools like add_site or delete_sitemap.
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 description provides clear context: it explains this only removes the property from THIS account's list, that no data is deleted, and that it can be re-added later. It also notes the required OAuth scope. It doesn't explicitly name alternatives, but it does indicate when not to use it (not for data deletion), which is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sitemapDelete a sitemapADestructiveIdempotent
Removes a sitemap from Search Console. This does not delete the file from the site, and Google may still discover it via robots.txt — it only removes the submission. Success is an empty API response (surfaced as { ok: true, deleted }). Requires the full webmasters OAuth scope.
| Name | Required | Description | Default |
|---|---|---|---|
| feedpath | Yes | The full sitemap URL, e.g. "https://example.com/sitemap.xml". | |
| site_url | Yes | The property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds significant behavioral context beyond the annotations: the file is not deleted, discovery may still happen, success returns an empty response, and full OAuth scope is required. It could mention idempotency given the idempotentHint, but the disclosure is already strong.
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 sentences, front-loaded with the main action and then the important caveats. Every sentence provides necessary information without 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?
For a simple destructive tool with two well-documented parameters, it covers the key aspects: purpose, side effects, authentication, and response format. It does not describe error scenarios or edge cases, but these are less critical given the idempotentHint and lack of output schema.
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?
The input schema fully describes both parameters, including detailed formats and error conditions for site_url. The description itself adds no parameter information, so baseline 3 applies.
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 opens with 'Removes a sitemap from Search Console', using a specific verb and resource that clearly identifies the action. It also distinguishes itself from deleting the actual file, differentiating it from similar sitemap tools like submit_sitemap or list_sitemaps.
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 clear context that this only removes the submission, not the file, and warns that Google may still discover it via robots.txt. It does not explicitly name alternative tools or state when not to use it, but the usage scope is evident from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finish_loginFinish the Google loginAIdempotent
Second step: confirms the browser consent finished, saves the tokens to an owner-only file and verifies the login with a read-only identity call, returning the account email and the granted scopes. After success every tool works immediately — no client restart. If the user granted only part of the requested permissions, the login is still saved and missingScopes lists what will not work. Logging in under a different Google account replaces the previous login (its refresh token is revoked best-effort) and the response carries previousAccountEmail so the change never goes unnoticed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description richly discloses behavior beyond the annotations: it saves tokens to an owner-only file, verifies via a read-only identity call, handles partial permission grants by still saving the login and reporting missingScopes, replaces previous logins with best-effort refresh token revocation, and returns previousAccountEmail. This goes well beyond the basic annotation hints.
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 dense but efficient: four sentences cover purpose, postcondition, partial-permission handling, and account-replacement behavior. Every sentence adds meaningful information, and the key purpose is front-loaded in the first sentence.
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 zero-parameter tool with no output schema, the description is complete: it explains what happens, what is returned, what happens on partial permission, and what happens when switching accounts. No important invocation or result information 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?
The tool has zero parameters, so the input schema already covers everything. The description adds value by explaining what the response contains and the side effects of invoking the tool, which is useful context even though no parameter documentation is needed.
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 clearly states the tool finishes the second step of Google login, saves tokens to an owner-only file, verifies the login via a read-only identity call, and returns account email and granted scopes. This distinguishes it from the sibling start_login by explicitly labeling it as the second step and describing its specific outcome.
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 description gives clear context: this is the second step after browser consent, and after success every tool works immediately without restart. It also clarifies behavior under partial permission grants and account replacement, but it does not explicitly name alternatives or state when not to use it, so it falls short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_siteGet one propertyARead-onlyIdempotent
Returns one property's entry: { siteUrl, permissionLevel }. A 404 means the value does not match any registered property — check the exact format (trailing slash, scheme, sc-domain: prefix) against list_sites output.
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | The property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context: it returns a specific format, and a 404 indicates the input doesn't match any registered property, with guidance on checking the format. This goes beyond the annotations without contradicting them.
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 sentences, front-loaded with the purpose and return format, and uses no wasteful words. Every sentence earns its place: one states the result and the other explains the 404 error and recovery action.
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 simple single-parameter lookup with no output schema, the description sufficiently covers the return shape and error condition. It also points to list_sites for verifying exact formats, which completes the context. No critical information 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?
The input schema has 100% coverage with a highly detailed description of site_url, including exact format expectations and example values. The tool description itself does not add much parameter semantics beyond what the schema provides, but the schema is thorough, so a 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 clearly states the tool returns one property's entry with a specific structure ({ siteUrl, permissionLevel }), using the verb 'Returns' and identifying the resource as 'property's entry'. It distinguishes itself from siblings like list_sites by focusing on a single property rather than listing all, and from add_site/delete_site by being a getter.
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 description gives context for when to use this tool: when you need a specific property's details and need to verify the exact format. It implicitly advises using list_sites to check registered values when a 404 occurs. However, it does not explicitly state 'use this instead of list_sites when you need a single property' or mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sitemapGet one sitemapARead-onlyIdempotent
Returns one submitted sitemap's details (the same WmxSitemap shape as list_sitemaps): errors/warnings counts, isPending, lastSubmitted/lastDownloaded, and per-content-type submitted counts. Useful to check processing status after submit_sitemap.
| Name | Required | Description | Default |
|---|---|---|---|
| feedpath | Yes | The full sitemap URL, e.g. "https://example.com/sitemap.xml". | |
| site_url | Yes | The property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds value by enumerating the return fields (errors/warnings, isPending, timestamps) and indicating the sitemap must be submitted, which provides useful context beyond the annotations.
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 sentences, front-loaded with the primary action and return information, and every clause contributes. The structure is efficient and free of repetition, making it easy for an agent to parse quickly.
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 simple getter with strong annotations and fully documented parameters, the description provides sufficient context. It names the return shape and fields, specifies the use case, and requirements like 'submitted sitemap,' making it complete for invocation decisions.
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%, and the schema descriptions for site_url and feedpath are detailed with examples and constraints. The description does not add additional parameter semantics; it only restates 'submitted sitemap' without altering the schema's already thorough documentation.
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 clearly states it returns one submitted sitemap's details, explicitly listing the fields returned and the WmxSitemap shape. It distinguishes from list_sitemaps by focusing on a single sitemap and also from submit_sitemap by its read-only retrieval purpose.
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 description explicitly says 'Useful to check processing status after submit_sitemap,' giving a clear when-to-use scenario. It references list_sitemaps for shape comparison, implying the alternative for listing all sitemaps, but does not explicitly state exclusions or other alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_queriesTop search queriesARead-onlyIdempotent
Convenience wrapper over search_analytics for the most common ask: the top search queries for a property, sorted by clicks descending (the API's default order). Each row has keys[0] = the query string plus clicks, impressions, ctr (a FRACTION 0..1) and position. Dates are calendar dates in Pacific Time, end_date inclusive; final data lags ~2-3 days. Anonymized long-tail queries are never returned. Same endpoint and quota as search_analytics — use search_analytics directly for other dimensions, pagination, fresh data or regex filters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many top queries to return (1..25000; default 100). | |
| device | No | Only count traffic from this device class. | |
| country | No | Only count traffic from this country — ISO 3166-1 alpha-3 code, e.g. "usa". | |
| end_date | Yes | Last date of the range, YYYY-MM-DD, Pacific Time, inclusive. | |
| site_url | Yes | The property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values. | |
| start_date | Yes | First date of the range, YYYY-MM-DD, Pacific Time. | |
| page_filter | No | Only count traffic to pages whose URL CONTAINS this substring, e.g. "/blog/". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavioral context beyond the read-only/idempotent annotations: data lag of 2-3 days, Pacific Time calendar dates, ctr reported as a fraction, anonymized long-tail queries not returned, and same quota as search_analytics. No contradiction with annotations; the description enriches the operational expectations.
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?
Every sentence earns its place: purpose, output row format, timezone and lag, anonymization caveat, and alternative usage are packed into a tight paragraph. Well front-loaded and no filler.
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?
Despite no output schema, the description covers the return row structure (keys[0] as query string, metrics), date handling, data lag, quota behavior, and exclusions. For a tool with 7 parameters and no output schema, this is unusually 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 coverage is 100% with descriptions on all parameters, so the description need not repeat them. It does not add meaning beyond the schema for parameters; the row structure note refers to output, not parameter semantics. 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 clearly states it is a convenience wrapper for retrieving top search queries, sorted by clicks descending. It explicitly differentiates itself from the sibling search_analytics tool by naming it and scoping the purpose to 'the most common ask.'
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 explicit when-to-use and when-not-to-use guidance: 'use search_analytics directly for other dimensions, pagination, fresh data or regex filters.' This directly addresses alternatives and exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_urlInspect a URL's index statusARead-onlyIdempotent
Inspects a URL's status in the Google index (URL Inspection API). Returns { inspectionResult } with: inspectionResultLink (the Search Console UI page for this inspection); indexStatusResult — verdict (PASS/PARTIAL/FAIL/NEUTRAL), human-readable coverageState (e.g. "Submitted and indexed"), robotsTxtState (ALLOWED/DISALLOWED), indexingState, lastCrawlTime, pageFetchState (SUCCESSFUL/SOFT_404/NOT_FOUND/SERVER_ERROR/...), googleCanonical vs userCanonical, sitemap[], referringUrls[], crawledAs (DESKTOP/MOBILE); plus ampResult and richResultsResult (with per-item issues and severities) when applicable. Only the status of the version already in the Google index is returned — this is NOT a live test. mobileUsabilityResult may still appear in responses but the product is retired — ignore it. QUOTA WARNING: only 2,000 inspections per property per DAY (and 600/minute) — throttle any batch inspection and expect 429/403 rateLimitExceeded beyond that.
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | The property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values. | |
| language_code | No | IETF BCP-47 language for the human-readable issue messages, e.g. "en-US" (the default). | |
| inspection_url | Yes | The fully-qualified URL to inspect. It must belong to the property given in site_url. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly=true, idempotent=true, destructiveHint=false), the description adds significant behavioral details: quota limits (2,000/day and 600/min), the retired mobileUsabilityResult field, the distinction between indexed and live status, and the potential for 429/403 errors. This rich context goes far beyond what annotations provide and helps the agent anticipate real-world behavior.
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 long but every sentence earns its place. It begins with a clear purpose, then details the return structure (essential since there is no output schema), and ends with practical usage warnings. The information is well-organized and front-loaded, making it easy for an agent to quickly grasp the tool's function and constraints.
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?
Given the complexity of the return object and the absence of an output schema, the description is remarkably complete. It enumerates all major response fields, explains the non-live nature, flags deprecated fields, and provides quota guidance. This fully equips an agent to invoke the tool correctly and interpret results.
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?
The input schema already provides complete descriptions for all three parameters, including formats and examples (e.g., site_url format, language_code default). The description does not add any parameter-specific semantics beyond what the schema covers, so a baseline score of 3 is appropriate given 100% schema coverage.
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 clearly states the tool inspects a URL's status in the Google index via the URL Inspection API. It specifies the resource ('URL'), the action ('inspects'), and the scope ('status in the Google index'), distinguishing it from sibling tools that manage sites or sitemaps.
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 description provides clear context on when to use the tool, including a caveat that it returns only the currently indexed version and is NOT a live test. It also includes a quota warning, guiding agents to throttle batch inspections. However, it does not explicitly mention alternative tools or when NOT to use it beyond the live-test exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sitemapsList sitemapsARead-onlyIdempotent
Lists the sitemaps submitted for a property (or, with sitemap_index, the children of a sitemap index file). Returns { sitemap: [WmxSitemap] } with per-sitemap path, lastSubmitted, lastDownloaded, isPending, isSitemapsIndex, type (sitemap/rssFeed/atomFeed/patternSitemap/urlList/notSitemap), warnings and errors counts, and contents[] with per-content-type submitted counts. The contents[].indexed field is deprecated and returns nothing useful — never present it as indexed pages.
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | The property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values. | |
| sitemap_index | No | URL of a sitemap index file — lists its child sitemaps instead of the property's own list. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, etc.), the description discloses detailed behavioral traits: the exact return shape, the meaning of per-sitemap fields, and a critical deprecation warning about contents[].indexed. This adds significant transparency and does not contradict annotations.
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 a single dense sentence that conveys the core purpose, conditional behavior, return shape, field details, and a deprecation advisory. It is efficient but not as cleanly structured as a two-sentence example, hence a slight deduction.
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?
Given the lack of an output schema, the description fully explains the return values and important nuances. It also covers error behavior indirectly through the schema (site_url mismatch) and the deprecated field warning, making it complete for the tool's complexity.
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% and the schema already provides thorough parameter descriptions for site_url and sitemap_index. The description does not add new parameter semantics beyond what the schema captures, so the baseline of 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 clearly states the tool's verb ('Lists') and resource ('sitemaps submitted for a property'), and further specifies the conditional behavior with sitemap_index. It distinguishes from sibling tools like submit_sitemap and delete_sitemap by focusing on reading/listing rather than mutation.
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 description implicitly clarifies when to use the tool (to list submitted sitemaps) and adds a specific use case for sitemap_index (listing children). However, it does not explicitly mention alternatives or exclusions, so it lacks full when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sitesList Search Console propertiesARead-onlyIdempotent
Lists every Search Console property the authenticated account can access. Returns { siteEntry: [{ siteUrl, permissionLevel }] } where siteUrl is either a URL-prefix property ("https://example.com/") or a domain property ("sc-domain:example.com"), and permissionLevel is siteOwner, siteFullUser, siteRestrictedUser or siteUnverifiedUser. Call this FIRST: every other tool needs the siteUrl exactly as returned here — a near-match (missing trailing slash, wrong scheme, www vs non-www) is a different property and returns 403/404.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, but the description adds rich context: the return structure (siteEntry with siteUrl and permissionLevel), the two property types, and the critical exact-match requirement causing 403/404. This goes beyond what annotations provide and prepares the agent for real-world usage.
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 concise (3 sentences) and well-structured: the main action first, then the return format, then the critical usage warning. Every sentence adds important information without 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?
Given there is no output schema and no parameters, the description fully specifies the return structure, the possible permissionLevel values, and the important exact-match caveat. It even warns of 403/404 errors. For a zero-parameter list tool, this is complete and actionable.
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?
The tool takes zero parameters, so the schema is fully covered. The description instead explains the meaning of return values (siteUrl, permissionLevel) and their possible enumerated values, which is useful for downstream tools that need siteUrl. No parameter explanation is required, but the return semantics compensate well. Baseline for 0 params is 4.
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 clearly states the tool 'Lists every Search Console property the authenticated account can access.' This uses a specific verb+resource and directly distinguishes it from siblings like get_site by emphasizing 'every' property. The title and description align, and the return format is specified.
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?
Explicit guidance is provided: 'Call this FIRST: every other tool needs the siteUrl exactly as returned here.' This tells the agent when to use this tool before others and warns about the consequences of near-matches. No alternative is mentioned, but the instruction is unambiguous and valuable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logoutDisconnect from GoogleADestructive
Revokes the stored token at Google (oauth2.googleapis.com/revoke) and deletes the local credentials file. Tokens supplied via env variables are NOT touched — remove them from the MCP client config manually; envTokenStillSet in the response says whether any are still in effect.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by naming the revocation endpoint, specifying that the local credentials file is deleted, clarifying that env-var tokens are unaffected, and mentioning the envTokenStillSet response field. This is exactly the kind of behavioral detail an agent needs for a destructive action.
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?
Two compact sentences with the most critical action front-loaded. Every sentence adds important information, and there is no fluff or repetition of schema fields.
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?
The description covers the action, side effects, exception case for env-var tokens, and a relevant response field. For a zero-parameter tool with no output schema, this is fully sufficient for an agent to use it correctly and predict its impact.
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?
The tool has zero parameters, so there is no parameter meaning to add. The description correctly focuses on the action and side effects rather than inventing parameter details. Baseline 4 is appropriate because the schema is trivially complete.
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 precise verb and resource: it revokes the stored Google token and deletes the local credentials file. The title 'Disconnect from Google' aligns with the behavior, and the description clearly distinguishes this from other auth-related sibling tools.
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 description gives clear context: use this to revoke and delete stored credentials. It also explicitly tells the user that env-var tokens are not touched and must be removed manually, which is a valuable usage caveat. It does not name alternatives, but no true alternative exists for this action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
raw_requestRaw Search Console API callADestructive
Escape hatch to call any Google Search Console API path directly, for requests the typed tools don't cover. Two surfaces share the host: "webmasters/v3/..." (sites, sitemaps, searchAnalytics) and "v1/..." (urlInspection). siteUrl and feedpath are PATH SEGMENTS and must be URL-encoded (encodeURIComponent), e.g. "webmasters/v3/sites/sc-domain%3Aexample.com/sitemaps". The path may carry a query string. The Bearer token is added automatically; the method defaults to GET. Note: sites.add and sitemaps.submit are PUT with no body and return an empty response on success.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | JSON request body (POST only; PUT endpoints here take no body). | |
| path | Yes | API path relative to https://searchconsole.googleapis.com, e.g. "webmasters/v3/sites" or "v1/urlInspection/index:inspect". | |
| method | No | HTTP method (the Search Console API uses only these four). Defaults to GET. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true, setting the safety baseline. The description adds useful non-obvious behaviors: the Bearer token is added automatically, the method defaults to GET, and specific endpoints (sites.add, sitemaps.submit) are PUT with no body and return an empty response on success. This enriches the agent's understanding beyond annotations.
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 compact—roughly three sentences—and front-loaded with the core 'escape hatch' purpose. Every sentence adds value: path format, URL encoding, query strings, auth, default method, and PUT endpoint notes. No wasted words.
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?
Given this is an open-ended raw API tool, the description covers the essentials: usage scope, path encoding, auth, method defaults, and specific endpoint quirks. There is no output schema, but the tool's raw passthrough nature makes return format self-evident. The description is sufficient for an agent to use it correctly.
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?
The schema already has 100% coverage, but the description goes further by explaining that siteUrl and feedpath are path segments requiring encodeURIComponent, that paths may include query strings, and clarifies body usage (POST only, PUT endpoints take no body). This added semantics is critical for correctly constructing the path parameter.
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 opens with 'Escape hatch to call any Google Search Console API path directly', which states a specific verb ('call') and resource ('any Google Search Console API path'), clearly distinguishing it from the typed sibling tools. The title 'Raw Search Console API call' reinforces this purpose.
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?
It explicitly says 'for requests the typed tools don't cover', which tells the agent when to use this tool versus the typed alternatives. It also explains that there are two API surfaces ('webmasters/v3/...' and 'v1/...') and provides an example path, giving clear contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_analyticsSearch Analytics (performance) queryARead-onlyIdempotent
Runs a Search Analytics (performance) query for a property: clicks, impressions, CTR and average position from Google Search, grouped by the requested dimensions. Each returned row has keys[] (one value per requested dimension, in the same order) plus clicks, impressions, ctr (a FRACTION 0..1, not a percent) and position; rows are sorted by clicks descending. With no dimensions you get one totals row for the range. Dates are calendar dates in Pacific Time and end_date is INCLUSIVE; final data lags ~2-3 days behind (use data_state "all" for fresh, still-changing rows). Pagination: there is no page token — repeat with start_row increased by row_limit until a response comes back with no rows. When grouping by query/page some anonymized long-tail data is never returned, so summed rows will not match a dimensionless totals query. Quota: 1,200 queries/minute per site and per user.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No | Row filters, ALL combined with AND — the API has no OR across filters (run separate queries instead). | |
| end_date | Yes | Last date of the range, YYYY-MM-DD, Pacific Time, inclusive. | |
| site_url | Yes | The property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values. | |
| row_limit | No | Max rows to return (1..25000; API default 1000). | |
| start_row | No | 0-based row offset for pagination (default 0). A response with no rows means the end. | |
| data_state | No | "final" (default) — only finalized data; "all" — include fresh data still subject to change; "hourly_all" — required when grouping by hour (recent data only). | |
| dimensions | No | How to group rows; keys[] in each row follows this order. "country" values are ISO 3166-1 alpha-3 codes, "device" is DESKTOP/MOBILE/TABLET, "hour" requires data_state "hourly_all". Omit for one totals row. | |
| start_date | Yes | First date of the range, YYYY-MM-DD, Pacific Time. | |
| search_type | No | Which search surface to report: "web" (default), "image", "video", "news" (News tab of search), "discover" (Discover feed), "googleNews" (news.google.com and the app). discover/googleNews support a reduced dimension set — an unsupported combination returns the API's 400 verbatim. | |
| aggregation_type | No | How metrics are aggregated: "auto" (default) lets the API decide, "byPage"/"byProperty" force it, "byNewsShowcasePanel" is for News Showcase. Affects how clicks/impressions are counted, not which rows exist. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and open-world behavior. The description adds valuable behavioral context beyond annotations: 2-3 day data lag, inclusive Pacific Time dates, pagination behavior (no page token, loop until empty), long-tail data anonymization, and the 1,200 qpm quota. No contradiction with annotations.
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 dense but every sentence carries useful information. It opens with the core purpose, then progressively details output, date semantics, pagination, data caveats, and quota. No filler or repetition; the structure front-loads the most important information and then covers edge cases.
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?
This is a 10-parameter tool with no output schema, so the description must explain both request nuances and return shape. It covers row structure, sorting, pagination, dimension effects, data lag, and quota. Combined with the 100% schema coverage, the agent has everything needed to invoke and interpret results correctly.
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?
Even though schema descriptions cover 100% of parameters, the description adds semantic depth: explains keys[] ordering, ctr fraction, inclusive end_date, pagination with start_row/row_limit, why data_state 'all' matters, and the grouping caveat that summed rows won't match totals. These clarifications go well beyond schema property descriptions.
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 clearly states the tool's function: 'Runs a Search Analytics (performance) query for a property' with specific metrics (clicks, impressions, CTR, position) and grouping by dimensions. It distinguishes itself from siblings like list_sites or get_top_queries by focusing on the full analytics query capability, and even explains output row structure.
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 description provides rich usage context: how to get a totals row (no dimensions), pagination via start_row/row_limit, data_state selection for fresh data, and the caveat about anonymized data when grouping by query/page. However, it does not explicitly mention when to choose this tool over alternatives like get_top_queries, so it stops short of full 'when-not' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_clientSave the OAuth clientAIdempotent
Saves the OAuth client credentials from the JSON file downloaded from Google Cloud Console ('Download JSON' on a Desktop-app client). Pass the file PATH — the secret must never be pasted into the chat. The client is stored once in the shared ~/.config/mcp-google-auth/client.json (owner-only) and reused by every mcp-google-* server; tokens stay per-server. After this, call start_login.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute path to the client_secret_*.json file downloaded from Google Cloud Console. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true (safe to call again) and readOnlyHint=false (it's a write). The description adds valuable context: it stores the client once in a shared path, is reused by all mcp-google-* servers, and tokens stay per-server. It also warns against pasting secrets. This goes beyond annotation basics, though it does not mention any potential side effects like overwriting an old client.
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 three sentences, each earning its place: the first explains what and source, the second details storage scope, the third directs to start_login. The critical warning is naturally integrated. It is not overly verbose and the essential info is front-loaded.
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 single-parameter tool with no output schema, the description covers key operational aspects: the source file, the storage path, the security precaution, and the follow-up step. The only minor gap is the absence of error conditions (e.g., if the file is invalid), but that is acceptable given the simplicity.
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 baseline is 3. The description reinforces that the path is to the JSON file and adds the explicit 'must never be pasted into the chat' security guideline. It doesn't add much beyond the schema, but the security note is valuable enough to nudge to 4.
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 specifies a clear verb ('saves') and resource ('OAuth client credentials from the JSON file') and adds detail about the source and storage location. It does not explicitly distinguish from siblings, but the uniqueness of this tool among the listed siblings is implicit given its specific task.
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?
It provides clear guidance on when to use the tool: after downloading the JSON file and before starting login. It also mentions the prerequisite of calling start_login after. However, it does not explicitly state when not to use it or mention alternatives, though none are obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_instructionsSetup instructionsARead-onlyIdempotent
Step-by-step checklist for connecting this server to Google: creating a Google Cloud project and a Desktop-app OAuth client, publishing the consent screen (mandatory — Testing-mode refresh tokens die after 7 days), downloading the client JSON and handing its PATH to set_client. Works without any credentials; the checklist shortens to 'enable the API + log in' when an OAuth client is already configured (one client serves the whole mcp-google-* line). Never asks the user to paste secrets into the chat.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only, idempotent, and non-destructive; the description adds valuable context beyond that: it works without credentials, warns that Testing-mode refresh tokens expire in 7 days, mandates publishing the consent screen, and guarantees it never asks users to paste secrets into the chat. No contradiction with annotations.
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 dense sentences each carry unique, decision-relevant information: the checklist's contents, the shortened path when already configured, and the no-secrets guarantee. There is no filler or repetition.
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 zero-parameter instructional tool, the description fully covers purpose, usage timing, workflow relationships, and key behavioral safeguards. The lack of an output schema is acceptable since the tool's job is to present instructions, and the annotations already cover the operational profile.
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?
The input schema is empty and parameter coverage is 100%, so there is nothing for the description to add about parameter semantics. The zero-parameter case earns the baseline 4.
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 deliverable: a step-by-step checklist for connecting the server to Google, including project creation, OAuth client, consent screen, and handing the client JSON path to set_client. This clearly distinguishes it from sibling tools like auth_status or set_client.
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 description explains when to use it (before credentials exist) and how the checklist shortens when an OAuth client is already configured, referencing set_client as the downstream consumer. It provides clear workflow context, though it does not explicitly say 'use this instead of X' for every alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_loginStart the Google loginAIdempotent
First step of connecting from the chat, without editing config files or restarting the client. Returns authorizeUrl — show it to the user as a clickable link and ask them to open it in the browser ON THIS MACHINE, pick the Google account and approve access. A one-shot listener on 127.0.0.1 catches Google's redirect; the code is exchanged locally and never passes through the chat. Does not open the browser itself. The attempt lives 10 minutes; when the browser shows the success page, call finish_login.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral context beyond the annotations: it does not open the browser itself, uses a one-shot listener on 127.0.0.1, exchanges the code locally, never passes it through chat, and has a 10-minute attempt lifetime. These details are not present in the annotations and provide meaningful operational guidance.
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 dense but every sentence earns its place: it covers user interaction, browser constraints, security, timeout, and next step without repetition or filler. The most important user-facing instruction is front-loaded.
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 tool with no parameters and no output schema, the description is fully complete. It explains the returned authorizeUrl, how to present it, what will happen afterward, and which sibling tool to call next.
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 are zero parameters, so the schema carries no burden and the description correctly avoids inventing parameter details. The baseline for a 0-parameter tool is 4; the description also reinforces that no configuration files or restart are needed.
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 opens with 'First step of connecting from the chat' and names a specific resource and action: start the Google login and return an authorizeUrl. It is clearly distinguished from siblings like finish_login and auth_status by positioning itself as the initial step.
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 description explicitly states when to use it: as the first step of connecting, without editing config files or restarting the client. It also gives direct instructions to show the authorizeUrl to the user, ask them to open it in the browser, and call finish_login after the success page appears.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_sitemapSubmit a sitemapAIdempotent
Submits (or resubmits) a sitemap for the property. The feedpath must be the sitemap's full URL on the property. Success is an EMPTY API response (surfaced as { ok: true, submitted }); processing is asynchronous — check errors/warnings later with get_sitemap. Requires the full webmasters OAuth scope (readonly is not enough).
| Name | Required | Description | Default |
|---|---|---|---|
| feedpath | Yes | The full sitemap URL, e.g. "https://example.com/sitemap.xml". | |
| site_url | Yes | The property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable details beyond annotations: the empty API response shape, asynchronous processing, and the need for full OAuth scope. These are pragmatic behavioral insights that help the agent anticipate outcomes and requirements.
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 action and scope. Every sentence adds value: the action, the feedpath constraint, the response behavior, the asynchronous nature, the follow-up tool, and the auth requirement. No redundancy or fluff.
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 tool with two parameters and no output schema, this description is complete. It covers purpose, response format, async processing, OAuth requirement, and the recommended follow-up. The rich schema examples further fill in any remaining context.
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?
The input schema already provides comprehensive descriptions for both parameters (feedpath format and site_url formats with examples). The description only restates the feedpath requirement ('full URL on the property') without adding new semantics, so it does not rise above the schema baseline.
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 clearly states the action ('Submits (or resubmits) a sitemap for the property') with a specific verb and resource. It distinguishes from sibling tools like list_sitemaps, get_sitemap, and delete_sitemap by focusing on the submission operation.
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 clear context for when to use the tool and a follow-up action ('check errors/warnings later with get_sitemap'), plus an important prerequisite (full OAuth scope). It does not explicitly contrast with alternatives, but the purpose is distinct enough that the usage is implied.
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
v1.2.0- Added
auth_status - Added
finish_login - Added
logout - Added
set_client - Added
setup_instructions - Added
start_login
12 tool updates
v0.1.0- First observed
add_site - First observed
delete_site - First observed
delete_sitemap - First observed
get_site - First observed
get_sitemap - First observed
get_top_queries - First observed
inspect_url - First observed
list_sitemaps - First observed
list_sites - First observed
raw_request - First observed
search_analytics - First observed
submit_sitemap
TDQS
Scored across 18 tools
Each tool targets a distinct resource/action: site management, sitemaps, analytics, inspection, auth, and a raw escape hatch. Even search_analytics vs get_top_queries are clearly separated—the latter is an explicit convenience wrapper. No two tools appear to do the same thing.
All tools follow a consistent verb_noun pattern (list_sites, get_site, add_site, delete_site, start_login, submit_sitemap, etc.). Even auth_status and setup_instructions fit the pattern when read as verb+noun. No style mixing or vague verbs.
18 tools is above the typical 3-15 range but justified by the server's broad scope: auth, site management, sitemaps, analytics, URL inspection, and a raw API fallback. Each tool serves a clear purpose with no redundancy; slightly heavy but well-scoped.
The tool surface covers all core Search Console API operations: sites (list/get/add/delete), sitemaps (list/get/submit/delete), search analytics (full query + convenience wrapper), URL inspection, and full OAuth lifecycle. The raw_request tool ensures no endpoint is unreachable, leaving no obvious gaps or dead ends.
Maintenance
Related MCP Connectors
Read-only Google Search Console MCP server for AI assistants.
MCP server for Google search results via SERP API
Hosted, read-only Google Search Console MCP: performance, comparisons, URL inspection, sitemaps.
Free Google Search Console MCP: your real GSC, Google Analytics and keyword data for AI agents.
1
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP Server that provides access to Google's Search Console API, allowing users to interact with website search performance data and manage search presence through natural language.-
- AlicenseNot gradedqualityAmaintenanceMCP server for Google Search Console, enabling querying search analytics, URL inspection, sitemap management, and more via natural language.708 npm3MIT
- AlicenseNot gradedqualityDmaintenanceThis MCP server provides LLMs with programmatic access to Google Search Console data and functionality, including search analytics, sitemap management, site management, and URL inspection.MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that exposes the Google Search Console API, allowing LLMs to query SEO data, inspect URLs, manage sitemaps, and analyze search performance via natural language.80 npmMIT