Google Search Console Connector
Connects a website project to Google Search Console and provides tools for pulling Search Analytics performance data (clicks, impressions, CTR, position) across dimensions like query, page, country, device, search appearance and hour, with filters, regex and branded/non-branded splits. Also supports URL Inspection (index status, last crawl, canonical, rich results), sitemap listing/submission/deletion, adding properties and verifying ownership via meta tag, HTML file or DNS, setting brand terms, and one-command export of all GSC reports (CSV, JSON and a Claude-readable Markdown summary) for one site or all sites, plus a local SEO dashboard with opportunities, striking-distance keywords and chart annotations.
Google Search Console Connector for Claude Code
Connect any website project to Google Search Console from Claude Code, Google Antigravity or any MCP client. Sign in with your Google account once, then ask Claude about clicks, queries, rankings and indexing, pull every GSC report as CSV with one command, and track it all in a local SEO dashboard.
It's an open-source Search Console MCP server, a GSC report exporter and a dashboard, and it runs entirely on your computer. No Google Cloud setup, no API keys: you just sign in with Google.

If you find it useful, a ⭐ on GitHub helps other people find it.
Docs and updates: claude-repo.com/google-search-console-connector
Why this exists
If you build sites with an AI coding agent, getting Search Console data into it usually means logging in to search.google.com, clicking Export, downloading CSVs and dragging them into the chat. Every site, every time.
This tool removes those steps:
npx google-search-console-connector reportThat one command downloads the same reports as Search Console's Export button (Dates, Queries, Pages, Countries, Devices, Search appearance) plus comparisons with the previous period, query-to-page pairs, sitemaps, and a summary.md written for Claude to read. Inside Claude Code you don't even type it. Ask "pull the Search Console report" and Claude runs the gsc_export_report tool.
Related MCP server: gsc-mcp-connector
Features
Sign in with Google. One click in your browser, using Google's own OAuth 2.0 (PKCE). No Google Cloud project, API keys or passwords.
One-command GSC export. Pull CSV, JSON and Markdown reports for one site or all your sites (
--all-sites), for any range up to 16 months.MCP server for Claude Code and Antigravity. 18 tools: performance data, hourly data, branded vs non-branded queries, URL Inspection, sitemaps, adding properties and verifying ownership.
Local SEO dashboard. KPIs against the previous period, a trend chart (hourly, daily, weekly, monthly), queries, pages, countries, devices, sitemaps and URL Inspection. Light and dark themes.
Opportunities. Striking-distance keywords (positions 4–20), page-one pages with low CTR, and queries that are losing clicks.
Branded vs non-branded. Set your brand terms once; the dashboard, reports and Claude can all split traffic by them.
Chart notes. Claude can mark the chart when it ships SEO changes ("Rewrote service page titles"), so you can see what moved the numbers.
Site verification. Claude can add a new site to Search Console, put the verification meta tag in your code, and verify it after you deploy.
Current with Google. Supports the latest Search Console API features, including hourly data, Discover and Google News. A weekly check flags new API fields and Search Central announcements.
Private by default. Tokens and Search Console data stay on your machine and go only to Google. There is no server in between.
Quick start
You need Node.js 20 or newer and a Google account with access to Search Console.
1. Add it to Claude Code (once, for all your projects):
claude mcp add gsc --scope user -- npx -y google-search-console-connector@latestOn Windows, wrap npx in cmd /c:
claude mcp add gsc --scope user -- cmd /c npx -y google-search-console-connector@latestTo run the latest code straight from GitHub instead of npm, use npx -y github:malaysherasia-ai/google-search-console-connector-for-claude-code in place of npx -y google-search-console-connector@latest. The first start takes about 20 seconds while it builds. GitHub builds don't include the one-click sign-in client, so you'll need your own Google Cloud OAuth client (the Connect page walks you through it).
2. Connect a website project. Open Claude Code in the website's folder and say:
Connect this project to Google Search Console
Claude calls gsc_connect, which opens a page in your browser:
a one-time question about anonymous usage metrics (yes or no, your choice),
Sign in with Google with the account that has your Search Console access,
pick which Search Console property belongs to this project.

