Skip to main content
Glama
GlobalMatchHub

SearchLink Lite

SearchLink Lite

HOL Guard Scanner Indexed on TensorBlock MCP Index

Google Search Console inside Claude, Cursor and any MCP client. Runs on your machine, read-only, free (MIT).

Ask things like:

  • "How did example.com do on Google in the last 28 days?"

  • "Which pages lost the most clicks?"

  • "Which queries get impressions but no clicks?"

  • "Is https://example.com/pricing indexed?"

Tools

Tool

What it answers

list_sites

Which sites are in your Search Console

site_overview

Clicks, impressions, CTR, position vs the previous period, biggest drops and gains, up to 3 things to do now

search_performance

Any breakdown by query, page, country, device or date, with filters and period comparison

find_opportunities

High impressions but low CTR, queries ranking #8-20, pages losing clicks

inspect_url

Is this page indexed, last crawl, Google's canonical

sitemaps

Sitemap status, errors and URL counts

page_check

Title, description, canonical, noindex, headings, thin content, alt text, structured data errors

algorithm_updates

Google's own ranking update history, so you know whether a drop was an update

Totals come from the date dimension, so they match the Search Console UI. (Summing page rows double-counts impressions.)

Related MCP server: SearchConsole.ai

Setup (about 10 minutes)

You need a Google credentials file that can read Search Console. A service account is the most reliable option.

  1. In Google Cloud Console, pick or create a project and enable the Google Search Console API.

  2. Go to IAM & Admin > Service accounts, create one (no roles needed), then Keys > Add key > JSON. Save the file somewhere safe.

  3. In Search Console, open Settings > Users and permissions > Add user, paste the service account email, and choose Restricted. Repeat for each site.

  4. Add the server to your client (below), pointing GOOGLE_APPLICATION_CREDENTIALS to the JSON file.

Already use gcloud? This also works instead of steps 1-3:

gcloud auth application-default login --scopes=https://www.googleapis.com/auth/webmasters.readonly,https://www.googleapis.com/auth/cloud-platform

Claude Desktop

In claude_desktop_config.json:

{
  "mcpServers": {
    "searchlink": {
      "command": "npx",
      "args": ["-y", "searchlink-lite"],
      "env": { "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/key.json" }
    }
  }
}

Claude Code

claude mcp add searchlink -e GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json -- npx -y searchlink-lite

Cursor

In ~/.cursor/mcp.json, use the same block as Claude Desktop.

As a plugin

This repo ships a plugin manifest (.claude-plugin/plugin.json) and an MCP config (.mcp.json), so clients that install plugins from a repository can pick the server up without a config file of their own. Credentials still come from GOOGLE_APPLICATION_CREDENTIALS or your gcloud application default credentials.

One file install

If your client supports MCP bundles, download searchlink-lite-0.2.0.mcpb from Releases and open it. It asks for your credentials file and nothing else.

It is also in the official MCP Registry as com.namubase.searchlink/searchlink-lite.

Requires Node.js 18 or newer.

Privacy

Everything runs locally. Your credentials and data go only to Google's APIs. Nothing is sent to us.

Want it without the setup?

SearchLink is the hosted version (see a live report, no sign-in): sign in with Google (no key files), and it adds change tracking with before-and-after measurement, content decay, brand split, history kept past Google 16 months, Copilot citation tracking, page speed, a one-screen dashboard, a Monday email with 3 things to fix, and daily alerts when clicks drop. Works in Claude, ChatGPT and Cursor. Free for up to 3 sites.

list_sites and site_overview end with one line about the hosted version. Set SEARCHLINK_LITE_QUIET=1 in the server's env to turn it off. It is a plain link; nothing is sent anywhere unless you click it.

License

MIT

Available Tools

8 tools
algorithm_updatesGoogle updatesA
Read-onlyIdempotent