That's it. Google has verified the app's branding and it only asks for non-sensitive permissions, so there's no "unverified app" screen to click through.
3. Ask away:
How did the site do in the last 28 days? Which queries are we ranking 4–20 for, and which pages should we improve? Pull the GSC report for the last 3 months. Inspect https://example.com/services/ and tell me why it isn't indexed. Submit the sitemap, then add a chart note that we launched the new location pages. Open the Search Console dashboard.
You can also run everything from a terminal:
npx google-search-console-connector connect # browser setup and sign-in
npx google-search-console-connector report # export reports to .gsc-reports/
npx google-search-console-connector dashboard # open the local dashboard
npx google-search-console-connector demo # try the dashboard with sample dataUse with Google Antigravity, Cursor and other MCP clients
Any MCP client that can start a local (stdio) server works. Add this to its MCP configuration (in Antigravity, open the MCP servers settings and edit the raw config):
{
"mcpServers": {
"google-search-console": {
"command": "npx",
"args": ["-y", "google-search-console-connector@latest"]
}
}
}The server uses the folder it is started in as the project. If your client starts servers somewhere else, set "env": { "GSC_PROJECT_DIR": "/path/to/your/site" }.
Advanced: use your own Google Cloud project
Most people can skip this. Agencies and developers who want sign-in to run through their own Google Cloud project (their own quota, their own consent screen) can choose Use my own Google Cloud project on the sign-in page. The steps are:
Create a Google Cloud project, or pick an existing one.
Enable the Google Search Console API.
Enable the Site Verification API (used to verify new sites).
Configure the consent screen: choose External and add your email as a test user. Then publish the app to In production. Apps left in "Testing" have their sign-in expire every 7 days. You don't need Google's app verification for your own use; Google will show an "unverified app" notice, and you continue with Advanced → Go to (your app).
Create an OAuth client ID of type Desktop app, download the JSON, and drop it on the Connect page.
Both APIs are free. Your own client means quota and the consent screen are yours. To go back to the built-in sign-in, use the link at the top of that page, or Settings in the dashboard.
One-command Search Console reports
npx google-search-console-connector report [--days 28] [--type web] [--site URL] [--all-sites] [--out DIR]File | Contents |
| Totals against the previous period, branded split, top queries and pages, biggest gains and losses, striking-distance keywords and low-CTR pages |
| The same columns as Search Console's Export, plus previous-period columns |
| Which page ranks for which query (Search Console's UI can't export this) |
| Submitted sitemaps, status, errors and warnings |
| Exactly what was requested, and all data as JSON |
Reports go to .gsc-reports/<site>/<date>_last-<n>-days/ in your project, and .gsc-reports/ is added to .gitignore so search data never ends up in a commit or a deployed site. Rows page past Google's 25,000-row limit automatically.
MCP tools
Tool | What it does |
| Opens the browser Connect flow and waits for it to finish |
| Connection status; revoke access |
| List properties; set this project's default property |
| Totals against the previous period, plus top queries and pages |
| Any Search Analytics query: dimensions including |
| The one-command report export, for one site or all sites |
| URL Inspection: index status, last crawl, canonical, rich results |
| Manage sitemaps |
| Add a property and verify ownership (meta tag, HTML file or DNS) |
| Words that make a query "branded" |
| Add a dated note to the performance chart |
| Open the local dashboard |
The dashboard
npx google-search-console-connector dashboard, or ask Claude to open it. It runs on 127.0.0.1 only and opens through a one-time link.
Overview: clicks, impressions, CTR and position against the previous period, with a trend chart for the last 24 hours (hourly) through 16 months, grouped daily, weekly or monthly
Queries and Pages: sortable, searchable, change columns, CSV export
Opportunities: striking distance, low CTR, declining queries
Sitemaps & inspection: submit sitemaps, check their status, inspect any URL
Settings: account, project property, brand terms, chart notes, usage-metrics choice
|
|
|
|
Try it without a Google account: npx google-search-console-connector demo.
What Google's API does and doesn't expose
Search Console keeps adding features. Some reach the API and some stay in the web UI. This table reflects Google's API as of October 2026.
Search Console feature | Supported here | Notes |
Performance: clicks, impressions, CTR, position by date, query, page, country, device, search appearance | Yes | |
Hourly data (last ~10 days) | Yes |
|
Discover and Google News performance | Yes | Google doesn't report queries or positions for these |
Branded vs non-branded queries | Yes | Built from your brand terms with RE2 regex filters |
Weekly and monthly views | Yes | Grouped from daily data |
Chart annotations | Yes, locally | Stored in |
AI Overviews and AI Mode | Included in Web totals | Google's API can't separate them |
Generative AI performance report, web multimodal search type, social platform properties, query groups | Not yet | UI-only in Search Console today. The update check flags them as soon as Google adds them to the API |
Privacy and anonymous usage metrics
Your Search Console data never leaves your computer, except to go between you and Google.
Tokens are stored in
~/.gsc-connect/with owner-only file permissions. Disconnecting revokes them at Google.Project settings (
.gsc-connect.json: property, brand terms, chart notes) contain no secrets and are safe to commit.Anonymous usage metrics are opt-in. The first screen asks once. If you say no, nothing is ever sent. If you say yes, the app sends event names such as
view_changedormcp_tool_calledwith the app version, operating system and a random install ID to Google Analytics 4 via the Measurement Protocol. It never sends site URLs, page URLs, queries, metrics or your account. No tracking script runs in your browser and no cookies are set. Settings → "What's been sent" shows every event exactly as it was sent, and you can change your answer there at any time.DO_NOT_TRACK=1orGSC_CONNECT_TELEMETRY=0turns it off for good. The full list of events is insrc/telemetry.ts.Update check: once a day the app asks the public npm registry for the latest version number. Set
GSC_CONNECT_UPDATE_CHECK=0to turn it off.
Security
The local server listens on
127.0.0.1only, checks theHostheader, and requires a session cookie that is set through a one-time launch link.OAuth uses the loopback redirect with PKCE (S256) and a
statecheck, as Google recommends for desktop apps.Requested at sign-in:
webmasters(Search Console) andopenid email(to show which account is connected).siteverificationis asked for separately, only the first time you verify a new site.
Report vulnerabilities privately; see SECURITY.md.
Configuration
Variable | Purpose |
| Project folder, if your MCP client starts servers elsewhere |
| Use your own OAuth client from the environment instead of the built-in sign-in |
| Where credentials are stored (default |
| Preferred local port (default 4817; falls back to any free port) |
| Never send usage metrics |
| Don't check npm for new versions |
FAQ
Is the Google Search Console API free? Yes. Google charges nothing for the Search Console API or the Site Verification API, and this tool has no paid parts.
Do I need a Google Cloud account? No. You sign in with the Google account you already use for Search Console. Your own Google Cloud project is an optional advanced setting.
Who can see my data?
Only you and Google. The sign-in grants access to your computer, not to a server: tokens are stored in ~/.gsc-connect/ and reports are saved in your project folder. See the privacy policy.
Can I export more than 1,000 rows? Yes. Search Console's web export stops at 1,000 rows. The API returns up to 25,000 per request, and this tool keeps paging, up to Google's limit of 50,000 rows per day per search type.
Does it work with domain properties (sc-domain:)?
Yes, domain properties and URL-prefix properties both work. Domain properties are verified by DNS.
Will it work with more than one website?
Yes. Each project folder links to its own property, and report --all-sites exports every property you can access.
How do I update?
If you installed with @latest, restart Claude Code. The dashboard and CLI tell you when a new version is out.
Development
git clone https://github.com/malaysherasia-ai/google-search-console-connector-for-claude-code.git
cd google-search-console-connector-for-claude-code
npm install
npm run build
npm run demo # dashboard with sample data
claude mcp add gsc-dev -- node "$PWD/dist/index.js"
npm run check:google # what has Google changed since the last release?See RELEASING.md for how releases are planned from Google's changes and from usage, and CONTRIBUTING.md for how to contribute.
License
MIT. Not affiliated with or endorsed by Google. Google Search Console is a trademark of Google LLC.
Available Tools
18 toolsgsc_add_annotationAdd chart noteA
Add a dated note to this project's performance chart, e.g. after deploying SEO changes ('Rewrote service page titles'). Shown in the dashboard so changes can be matched to traffic movements.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Default today | |
| text | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It does disclose the visible effect — the note appears on the dashboard chart and is dated — which is real value. However, it omits permission requirements, whether notes can be edited/deleted, or any limits, leaving meaningful gaps for a mutation tool.
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 tight sentences, front-loaded with the action, and the example earns its place by clarifying note content. 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?
For a simple two-parameter write tool with no output schema or annotations, the description covers what it does and where the result surfaces. It stops short of disclosure on returns or permissioning, but nothing essential to correct invocation 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 50%: `date` is documented there as 'Default today', while `text` has only length constraints. The description implies the note body via the example but adds no format, length, or date syntax guidance beyond what the schema already says.
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 ('Add a dated note to this project's performance chart') plus a concrete example of the note content. The purpose is unmistakable and no sibling tool covers annotations, so an agent can pick it out immediately.
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 clear usage context ('after deploying SEO changes') and the motivation (matching changes to traffic movements). It does not state when not to use it or name any alternative, but no sibling overlaps, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_add_siteAdd propertyA
Add a property to Search Console for the connected account. It stays unverified until gsc_verify_site succeeds.
| Name | Required | Description | Default |
|---|---|---|---|
| siteUrl | Yes | 'https://example.com/' or 'sc-domain:example.com' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose a meaningful behavioral trait not in the schema: the property is created in an unverified state pending gsc_verify_site. It omits auth/permission requirements, idempotency or duplicate-property behavior, and side effects, leaving notable gaps for a no-annotation mutation tool.
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 short sentences with zero filler, front-loading the core action and following with the lifecycle constraint. Every sentence earns its place.
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 and no annotations, the description covers the essential lifecycle context an agent needs. It is close to complete but omits edge-case behavior (existing property, permission failures) that would matter for a mutation 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?
There is a single parameter and schema description coverage is 100%, with the schema already documenting the accepted siteUrl formats ('https://example.com/' or 'sc-domain:example.com'). The description adds no syntax or format detail beyond the schema, so the baseline of 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?
Specific verb+resource: 'Add a property to Search Console for the connected account.' It also distinguishes itself from the sibling gsc_verify_site by noting that the property remains unverified after this call, so an agent can tell the two apart without opening either schema.
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?
States a clear lifecycle context — the property stays unverified until gsc_verify_site succeeds — which tells the agent this tool is step one of a two-step flow. It does not, however, state exclusions or prerequisites such as what happens if the property already exists or what account/permission state is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_connectConnect Google Search ConsoleA
Open the Connect page in the user's browser: Google Cloud setup, Google sign-in, and choosing this project's property. Waits until the user finishes (up to 10 minutes).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does disclose two important traits: the tool drives the user's browser interactively (so it requires a human in the loop) and it blocks for up to 10 minutes waiting for completion. It does not say what is returned on success, what happens on timeout or user abandonment, or whether partial setup leaves state behind, which are meaningful gaps for a blocking auth flow.
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 sentence that front-loads the action ('Open the Connect page') and then adds the essential constraint (interactive, up to 10 minutes) with no filler. Every clause earns its place.
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 and no annotations, the description covers what happens, that it is user-driven, and that it can block for up to 10 minutes. What is missing is post-condition clarity: whether completion implies the connection is now usable, and what result the caller should expect if it times out.
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 of 4 applies. There is nothing for the description to clarify beyond the schema, and it correctly adds no redundant parameter talk.
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 concrete action (open the Connect page in the browser) and enumerates the steps it covers: Google Cloud setup, Google sign-in, and property selection. That is more specific than a tautology and clearly a setup/auth flow, but it never contrasts itself with the closely related siblings gsc_link_project or gsc_open_dashboard, so an agent still has to guess between them.
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 implies context by listing interactive setup steps and a wait, suggesting it is a first-run onboarding flow, but it gives no explicit when-to-use condition and no direction on when to prefer gsc_link_project, gsc_add_site, or gsc_status instead. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_delete_sitemapDelete sitemapADestructive
Remove a sitemap from the property in Search Console (does not touch the file on the website).
| Name | Required | Description | Default |
|---|---|---|---|
| siteUrl | No | Property: 'sc-domain:example.com' (domain property) or 'https://example.com/' (URL-prefix, trailing slash). Defaults to the project's linked property. | |
| feedpath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructiveHint annotation already flags the mutation, and the description adds genuine value beyond it by scoping what is destroyed: the Search Console entry, not the website file. It still omits whether removal is reversible, permission requirements, and behavior when the sitemap 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?
One sentence, front-loaded with the action and resource, with the scope clarification appended efficiently. 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?
For a destructive two-parameter tool with no output schema, the description covers the key ambiguity (registration vs file) but is silent on the required feedpath format, permission needs, and error behavior when the sitemap does not exist.
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 only 50%: siteUrl is documented in the schema while feedpath has only a format hint and no description. The tool description says nothing about either parameter, so it does not compensate for the undocumented feedpath.
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?
Specific verb ('Remove') plus resource ('a sitemap from the property in Search Console') with the parenthetical clarifying that only the registration is removed, not the file. This clearly distinguishes it from siblings like gsc_submit_sitemap and gsc_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?
Usage is implied by 'Remove a sitemap from the property', but there is no explicit when-to-use guidance, no mention of prerequisites, and no named alternative (e.g., re-adding via gsc_submit_sitemap). Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_disconnectDisconnect GoogleADestructive
Revoke this machine's Google access token and delete it locally.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare destructiveHint=true, and the description meaningfully adds to that: it names the two distinct effects (remote revocation of the token plus local deletion) and scopes the blast radius to 'this machine' rather than the whole Google account. It stops short of stating irreversibility or what the caller must do to reconnect afterwards.
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 11-word sentence with the destructive verbs front-loaded and zero filler. Nothing is repeated from the title or annotations, and every word carries information.
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, no-output-schema, single-effect tool, the description is nearly sufficient: the agent knows what is destroyed and where. It could be complete by noting that access can be restored via gsc_connect, but no essential calling 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 takes zero parameters, so there is no parameter semantics to document and the baseline is 4. The description correctly implies the target is implicit (this machine) rather than user-supplied.
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 compound verb (revoke, delete) and the exact resource (this machine's Google access token), and the machine-scoping immediately distinguishes it from a blanket account disconnect. An agent can tell it apart from gsc_connect without opening either schema.
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 says what happens but never when to call it: no prerequisite that a connection must exist first, no note that gsc_connect is the counterpart for re-establishing access, and no statement about what state the user is left in. Usage must be inferred from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_export_reportExport Search Console reportsA
Download Search Console reports in one step: Dates, Queries, Pages, Countries, Devices, Search appearance, Query-page pairs and Sitemaps as CSV (same columns as Search Console's Export, plus previous-period comparison), report.json, and summary.md written for you to read next. Saved to .gsc-reports/ in the project (added to .gitignore).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Default 28 | |
| type | No | ||
| siteUrl | No | Property: 'sc-domain:example.com' (domain property) or 'https://example.com/' (URL-prefix, trailing slash). Defaults to the project's linked property. | |
| allSites | No | Export every property the account can access |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses concrete side effects (writes CSV, report.json, summary.md), the exact save location (.gsc-reports/), and the .gitignore modification, plus a previous-period comparison. It stops short of mentioning auth/permission requirements, overwrite behavior, or rate limits.
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?
Front-loaded with the verb 'Download' and contained in a single dense sentence with no filler. The enumerated lists are informative rather than redundant, though the compound sentence is somewhat heavy.
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 no output schema, the description compensates well by spelling out the three output artifacts and their contents. For a 4-param, zero-required tool it covers the deliverable fully, missing only prerequisite/auth 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?
Schema coverage is 75%, so the schema largely documents days, type, siteUrl, and allSites itself. The description mentions none of these parameters and adds no syntax or default meaning beyond what the schema already provides, so the baseline of 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?
States a specific verb+resource ('Download Search Console reports') and enumerates the exact report types and file formats produced, so the agent knows precisely what this yields. It does not name the nearest siblings (gsc_search_analytics, gsc_performance_summary) to contrast against, keeping it just short of a 5.
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 'in one step' implies bulk/at-a-glance export versus a single query, but there is no explicit when-to-use or when-not-to-use guidance and no routing away from gsc_search_analytics or gsc_performance_summary. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_get_verification_tokenGet verification tokenARead-only
Get the ownership verification token. META returns a tag for the site's (URL-prefix properties). FILE returns an HTML file name/content to serve at the site root. DNS_TXT is required for sc-domain properties.
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | META | |
| siteUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares this is a safe read, so the safety bar is covered. The description adds genuine value by disclosing the shape of what each method yields (meta tag, HTML file name/content, DNS TXT record), which tells the agent what it will get back and how to use it. It does not describe siteUrl handling or the DNS_CNAME case, keeping it below 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 dense sentences with no filler. The core action is front-loaded, followed by per-method return detail and the one hard constraint (DNS_TXT for sc-domain), so every sentence earns its place.
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 tool with no output schema, the description does the essential work of explaining what each method returns and the sc-domain constraint. The DN_CNAME method and siteUrl format are left unaddressed, but nothing critical to a correct call 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 description coverage is 0%, so the description must carry parameter meaning and it only partially does. It explains three of the four 'method' enum values (META, FILE, DNS_TXT) but omits DNS_CNAME entirely and says nothing about the required siteUrl 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?
States a specific verb (Get) and resource (ownership verification token), and goes further by explaining what each method returns — a meta tag for META, file name/content for FILE. An agent can distinguish this from the sibling gsc_verify_site, which presumably performs verification rather than fetching the token material.
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 clear conditional guidance tying methods to property types: META for URL-prefix properties and DNS_TXT required for sc-domain properties. It doesn't explicitly frame when to call this tool versus gsc_verify_site or gsc_add_site, so it stops short of full when/when-not coverage, but the method-selection context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_inspect_urlInspect URLARead-only
URL Inspection: index status, coverage, last crawl, canonical and rich results for one URL in the property.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Fully-qualified URL that belongs to the property | |
| siteUrl | No | Property: 'sc-domain:example.com' (domain property) or 'https://example.com/' (URL-prefix, trailing slash). Defaults to the project's linked property. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe, non-mutating call, and the description is consistent with that. It adds useful detail on what is inspected (canonical, rich results), but says nothing about rate limits, quota, latency, or whether the inspection is live versus cached.
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 tight sentence with the resource front-loaded and no filler. It loses a point only because the leading 'URL Inspection' restates the tool name and title rather than adding information.
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 returned fields (index status, coverage, last crawl, canonical, rich results), which is exactly what compensates for the missing output contract. Only minor gaps remain: no note on response timing or what happens if the URL is outside the property.
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%: the schema already explains that 'url' must be fully-qualified and belongs to the property, and that 'siteUrl' accepts either 'sc-domain:' or URL-prefix format. The description adds no syntax or constraint detail beyond that, 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?
States a specific verb+resource ('URL Inspection') plus the exact data categories it surfaces (index status, coverage, last crawl, canonical, rich results). The qualifier 'for one URL in the property' separates it from the aggregate siblings like gsc_search_analytics and gsc_performance_summary, though no sibling is named 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 only implied by the single-URL scope: an agent can infer this is for checking one page rather than a site-wide rollup. There is no explicit when-to-use, when-not, or pointer to an alternative for property-wide questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_link_projectLink project to propertyA
Save which Search Console property this website project uses (writes .gsc-connect.json in the project root; contains no secrets).
| Name | Required | Description | Default |
|---|---|---|---|
| siteUrl | Yes | Property URL exactly as gsc_list_sites returns it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the key side effect: it writes a file at .gsc-connect.json in the project root and explicitly notes it contains no secrets, which is meaningful for an agent reasoning about security. It stops short of stating whether an existing link is overwritten, what happens if the property is not verified, or what the call returns.
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 effect and a tight parenthetical for the file-write detail. 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?
For a single-parameter write tool with no output schema, the description covers the essential behavior. The only real omission is return/confirmation behavior and overwrite semantics, which are minor.
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 single parameter's own description ('exactly as gsc_list_sites returns it') already carries the critical format guidance. The prose adds only the general notion of 'which property', so the 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?
States a specific verb and resource: persisting which Search Console property a website project uses. It is clear on its own, but it does not explicitly distinguish itself from siblings like gsc_connect or gsc_add_site, which an agent might reasonably confuse with 'link property'.
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 only implied: the description suggests this is the step that records the chosen property for a project, but it never says when to call it versus gsc_connect, gsc_add_site, or gsc_status, nor whether it must follow a successful connect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_list_sitemapsList sitemapsARead-only
Sitemaps submitted for the property, with status, errors, warnings and last download time.
| Name | Required | Description | Default |
|---|---|---|---|
| siteUrl | No | Property: 'sc-domain:example.com' (domain property) or 'https://example.com/' (URL-prefix, trailing slash). Defaults to the project's linked property. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already covers the safety profile, and the description adds genuinely useful behavioral context by disclosing the shape of each returned record (status, errors, warnings, last download time). With no output schema, that payload disclosure is the only thing telling the agent what comes back.
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 dense sentence that front-loads the resource and immediately lists the returned fields. It is a noun fragment rather than a sentence, but nothing is wasted.
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-optional-parameter read tool with annotations already declaring safety, the description covers purpose, scope and return contents adequately. Only the absence of pagination or ordering notes (and any sibling routing) keeps it short of full completeness.
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 itself documents the domain vs URL-prefix forms plus the trailing-slash rule and default. The description only alludes to it via 'for the property', adding no syntax or format detail beyond the schema. 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 names the resource (sitemaps submitted for the property) and enumerates what each entry carries: status, errors, warnings and last download time. Combined with the title it is unambiguous, though it never explicitly contrasts itself with gsc_submit_sitemap or gsc_delete_sitemap, leaving sibling differentiation 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?
There is no when-to-use guidance and no mention of alternatives. An agent can infer that this is the read-side counterpart to gsc_submit_sitemap/gsc_delete_sitemap, but nothing in the text confirms that or states prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_list_sitesList propertiesARead-only
List Search Console properties the connected account can access, with permission level.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes the safety profile, so the bar is low. The description usefully adds that results are bounded by the connected account's access and that each entry carries a permission level, but says nothing about ordering, volume, or what an empty result means.
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 well-formed sentence with the resource and scope front-loaded and no wasted clauses.
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 no-argument read tool with annotations and no output schema, the description covers what is returned (properties plus permission level) and under what access constraint. Only minor return-shape details remain unstated.
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 there is no parameter semantics to document; baseline 4 applies. The description correctly does not invent argument detail.
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 (list Search Console properties), the scope (those the connected account can access) and the payload (permission level), which cleanly separates it from siblings like gsc_add_site and gsc_list_sitemaps. It stops short of naming an alternative tool explicitly, but the resource is unambiguous.
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 only implied: an agent infers this is the discovery call before operations that need a site URL, and 'the connected account' hints that gsc_connect must have run first. No when-not-to-use or explicit alternative is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_open_dashboardOpen the GSC dashboardARead-only
Open the local Search Console dashboard (performance, queries, pages, opportunities, indexing) in the user's browser.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe, non-mutating call. The description adds genuinely useful context beyond that: the dashboard is 'local' and opens in the browser, so the agent knows the effect is a client-side UI launch, not a server-side mutation or a data payload. It does not say whether a connection must exist first, whether a local server/port is started, or whether anything is returned.
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 sentence, front-loaded with the verb and resource, with the parenthetical section list as a compact scope statement. Nothing is wasted and nothing important is buried.
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 parameterless, non-mutating UI tool with no output schema, the description covers what happens and where. The main remaining gap is the prerequisite/state dependency (whether a connected site is required, what happens if none is connected), which matters for a dashboard that renders site-specific data.
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, which is the baseline-4 case; there is nothing for the description to clarify or compensate for. 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?
States a specific verb and resource ('Open the local Search Console dashboard') and enumerates what the dashboard contains (performance, queries, pages, opportunities, indexing). This clearly separates it from data-returning siblings like gsc_search_analytics, though it never names or contrasts an alternative 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?
The phrase 'in the user's browser' implicitly signals this is a visual/UI action rather than a data fetch, which is the main routing decision an agent faces here. But there is no explicit when-to-use condition, no mention of prerequisites (e.g. an active gsc_connect session), and no named alternative for retrieving the same data programmatically.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_performance_summaryPerformance summaryARead-only
Totals for a period compared with the previous period of equal length, plus top queries and pages. A good first call for 'how is the site doing?'.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Top queries/pages to include. Default 10. | |
| days | No | Period length in days, ending yesterday. Default 28. | |
| siteUrl | No | Property: 'sc-domain:example.com' (domain property) or 'https://example.com/' (URL-prefix, trailing slash). Defaults to the project's linked property. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes this as a safe read. The description usefully adds the comparative-period behavior (totals vs. an equal-length previous period), which the annotations don't convey. It says nothing about response size, row limits, or latency for large ranges, so it adds context but not a full behavioral picture.
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 tight sentences, front-loaded with the return content and closed with the routing hint. No filler, no restatement of the title.
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 must carry return-value burden, and it does outline the payload: totals, prior-period comparison, and top queries/pages. It is not fully complete — no indication of ordering, truncation, or what the comparison fields are named — but it is adequate for a 3-param, all-optional read tool.
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%: top, days, and siteUrl all carry their own semantics, defaults, and bounds in the schema. The description adds no parameter-level detail (e.g., how 'days' interacts with the comparison window) beyond what the schema already states, so the 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 names a specific output shape: period totals compared against an equal-length prior period, plus top queries and pages. That is concrete enough to distinguish it from a raw data-export tool, but it never names gsc_search_analytics, the obvious overlapping sibling, so the boundary 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?
'A good first call for "how is the site doing?"' gives an implied usage context and positions the tool as an entry point. It offers no when-not-to-use guidance and does not name an alternative for deeper/detail queries, so routing is only loosely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_search_analyticsSearch analytics queryARead-only
Query Search Console performance data (clicks, impressions, CTR, position). Data is available for the last 16 months and usually lags 2–3 days. CTR is returned as a fraction.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Default web. Web includes AI Overviews and AI Mode; the API can't separate them. | |
| endDate | No | Default: yesterday | |
| filters | No | ANDed together. Regex operators use RE2 syntax. | |
| siteUrl | No | Property: 'sc-domain:example.com' (domain property) or 'https://example.com/' (URL-prefix, trailing slash). Defaults to the project's linked property. | |
| rowLimit | No | Default 100 | |
| startRow | No | ||
| queryType | No | Uses the project's brand terms (gsc_set_brand_terms) | |
| startDate | No | Default: 28 days ago | |
| dimensions | No | 'hour' returns hourly rows for the last ~10 days (dataState hourly_all). Discover and Google News don't support 'query'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true; the description adds genuinely useful context beyond that — the 16-month availability window, the 2–3 day data lag, and the CTR-as-fraction representation, which prevents a common misinterpretation of returned values.
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 tight sentences, zero waste, and the core capability is front-loaded before the caveats. Every sentence earns its place.
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 9 parameters, no output schema, and no annotations beyond read-only, the description covers data freshness and metric encoding well but says nothing about the returned row shape (dimensions plus metrics) or pagination expectations, which an agent must infer from the schema alone.
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 89%, so the schema already documents nearly all 9 parameters (defaults, siteUrl formats, filter semantics, 'hour' behavior). The description adds no parameter-level meaning beyond that, so the 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?
States a specific verb (Query) and resource (Search Console performance data) and enumerates the metrics returned (clicks, impressions, CTR, position). It does not differentiate itself from the sibling gsc_performance_summary, so it is clear but not sibling-distinguishing.
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?
No when-to-use guidance, no prerequisites, and no routing to alternatives such as gsc_performance_summary or gsc_inspect_url. The data-window notes are behavioral facts, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_set_brand_termsSet brand termsB
Set the words that make a query 'branded' (business name, product names, common misspellings). Enables branded vs non-branded analysis in gsc_search_analytics, reports and the dashboard.
| Name | Required | Description | Default |
|---|---|---|---|
| terms | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the downstream effect (enables branded analysis) but omits core mutation semantics: whether existing terms are replaced or merged, whether the change persists, and any auth/scope requirements. For a write/config tool with zero annotation coverage this is a significant gap.
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 tightly written sentences with the definition front-loaded and the payoff second. Every clause carries information, though the trailing list of consumers ('reports and the dashboard') is slightly padded relative to the single named sibling.
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 one-parameter config tool with no output schema and no annotations, the description covers purpose and effect but not the operational details an agent needs: replace-vs-append behavior, limits, and required preconditions. Adequate minimum viability, but not sufficient for confident mutation.
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 0%, so the description must compensate, and it partly does by explaining what a brand term is (business name, products, misspellings). However, it never mentions the operative constraints already in the schema (max 30 terms, 1-60 chars each) nor whether the array overwrites prior terms, leaving the parameter's update behavior undocumented.
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 (Set) and resource (brand terms), then defines the concept inline ('words that make a query branded') with concrete examples. It also distinguishes itself from siblings by naming gsc_search_analytics as the consumer of this configuration.
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 rather than stated: the agent can infer this should be called to configure branded vs non-branded segmentation before running analysis. There is no explicit when-to-use, no prerequisite (site must be connected/selected?), and no mention of alternatives or when not to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_statusConnection statusARead-only
Show whether Google is connected, which account, and which property this project is linked to.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes the safety profile, so the description's added value is the disclosed return content, which is important because there is no output schema. It tells the agent it will learn connection state, account, and property, but says nothing about what is returned when Google is not connected.
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 sentence that front-loads the primary answer (is Google connected) and then adds the secondary details. Every clause earns its place and nothing is padded.
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 no-parameter read-only status tool with no output schema, the description covers the essentials of what the agent will learn. It would be fully complete only if it described the not-connected case or the shape of the response.
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 there is nothing the description needs to disambiguate; the baseline for a parameterless tool applies. No misleading or missing parameter information is possible here.
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?
'Show' is an unambiguous verb and the resource is spelled out precisely: connection state, linked account, and linked property. This clearly distinguishes it from siblings like gsc_list_sites or gsc_performance_summary, though it never names an alternative 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 rather than stated: the agent can infer this is the pre-flight check before other gsc_* calls, but nothing says when to call it versus gsc_connect or gsc_list_sites. No exclusions or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_submit_sitemapSubmit sitemapC
Submit (or resubmit) a sitemap URL for the property.
| Name | Required | Description | Default |
|---|---|---|---|
| siteUrl | No | Property: 'sc-domain:example.com' (domain property) or 'https://example.com/' (URL-prefix, trailing slash). Defaults to the project's linked property. | |
| feedpath | Yes | e.g. https://example.com/sitemap.xml |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and does not meet it. It does not disclose whether submission requires a verified property, what happens if the sitemap is already submitted, error behavior for malformed URLs, or side effects on processing status.
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 short sentence with the verb and target front-loaded and zero filler. It is efficient, though terse enough that it omits any context that would help an agent act correctly.
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 mutation tool with no annotations, no output schema, and no usage or constraint information, the definition is too thin. An agent cannot tell what preconditions apply, what a successful/failed submission returns, or how this relates to the sibling sitemap tools.
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 both siteUrl and feedpath are fully documented in the schema, including the domain vs URL-prefix format and the default linked property. The description adds no parameter meaning beyond the schema, which is the baseline case for a 3.
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 (submit/resubmit) and resource (sitemap URL for the property), so the core action is unambiguous. It does not differentiate itself from siblings like gsc_list_sitemaps or gsc_delete_sitemap, though the name makes the distinction reasonably obvious.
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?
No guidance on when to use this versus gsc_list_sitemaps or gsc_delete_sitemap, and no prerequisites (e.g., site must be verified). The only usage hint is the parenthetical 'or resubmit', which implies re-submission is allowed but doesn't say why or when.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsc_verify_siteVerify ownershipA
Ask Google to check the verification token placed by the chosen method. Run after deploying the meta tag / file or adding the DNS record.
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | META | |
| siteUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that this is a Google-side check requiring a pre-placed token and implies an external network call, but it does not state permission/auth requirements, failure behavior, retry semantics, or whether the check is idempotent.
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 tight sentences, front-loaded with the action and followed by the timing precondition. No filler or 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 no-annotation, no-output-schema verification tool, the description covers the core action and the prerequisite but omits return/result handling, failure modes, and the mapping between deployment methods and enum values. Adequate but leaves real gaps for an agent.
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 0%, so the description must compensate for two undocumented parameters. It hints at 'the chosen method' and references meta tag/file and DNS records, which loosely maps to the META/FILE/DNS_TXT/DNS_CNAME enum, but it never explains which values correspond to which deployment nor what siteUrl expects.
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 action ('Ask Google to check the verification token') and resource (site ownership verification), which clearly distinguishes it from gsc_get_verification_token and gsc_add_site. It doesn't explicitly name a sibling to contrast against, but the verb+resource is unambiguous.
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 a clear precondition: run it after deploying the meta tag/file or adding the DNS record. This tells the agent exactly when the tool is appropriate, though it does not name alternative tools or state what to do if verification fails.
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.
18 tool updates
v0.1.2- First observed
gsc_add_annotation - First observed
gsc_add_site - First observed
gsc_connect - First observed
gsc_delete_sitemap - First observed
gsc_disconnect - First observed
gsc_export_report - First observed
gsc_get_verification_token - First observed
gsc_inspect_url - First observed
gsc_link_project - First observed
gsc_list_sitemaps - First observed
gsc_list_sites - First observed
gsc_open_dashboard - First observed
gsc_performance_summary - First observed
gsc_search_analytics - First observed
gsc_set_brand_terms - First observed
gsc_status - First observed
gsc_submit_sitemap - First observed
gsc_verify_site
TDQS
Scored across 18 tools
Most tools target distinct Search Console setup, verification, reporting, or sitemap tasks, but gsc_search_analytics and gsc_performance_summary partially overlap, and gsc_connect/gsc_link_project both relate to selecting a property. Descriptions largely mitigate the confusion, so boundaries are mostly clear.
All 18 tools use a consistent gsc_ snake_case prefix with predictable verb_noun or noun forms, such as gsc_list_sites, gsc_submit_sitemap, and gsc_get_verification_token. There are no mixed conventions or vague names.
18 tools is on the high side for a connector, but the set is grouped into setup/auth, analytics, verification, sitemaps, and reporting. Each tool maps to a specific operation, making it feature-rich rather than bloated.
The surface covers connection/status, property add/list/link/verify, analytics summary and querying, URL inspection, sitemaps list/submit/delete, report export, annotations, and brand terms. The main gap is property deletion/removal, but core workflows are otherwise covered.
Maintenance
Related MCP Connectors
Free Google Search Console MCP: your real GSC, Google Analytics and keyword data for AI agents.
Ask Google Search Console in plain language. Hosted, free, no Google Cloud project.
Live Google Ads, GA4, Search Console, Meta Ads and GBP data in Claude, ChatGPT and any MCP client
Read-only Google Search Console MCP server for AI assistants.
Related MCP Servers
- AlicenseAqualityDmaintenanceGoogle Search Console for Claude, Cursor & any MCP client — one sign-in, 30 seconds, no Google Cloud project. Six read-only tools (search analytics incl. Google Discover, period comparison with computed deltas, batch URL inspection, sitemaps) plus five built-in SEO analyses as slash-commands. Tokens stay on your machine. MIT.6120 npm7MIT
- AlicenseNot gradedqualityCmaintenanceSelf-hosted Google Search Console MCP server deployable to Cloudflare Workers, allowing natural language queries of GSC data via ChatGPT, Claude, or any MCP-capable client.MIT
- AlicenseBqualityCmaintenanceA production-oriented, read-only Google Search Console MCP server and TypeScript SDK for Claude, Cursor, VS Code, and other MCP clients. Query real Search Console data, inspect indexed URLs, review sitemaps, compare periods, and surface transparent SEO opportunities without handing private data to a third-party SaaS.20MIT
- FlicenseNot gradedqualityCmaintenanceEnables users to query Google Search Console data interactively from Claude Desktop and via CLI, providing search analytics, period comparisons, branded split, indexing status, sitemaps, and full CSV exports.-