Google's official ranking and spam update history from the Google Search Status Dashboard, with start and end dates. Use it when traffic changed suddenly, to see whether an update lines up, before blaming the site's own edits. Needs no credentials. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoHow many days back to list updates, 7 to 365. Default 90.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint and destructiveHint=false. The description adds that no credentials are needed, which is a useful behavioral detail. However, it repeats read-only and does not disclose other behaviors like response format or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, front-loaded with the core purpose, followed by a clear use case and a short note on credentials/safety. Every sentence earns its place with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read-only tool with no output schema, the description covers the data source, temporal coverage, intended use case, and auth requirement. It could mention the exact output fields, but the description is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema's description for 'days' fully explains the range and default. The tool description adds no additional meaning about that parameter, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as Google's official ranking and spam update history from the Search Status Dashboard, including start and end dates. This distinguishes it from sibling tools like search_performance and site_overview, which focus on site-level metrics and diagnostics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use this tool: when traffic changed suddenly, to see whether an update lines up before blaming site edits. While it doesn't name a specific alternative, the context makes the intended use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_opportunitiesFind opportunitiesA
Read-onlyIdempotent

Finds the quickest wins: queries seen often but rarely clicked (rewrite the title or description), queries ranking #8 to #20 (one push from page one), and pages losing clicks. Use when the user asks what to improve or where to start. Returns each item with its numbers and the suggested fix. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLength of the period in days, 7 to 480, ending about 3 days ago because Google data lags. It is compared with the same number of days right before it. Default 28.
siteYesThe Search Console property to read. Accepts "example.com", "https://example.com/" or "sc-domain:example.com". Call list_sites first if unsure which properties exist.
limitNoMaximum items per kind of opportunity, 1 to 50. Default 15.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds behavioral depth by explaining the selection logic and return contents (numbers and suggested fixes), going beyond the annotation-only picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact: it front-loads the outcome, then gives the trigger condition, return shape, and safety hint. Every sentence earns its place with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the fully documented schema, rich non-destructive annotations, and a clear return-shape statement, nothing an agent needs to invoke this tool correctly is missing. The absence of an output schema is compensated by the explicit mention of returned numbers and suggested fixes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all three parameters (days, site, limit) fully documented in the input schema. The description itself adds no parameter-specific semantics, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Finds') and resource ('opportunities'), then enumerates three concrete opportunity categories. This makes its purpose unambiguous and clearly distinguishes it from siblings like search_performance or site_overview.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use the tool: 'Use when the user asks what to improve or where to start.' This is clear and actionable, though it does not name specific alternatives or exclusion conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_urlCheck if a page is indexedA
Read-onlyIdempotent

Asks Google's URL Inspection API about one page: whether it is indexed, the coverage state, last crawl time, the canonical Google chose versus the one you declared, and robots or fetch problems. Use for "is this page on Google?" questions. For on-page problems use page_check. Read-only; Google allows about 2,000 inspections a day per property.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL of the page to inspect, including https://. It must belong to the site given.
siteYesThe Search Console property to read. Accepts "example.com", "https://example.com/" or "sc-domain:example.com". Call list_sites first if unsure which properties exist.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and idempotentHint annotations, the description adds meaningful behavioral context: it is read-only and has a daily rate limit of about 2,000 inspections per property. It also discloses what kind of results the agent can expect, such as indexed status and canonical choices, which is valuable given there is no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three tight sentences that front-load the tool's core purpose, then quickly add use case, alternatives, safety, and rate-limit context. Every sentence earns its place with no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read-only inspection tool, the description is complete: parameters are fully documented in the schema, annotations cover safety and idempotency, and the description enumerates the expected return information despite the lack of an output schema. The rate limit is an important operational detail that is included. Nothing essential is missing for an agent to select and call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides full descriptions for both parameters at 100% coverage, so the schema carries the parameter documentation burden. The tool description does not add new semantic detail about the parameters beyond what the schema states, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it asks Google's URL Inspection API about one page. It lists the exact information returned (indexed status, coverage state, last crawl, canonical choices, robots/fetch problems) and clearly differentiates this from the sibling page_check tool. An agent can immediately tell what this tool does and what it does not do.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to use this tool for "is this page on Google?" questions and names page_check as the alternative for on-page problems. This gives clear when-to-use and when-not-to-use guidance, leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sitesList my sitesA
Read-onlyIdempotent

Lists every Search Console property the credentials can read, with the access level of each. Call this first when the user has not named a site, or when another tool says a site was not found. Read-only. Returns a table of property URLs and permissions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld, and non-destructive. The description adds useful context about output ('Returns a table of property URLs and permissions') and the scope ('credentials can read'). It reinforces safety with 'Read-only' without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero filler. The main action is front-loaded, followed by when-to-use and output format. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter listing tool with rich annotations, the description is complete: it explains the output table and access levels, gives clear call contexts, and relies on annotations for safety. No missing information needed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the baseline is 4. The description correctly implies no inputs are needed and focuses on output. Nothing about parameters needs to be added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Lists every Search Console property the credentials can read, with the access level of each.' It clearly distinguishes this list/discovery tool from the site-specific siblings by focusing on enumeration of accessible properties.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance: 'Call this first when the user has not named a site, or when another tool says a site was not found.' It does not name alternative tools, so it lacks the 'when not to use' or alternative-route clarity of a 5, but the context is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

page_checkCheck one pageA
Read-onlyIdempotent

Fetches one public page the way a search engine does and checks the title, meta description, canonical, noindex and robots.txt, H1 headings, word count, image alt text and structured data. Returns what it found and a list of problems in order of importance. Works without any Google credentials. Read-only: it only downloads the page.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL of any public page to check, including https://.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly says 'Read-only: it only downloads the page', reinforcing and extending the readOnlyHint/idempotentHint annotations. It also discloses the output behavior ('returns what it found and a list of problems in order of importance') and the absence of credential requirements, which annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded sentences cover purpose, output, auth, and read-only behavior with no filler. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read-only tool with no output schema, the description is complete: it lists inputs, outputs, access requirements, and side-effect behavior. There is no missing information an agent would need to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the URL parameter is already fully documented in the schema. The description confirms the URL should be a public page but adds no new parameter-level detail beyond that baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('fetches one public page'), a concrete scope ('one public page the way a search engine does'), and enumerates the exact checks performed (title, meta description, canonical, noindex, robots.txt, H1s, word count, alt text, structured data). This scope clearly separates it from site-level siblings like site_overview and list_sites.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is implicit: use this when you need a per-page SEO/crawlability audit. It also gives a useful prerequisite ('public page', 'without any Google credentials'), but it never explicitly states when to prefer a sibling or when not to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_performanceSearch performance (custom)A
Read-onlyIdempotent

Custom Search Console report when site_overview is not specific enough: group by query, page, country, device or date (up to two at once), filter by query or page text, sort, and optionally add the change against the previous period. Returns a table with clicks, impressions, CTR and position per row. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLength of the period in days, 7 to 480, ending about 3 days ago because Google data lags. It is compared with the same number of days right before it. Default 28.
siteYesThe Search Console property to read. Accepts "example.com", "https://example.com/" or "sc-domain:example.com". Call list_sites first if unsure which properties exist.
limitNoMaximum rows to return, 1 to 200. Default 25.
sort_byNoWhich number to sort rows by, highest first (position: best first). Default clicks.clicks
group_byNoOne or two dimensions to break the numbers down by, e.g. ["query"] or ["page", "query"]. Default ["query"].
filter_pageNoKeep only pages whose URL contains this text, e.g. "/blog/".
filter_queryNoKeep only search queries that contain this text (case-insensitive), e.g. a brand or product name.
compare_previousNoAdd each row's change against the previous period of the same length. Default false.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds the read-only statement and describes the output table shape (clicks, impressions, CTR, position), plus the grouping/filtering/sorting capabilities. It does not contradict annotations and adds useful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the purpose and distinguishing condition, then the capabilities and output. There is no filler, repetition, or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that all 8 parameters are fully documented in the schema and the annotations already cover safety and idempotency, the description provides sufficient top-level context: what the report does, when to use it, and what it returns. Nothing needed for correct selection and invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter already has detailed descriptions. The tool description summarizes the parameter capabilities (group_by, filter_query/page, sort_by, compare_previous) but does not add new semantic information beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource (Search Console property) and a clear set of actions: grouping, filtering, sorting, and comparing. It explicitly differentiates from the sibling tool site_overview with 'when site_overview is not specific enough', making its purpose distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names the alternative tool (site_overview) and the condition under which search_performance should be used instead. This gives an agent a clear decision rule for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sitemapsSitemap statusA
Read-onlyIdempotent

Lists the sitemaps submitted for the site in Search Console, with when Google last read each one, errors, warnings and how many URLs it contains. Use for indexing questions about many pages at once. Read-only; it does not submit or change sitemaps.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesThe Search Console property to read. Accepts "example.com", "https://example.com/" or "sc-domain:example.com". Call list_sites first if unsure which properties exist.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint, idempotentHint, and destructiveHint=false, and the description reinforces this with 'Read-only; it does not submit or change sitemaps'. It also discloses what data the call returns, which matters because no output schema is present. It does not discuss auth or rate limits, but for a safe list operation the annotations carry the key safety burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, with the main action and output components front-loaded, followed by use case and safety note. There is no filler or redundant restatement of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only list operation, the description is complete: it names the resource, the values returned, when to use it, and the fact that it does not mutate sitemaps. The schema covers the only input, and the annotation profile covers safety, so nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single required parameter is fully documented in the input schema, including accepted formats and a helpful pointer to list_sites for verification. The description adds no parameter-specific detail, but with 100% schema coverage the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Lists the sitemaps submitted for the site in Search Console', and enumerates the returned status fields (last-read time, errors, warnings, URL count). The line 'Use for indexing questions about many pages at once' further distinguishes it from single-page or site-overview sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly gives a usage context: indexing questions about many pages at once, which helps an agent decide between this and page-level tools like inspect_url or page_check. It does not name specific alternatives or state 'when not to use', so it stops short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

site_overviewSite overviewA
Read-onlyIdempotent

The first tool to call for any question about how a site is doing on Google. Returns total clicks, impressions, CTR and average position for the period against the period before (totals match the Search Console UI), the pages that gained and lost the most clicks, and up to 3 plain-language things to do now. For custom breakdowns use search_performance instead. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLength of the period in days, 7 to 480, ending about 3 days ago because Google data lags. It is compared with the same number of days right before it. Default 28.
siteYesThe Search Console property to read. Accepts "example.com", "https://example.com/" or "sc-domain:example.com". Call list_sites first if unsure which properties exist.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond the annotations: the period comparison against the prior period, the fact that totals match the Search Console UI, and the data-lag note in the days parameter. It doesn't describe pagination or exact response shape, but for a read-only overview tool this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero filler. The most important guidance ('first tool to call') is front-loaded, followed by concrete output details and a clear pointer to the alternative. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only overview tool with two well-documented parameters, no output schema, and strong annotations, the description covers the essential context: what it returns, how the period comparison works, when to use it, and when to use the sibling instead. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters well. The description adds value by explaining the comparison semantics ('against the period before') and the data-lag context ('ending about 3 days ago because Google data lags'), which go beyond the schema's parameter descriptions. It doesn't add much about the site parameter, but the schema already covers accepted formats and the list_sites hint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('call first'), a clear resource ('how a site is doing on Google'), and enumerates the exact outputs (totals, deltas, top pages, plain-language actions). It also distinguishes itself from the sibling search_performance, so an agent can tell them apart without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says 'The first tool to call for any question about how a site is doing on Google' and names the alternative for custom breakdowns ('use search_performance instead'). This gives both a positive trigger and an exclusion condition, which is exactly the when-to-use guidance an agent needs.

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.

  1. 7 tool updatesv0.2.0
    • Addedalgorithm_updates
    • Changedfind_opportunities3 fields changed
      • changedInput schema / properties / days / description
        Previous value: -"Length of the period in days (compared with the period right before it)."New value: +"Length of the period in days, 7 to 480, ending about 3 days ago because Google data lags. It is compared with the same number of days right before it. Default 28."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum items per kind of opportunity, 1 to 50. Default 15."
      • changedInput schema / properties / site / description
        Previous value: -"Your site, e.g. \"example.com\". Use list_sites to see options."New value: +"The Search Console property to read. Accepts \"example.com\", \"https://example.com/\" or \"sc-domain:example.com\". Call list_sites first if unsure which properties exist."
    • Changedinspect_url2 fields changed
      • changedInput schema / properties / site / description
        Previous value: -"Your site, e.g. \"example.com\". Use list_sites to see options."New value: +"The Search Console property to read. Accepts \"example.com\", \"https://example.com/\" or \"sc-domain:example.com\". Call list_sites first if unsure which properties exist."
      • changedInput schema / properties / url / description
        Previous value: -"Full page URL"New value: +"Full URL of the page to inspect, including https://. It must belong to the site given."
    • Addedpage_check
    • Changedsearch_performance8 fields changed
      • addedInput schema / properties / compare_previous / description
        Added value: +"Add each row's change against the previous period of the same length. Default false."
      • changedInput schema / properties / days / description
        Previous value: -"Length of the period in days (compared with the period right before it)."New value: +"Length of the period in days, 7 to 480, ending about 3 days ago because Google data lags. It is compared with the same number of days right before it. Default 28."
      • changedInput schema / properties / filter_page / description
        Previous value: -"Only pages whose URL contains this text."New value: +"Keep only pages whose URL contains this text, e.g. \"/blog/\"."
      • changedInput schema / properties / filter_query / description
        Previous value: -"Only queries containing this text."New value: +"Keep only search queries that contain this text (case-insensitive), e.g. a brand or product name."
      • addedInput schema / properties / group_by / description
        Added value: +"One or two dimensions to break the numbers down by, e.g. [\"query\"] or [\"page\", \"query\"]. Default [\"query\"]."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return, 1 to 200. Default 25."
      • changedInput schema / properties / site / description
        Previous value: -"Your site, e.g. \"example.com\". Use list_sites to see options."New value: +"The Search Console property to read. Accepts \"example.com\", \"https://example.com/\" or \"sc-domain:example.com\". Call list_sites first if unsure which properties exist."
      • addedInput schema / properties / sort_by / description
        Added value: +"Which number to sort rows by, highest first (position: best first). Default clicks."
    • Changedsite_overview2 fields changed
      • changedInput schema / properties / days / description
        Previous value: -"Length of the period in days (compared with the period right before it)."New value: +"Length of the period in days, 7 to 480, ending about 3 days ago because Google data lags. It is compared with the same number of days right before it. Default 28."
      • changedInput schema / properties / site / description
        Previous value: -"Your site, e.g. \"example.com\". Use list_sites to see options."New value: +"The Search Console property to read. Accepts \"example.com\", \"https://example.com/\" or \"sc-domain:example.com\". Call list_sites first if unsure which properties exist."
    • Changedsitemaps1 field changed
      • changedInput schema / properties / site / description
        Previous value: -"Your site, e.g. \"example.com\". Use list_sites to see options."New value: +"The Search Console property to read. Accepts \"example.com\", \"https://example.com/\" or \"sc-domain:example.com\". Call list_sites first if unsure which properties exist."
  2. 6 tool updatesv0.1.0
    • First observedfind_opportunities
    • First observedinspect_url
    • First observedlist_sites
    • First observedsearch_performance
    • First observedsite_overview
    • First observedsitemaps

TDQS

A4.3/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct read-only Search Console or SEO concern, and the descriptions include explicit guidance on when to use one instead of another. Even similar pairs like inspect_url vs. page_check and site_overview vs. search_performance are clearly separated by purpose and use cases.

Naming Consistency4/5

All tool names use lowercase snake_case and are short and readable, but they do not follow a single strict verb_noun pattern: list_sites and inspect_url are verb-first, while site_overview and sitemaps are noun-first. This is a minor deviation rather than a chaotic mix.

Tool Count5/5

Eight tools is well within the ideal range for a focused read-only Search Console server. Each tool covers a distinct workflow without redundancy or scope creep, and none of them feel like filler.

Completeness4/5

The tool surface covers the main read-only SEO workflows: property discovery, performance reporting, opportunity identification, URL inspection, on-page checks, algorithm context, and sitemap health. A whole-site index coverage report is missing, but agents can approximate it using sitemaps and inspect_url, so the gap is not severe.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Read-only MCP server that gives AI clients access to Google Search Console data, enabling natural language queries about traffic, rankings, and SEO opportunities.
    143 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Read-only MCP server for Google Search Console data, enabling search analytics, URL inspection, indexing diagnostics, and sitemap management through MCP clients.
    26 npm
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Enables Google Search Console data queries via MCP, including search analytics, performance comparisons, URL inspection, and sitemap management.
    12
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides read-only access to Google Search Console data, including search analytics, sitemap status, and URL inspection, for MCP clients like Claude.
    3 npm
    MIT