Skip to main content
Glama
ajmalaksar25

gsc-mcp

by ajmalaksar25

Searchlight

Technical SEO that fixes itself.

An autonomous technical-SEO and analytics agent, delivered as a Model Context Protocol (MCP) server. Point it at your site: it finds what's broken, explains it in plain language, fixes it in your repository, deploys, and verifies the fix is live.

Website · The /searchlight skill · Quickstart · Tools

License: MIT  Model Context Protocol  Node


The loop

Most SEO tools stop at the diagnosis. Searchlight runs the whole loop and proves the last step.

Step

What it does

Detect

Reads your Search Console and Analytics data, crawls key pages, finds indexing, canonical, redirect, sitemap, speed and on-page issues.

Explain

Triages every finding in plain language with a worry-level: fix now, worth improving, or normal and safe to ignore.

Fix

Edits your repository, framework-aware: canonical and host conflicts, redirect loops, sitemaps, metadata, structured data, the analytics tag.

Deploy

Commits and ships through your existing pipeline. Edits only count once they are live.

Verify

Re-audits the live site and confirms the fix in a real browser: the redirect resolves, the tag fires, the canonical agrees.

Proof

A live run on zawaaj.in (a custom Next.js site with a host and canonical conflict and missing analytics) went from audit 90 → 98 — canonical set, host redirect aligned (www → apex), meta trimmed, GA4 installed and verified firing, sitemap submitted — in about 50 minutes (≈25 minutes active; the rest idle waiting on a redeploy), versus a 4–6 hour manual baseline for a skilled developer. The full annotated run is on the website.

Searchlight automates the diagnosis and the fix. It does not design your ecommerce event-tracking plan — that part is still a human's job.


Related MCP server: Google SEO MCP

Quickstart

1. Add it to your MCP client (Claude Code shown; works in any MCP client):

claude mcp add searchlight -- npx -y @ajmalaksar/searchlight serve --setup

Or, in a generic client config:

{
  "mcpServers": {
    "searchlight": { "command": "npx", "args": ["-y", "@ajmalaksar/searchlight", "serve"] }
  }
}

2. Sign in with Google (one local OAuth sign-in for Search Console and Analytics; the token is stored only on your machine):

npx -y @ajmalaksar/searchlight login --setup

3. Install the /searchlight skill so your agent runs the whole loop with one command:

npx -y @ajmalaksar/searchlight skill install

4. Ask:

/searchlight audit zawaaj.in

First time on Google Cloud? The bundled client lets most users skip setup. To bring your own (Tier 0), create a Desktop app OAuth client (enable the Google Search Console API and PageSpeed Insights API, add yourself as a test user) and pass SEARCHLIGHT_OAUTH_CLIENT_ID / SEARCHLIGHT_OAUTH_CLIENT_SECRET to login.

Renamed from gsc-mcp: the legacy ~/.gsc-mcp directory and GSC_* environment variables still resolve, so an existing install keeps working without re-authenticating.


The /searchlight skill

skill install drops a skill into your AI client so the agent orchestrates the full loop instead of you calling raw tools. It routes on the first word:

Command

Does

/searchlight audit [site]

Read-only diagnosis: detect + explain, triaged. No changes.

/searchlight setup [site]

The full guided loop: interview → detect → confirm → provision → fix → deploy → verify.

/searchlight fix [site]

Already audited? Go straight to plan → confirm → fix → deploy → verify.

It always confirms before any provisioning, code edit, sitemap submit, or deploy.


Tools

auth_status, auth_login, list_sites, use_site, get_active_site, set_default_site, account_overview, gsc_deep_link, query_search_analytics (presets: top_queries/top_pages), find_opportunities, compare_periods, inspect_url, coverage_report, refresh_coverage, crawl_site, site_audit, export_report, diagnose_site, audit_page, page_speed, snapshot_baseline, list_snapshots, progress_report, ga_list_properties, ga_measurement_id, ga_report (presets: traffic/top_pages), list_sitemaps. With --write / --setup: submit_sitemap, delete_sitemap, and the GA4 / verification provisioning tools.

crawl_sitesite_auditexport_report crawl your live site directly (no Google scope, no quota), then produce a triaged, site-wide technical-SEO report (status/redirects/ canonicals/orphans/link-graph/schema/hreflang) you can share as Markdown.

Coverage report reconstructs the "Page indexing" report the GSC API won't export in bulk: it gathers candidate URLs from sitemaps and analytics, inspects them within the 2,000/day per-property quota (resumable), caches the results under ~/.searchlight/sites/, and buckets them by index status.

Baseline & progress (snapshot_baseline → … fix … → snapshot_baselineprogress_report) freeze a site's health on a given day, then diff two days into a plain-English before→after of what improved — which issues resolved, which are new, and how score and traffic moved.


Local-first & private

Searchlight runs as a local server. You sign in with your own Google account; the token is stored only on your device. There is no hosted backend and no data warehouse — each person runs their own. Read-only by default; write and provisioning scopes are opt-in, requested only when you start a setup action. Open source and MIT licensed. See the Privacy Policy.


CLI

searchlight login            Sign in with Google (opens a browser)
searchlight logout           Remove the stored token
searchlight status           Authentication + onboarding status
searchlight setup            Guided first-run
searchlight sites …          Manage the property registry (list / add / remove / default)
searchlight skill install    Install the /searchlight skill into your AI client (--here for this project)
searchlight serve            Start the MCP server over stdio (default)

Develop

npm install
npm run build
npm test

The server is a tool registry. To add a capability, create src/tools/<group>.ts exporting register: ToolModule, then add it to MODULES in src/tools/index.ts. See SPEC.md for the architecture.

License

MIT © Ajmal Aksar

Available Tools

16 tools
account_overviewAccount overview (all sites)B

Portfolio view across every accessible property: last-28-day clicks and impressions per site, ranked. (Per-site SEO/coverage scores are added in a later phase.)

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback window. Default 28.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the data returned (clicks, impressions, ranking) and notes that SEO/coverage scores are added later, which is helpful. However, it does not mention auth requirements, rate limits, or whether the operation is read-only, which are gaps.

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, front-loading the core purpose in the first sentence and adding a future note in parentheses. Every word earns its place, with no redundancy or waste.

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?

Given the tool's simplicity (one optional parameter, no output schema, no annotations), the description provides adequate context about what the tool returns. It lacks details on output format or pagination, but for a ranked overview tool, this is 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?

The schema has 100% coverage for the single parameter 'days', including a description. The tool description does not add any additional meaning or constraints beyond what the schema already provides, so baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states it provides a portfolio view across all accessible properties, showing clicks and impressions per site ranked for the last 28 days. While it identifies the resource and action, it does not explicitly differentiate from sibling tools like list_sites or top_pages, which also provide site-level data.

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

Usage Guidelines2/5

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

The description implies use for a high-level overview but provides no explicit guidance on when to use this tool versus alternatives. No conditions, exclusions, or when-not-to-use are mentioned, leaving the agent to infer usage context.

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

auth_loginLog in to Google Search ConsoleA

Sign in to Google in the browser, right from here — no terminal needed. Opens the consent screen, captures the token on a localhost callback, and stores it. Use when auth_status says needs_login.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description fully describes the behavior: browser interaction, consent screen, callback token capture, and storage. It is transparent about the process and side effects.

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 long, front-loaded with the core action, and every word adds value. No extraneous information.

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 login tool with no output schema and no annotations, the description covers the purpose, usage guidance, and behavioral details adequately. It is complete for the tool's complexity.

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

Parameters4/5

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

No parameters exist, and the schema coverage is 100%, so the description does not need to add parameter details. The baseline for 0 parameters is 4.

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 states the tool logs in to Google Search Console, with specific actions: opens consent screen, captures token on callback, stores it. The verb 'Sign in' and resource 'Google Search Console' are explicit, and it distinguishes from sibling tools like auth_status.

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 says 'Use when auth_status says needs_login,' providing clear context for when to invoke this tool over alternatives.

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

auth_statusAuth statusA

Check whether the server is authenticated to Google Search Console, which scope is active, and where you are in onboarding (setupState). Call this first if other tools report an auth error.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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 discloses the tool is a read-only check and names specific data returned (scope, setupState). While it doesn't enumerate all possible states, it is sufficient for a status diagnostic tool.

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 a single, well-structured sentence that front-loads the core purpose and ends with a usage directive. Every word adds value, with no fluff or repetition.

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, parameterless, read-only tool with no output schema, the description completely covers what the tool does and when to use it. It is fully adequate for an agent to correctly select and invoke this tool.

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?

The tool has zero parameters, so baseline is 4. The description does not need to add parameter information, and it correctly focuses on the tool's purpose instead.

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 states that the tool checks server authentication, active scope, and onboarding state. It uses a specific verb 'Check whether' and distinguishes from sibling tools like auth_login by focusing on status rather than login.

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 says 'Call this first if other tools report an auth error,' providing a clear directive for when to use this tool. This is a strong usage guideline that helps the agent decide invocation context.

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

compare_periodsCompare periodsA

Compare the most recent N days against the preceding N days. Returns total clicks/impressions deltas plus the biggest gainers and losers for the chosen dimension.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLength of each window. Default 28.
limitNoMovers per direction. Default 10.
siteUrlNoProperty as shown in Search Console: a URL-prefix property ends with a slash (e.g. "https://example.com/") or a domain property uses "sc-domain:example.com". May be a registered alias, or omitted to use the active/default site.
dimensionNoDefault query.

TDQS

A4/5.0
Behavior3/5

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

No annotations exist, so the description must carry full weight. It discloses that the tool returns deltas and movers, but does not state whether the operation is read-only, safe, or has side effects. Adequate but not rich.

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 are front-loaded with action and output, zero waste. Every word earns its place.

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?

Given no output schema and 4 parameters, the description covers the core functionality. However, it lacks details on timezone handling, exact calculation method, and whether data is aggregated daily. Still mostly complete for a straightforward comparison tool.

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?

All four parameters have schema descriptions (100% coverage), so baseline is 3. The tool description does not add new meaning beyond what the schema provides, merely restating 'days' as window length and 'dimension' as chosen type.

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 states the tool compares two equal-length periods and returns deltas and top movers. It uses specific verbs and resources, distinguishing it from siblings like top_pages or query_search_analytics which do not perform period-over-period comparison.

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?

The description implies usage for comparing recent vs previous periods, but lacks explicit when-not-to-use or alternatives. It is clear but could mention that for non-comparison analytics, other tools like query_search_analytics might be more appropriate.

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

find_opportunitiesFind SEO opportunitiesA

Surface actionable wins: 'striking distance' rows ranked between positions 5-20 (small gains can push them to page one) and high-impression / low-CTR rows (the listing shows but few click). Returns a ranked, deduped list with a reason for each.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback window. Default 90.
limitNoOpportunities to return. Default 25.
siteUrlNoProperty as shown in Search Console: a URL-prefix property ends with a slash (e.g. "https://example.com/") or a domain property uses "sc-domain:example.com". May be a registered alias, or omitted to use the active/default site.
dimensionNoAnalyze by query or page. Default query.
minImpressionsNoIgnore rows below this impression count. Default 50.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description takes on the full burden. It discloses that the tool returns a 'ranked, deduped list with a reason for each item,' and explains the two opportunity types. This is adequate for a read-only analysis tool.

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 extremely concise (two sentences, ~40 words) and front-loaded with the core value proposition 'Surface actionable wins'. Every word serves a purpose without redundancy.

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?

Given 5 parameters, no output schema, and no annotations, the description adequately covers what the tool does and what it returns. It explains the opportunity logic and the nature of the output. Minor improvement could specify prerequisites like Search Console access.

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 coverage is 100%, so the baseline is 3. The description adds value by explaining the overall output (ranked, deduped) and the logic behind the opportunities, complementing the parameter-specific schema.

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 states the tool's purpose: to surface actionable SEO opportunities. It specifies two concrete categories ('striking distance' and high-impression/low-CTR) and distinguishes it from sibling tools like query_search_analytics, top_pages, or top_queries by focusing on opportunities rather than raw data.

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?

The description explains when to use the tool by defining the opportunity types (positions 5-20 and high-impression/low-CTR). It implicitly guides usage for finding quick wins, but does not explicitly exclude cases where other tools might be more appropriate.

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

get_active_siteGet active siteA

Report which property tool calls currently target, and whether it came from the session, the default, or none.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, but the description fully discloses that the tool reports the current target and its source (session, default, or none). No hidden behaviors.

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?

A single concise sentence that front-loads the action 'Report' and efficiently conveys the tool's functionality.

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 tool with no parameters and no output schema, the description adequately explains the output (current site and origin). However, it could specify the format or data type slightly more.

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?

There are no parameters, so the schema coverage is 100%. The description does not need to add parameter info, and a baseline of 4 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 states the tool reports the current target property and its origin (session, default, or none). It distinguishes itself from sibling tools like 'set_default_site' and 'use_site' which modify the target.

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?

The description implies usage when one needs to check the current active site, but does not explicitly state when not to use it or compare with alternatives. Still, the context is clear.

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

get_sitemapGet sitemapA

Get detailed status for a single sitemap by its full feed URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteUrlNoProperty as shown in Search Console: a URL-prefix property ends with a slash (e.g. "https://example.com/") or a domain property uses "sc-domain:example.com". May be a registered alias, or omitted to use the active/default site.
feedpathYesFull URL of the sitemap, e.g. https://example.com/sitemap.xml

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It does not mention whether this is a read-only operation, any side effects, required permissions, rate limits, or what 'detailed status' entails. Minimal 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?

Single concise sentence with no wasted words. Front-loaded with action and resource.

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

Completeness3/5

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

Given no output schema and no annotations, the description is somewhat minimal. It adequately defines the tool's purpose but lacks details on return value or error conditions. For a low-complexity tool, it is marginally complete.

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 schema already documents both parameters. The description adds no extra meaning beyond schema; mentioning 'full feed URL' is redundant with the feedpath description.

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 states the action ('Get detailed status') and the resource ('single sitemap by its full feed URL'). It distinguishes from sibling 'list_sitemaps' which lists all sitemaps, as this tool is for a specific sitemap.

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 description implies use for a single sitemap but does not explicitly mention when to use over 'list_sitemaps' or provide exclusion criteria. No guidance on prerequisites or context.

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

inspect_urlInspect URLA

Run the URL Inspection tool on a single URL: index status, coverage, last crawl, canonical, mobile usability and rich-results state. Use this to diagnose why a page is or is not indexed. Subject to a 2,000/day per-property quota.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteUrlNoProperty as shown in Search Console: a URL-prefix property ends with a slash (e.g. "https://example.com/") or a domain property uses "sc-domain:example.com". May be a registered alias, or omitted to use the active/default site.
languageCodeNoBCP-47 code, e.g. 'en-US'. Default en-US.
inspectionUrlYesThe full URL to inspect. Must belong to the property.

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the 2,000/day quota and implies a read operation, but does not mention authentication requirements or other behavioral traits.

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, front-loaded with key information: what it does, what data it returns, and a usage example with quota. No wasted words.

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?

Given full schema coverage and no output schema, the description is fairly complete. It explains purpose, returned data aspects, and quota. Lacks error handling info but adequate for a diagnostic tool.

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 description adds limited value beyond what the schema already provides. The usage hint reinforces purpose but does not deepen parameter understanding.

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 states the verb 'Run the URL Inspection tool on a single URL' and lists the specific data retrieved (index status, coverage, etc.). It distinguishes from sibling tools like query_search_analytics by focusing on single URL diagnosis.

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?

The description explicitly says 'Use this to diagnose why a page is or is not indexed,' providing clear context. It does not mention when not to use or alternatives, but the sibling tools are distinct enough.

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

list_sitemapsList sitemapsA

List all sitemaps submitted for a property, with processing status and error/warning counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteUrlNoProperty as shown in Search Console: a URL-prefix property ends with a slash (e.g. "https://example.com/") or a domain property uses "sc-domain:example.com". May be a registered alias, or omitted to use the active/default site.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries burden. It discloses output includes status and counts, but does not mention read-only nature, authentication, or rate limits. Acceptable for a query tool.

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?

Single sentence with no wasted words. Front-loaded with verb and resource, then adds specific details about output. Highly concise.

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 list tool with one optional param and no output schema, the description is fairly complete. Covers what is listed and for what resource. Minor lack of detail on return format or pagination, but 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 covers the single optional parameter siteUrl with 100% description. Tool description adds no additional meaning beyond what schema already provides. Baseline 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?

Description clearly states the tool lists all sitemaps for a property, including status and counts. Distinguishes from sibling tools like get_sitemap which likely retrieves a single sitemap.

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?

Implied usage is to get an overview of all sitemaps, but description does not explicitly state when to use this vs alternatives like get_sitemap, nor provide exclusions or prerequisites.

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

list_sitesList sitesA

List every Search Console property the signed-in user can access, with permission level, any registered alias, and which property is currently active / default.

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?

With no annotations provided, the description carries full transparency burden. It discloses that the tool lists permissions, aliases, and active status. It does not mention any side effects, rate limits, or authorization details beyond 'signed-in user', but for a non-destructive read operation this is adequate.

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 a single, efficient sentence that front-loads the action and output details. Every phrase earns its place with 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 simple tool with no parameters and no output schema, the description is complete. It explains what information each property entry includes, which is sufficient for an agent to understand the return values without an explicit output schema.

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?

The tool has no parameters, so schema coverage is 100% by default. The description adds value by explaining what each element in the output includes (permission level, alias, active/default), which is beneficial despite no parameters needing explanation.

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 states the tool lists every accessible Search Console property, including permission level, alias, and default status. It uses specific verb+resource ('List every Search Console property') and implicitly distinguishes from siblings like 'get_active_site' which returns only the active site.

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?

The description provides clear context for when to use the tool (when needing a complete list of accessible properties and their details). However, it does not explicitly state when not to use it or mention alternative tools, though siblings like 'get_active_site' and 'account_overview' exist.

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

query_search_analyticsQuery search analyticsA

The core Search Console performance query. Returns clicks, impressions, CTR and average position, broken down by the dimensions you request, over a date range. Use top_queries / top_pages for quick cases.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoSearch type. Defaults to web.
endDateNoYYYY-MM-DD. Defaults to 2 days ago (GSC data lags ~2 days).
siteUrlNoProperty as shown in Search Console: a URL-prefix property ends with a slash (e.g. "https://example.com/") or a domain property uses "sc-domain:example.com". May be a registered alias, or omitted to use the active/default site.
rowLimitNoDefault 1000.
startRowNoFor pagination. Default 0.
dataStateNo'all' includes fresh, not-yet-finalized data.
startDateNoYYYY-MM-DD. Defaults to 28 days ago.
dimensionsNoGroup results by these. Omit for site-wide totals.
aggregationTypeNo
dimensionFiltersNoAND-combined filters, e.g. filter page contains '/blog/'.

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the output (clicks, impressions, CTR, position) and the core action (querying performance data). It does not mention rate limits, latency, destructive potential (though read-only is implied), or any error conditions. This is adequate but not thorough.

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, front-loaded with the core purpose, and every sentence serves a clear function: stating what the tool does and guiding usage. No extraneous content.

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?

Given 10 parameters (0 required), 90% schema coverage, and no output schema, the description covers the essential use case. It briefly explains the output and mentions alternatives. It could benefit from mentioning pagination (startRow, rowLimit) or result format, but it is sufficient for a data query tool.

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 high (90%), so the baseline is 3. The tool description adds no additional parameter-specific information beyond what the schema already provides. It does not explain parameter interactions or provide examples.

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 states it is 'the core Search Console performance query' that returns specific metrics (clicks, impressions, CTR, average position) broken down by requested dimensions over a date range. It also distinguishes from sibling tools by recommending 'top_queries / top_pages for quick cases.'

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?

The description provides clear context on when to use this tool as the core query for detailed breakdowns and explicitly suggests alternatives ('top_queries / top_pages for quick cases'). However, it does not elaborate on when to avoid this tool or handle edge cases.

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

set_default_siteSet default siteA

Persist the default property to config.json (survives restarts). Used when a call omits siteUrl and no session site is set. Accepts a property URL or alias.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesProperty as shown in Search Console: a URL-prefix property ends with a slash (e.g. "https://example.com/") or a domain property uses "sc-domain:example.com". May be a registered alias, or omitted to use the active/default site.

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries full responsibility. It discloses persistence across restarts and mentions 'config.json', which implies a file write. However, it does not discuss authentication requirements, overwrite behavior, or error conditions, leaving some behavioral gaps.

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, no wasted words. The most important information (persistence, when to use) is front-loaded, and the parameter clarification is concise yet thorough.

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?

Given the simplicity (1 parameter, no output schema, no annotations), the description covers the core purpose, usage scenario, and parameter details. It does not describe return values or error handling, but these are not critical for this tool's context.

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?

The schema already covers 100% of the parameter, but the description adds significant value by explaining the two formats (URL-prefix vs. domain property) and that an alias or omission is possible. This goes beyond the schema's minimal description.

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 states the action ('Persist the default property'), the resource ('config.json'), and the context ('survives restarts', 'when a call omits siteUrl and no session site is set'). It distinguishes itself from sibling tools like use_site by specifying persistence across restarts.

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?

The description explicitly defines when to use the tool (when siteUrl is omitted and no session site set) and what it accepts (URL or alias). However, it does not mention when NOT to use it or explicitly point to alternatives like use_site for session-level changes, leaving some room for misinterpretation.

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

top_pagesTop pagesB

Quick view of the top landing pages for a site over the last N days, ranked by clicks.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback window. Default 28.
limitNoRows to return. Default 25.
siteUrlNoProperty as shown in Search Console: a URL-prefix property ends with a slash (e.g. "https://example.com/") or a domain property uses "sc-domain:example.com". May be a registered alias, or omitted to use the active/default site.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It does not mention authentication requirements, rate limits, or whether the tool is read-only. The description only states it's a 'quick view', leaving important safety and usage context unaddressed.

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?

A single 18-word sentence that is front-loaded with the purpose. No redundant words; every word contributes to understanding.

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

Completeness3/5

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

For a simple tool with three parameters and no output schema, the description is adequate but incomplete. It does not hint at the return structure (e.g., list of pages with click counts) or clarify edge cases like empty results.

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%, so the schema already documents all three parameters. The description adds that results are 'ranked by clicks', which is extra context, but does not provide new meaning beyond the schema.

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

Purpose4/5

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

The description clearly states the tool retrieves top landing pages over a time period ranked by clicks. It distinguishes from siblings like 'top_queries' (queries vs pages) and 'query_search_analytics' (more detailed vs quick view), but does not explicitly name alternatives.

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?

Implied usage is for a quick overview of top pages by clicks, but there is no guidance on when to use alternatives like 'query_search_analytics' for more detail or filtering, nor when not to use this tool.

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

top_queriesTop queriesC

Quick view of the top search queries for a site over the last N days, ranked by clicks.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback window. Default 28.
limitNoRows to return. Default 25.
siteUrlNoProperty as shown in Search Console: a URL-prefix property ends with a slash (e.g. "https://example.com/") or a domain property uses "sc-domain:example.com". May be a registered alias, or omitted to use the active/default site.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description should fully convey behavior. It mentions ranking by clicks and a lookback window but omits details like default sorting, pagination behavior, how missing data is handled, or output structure. This leaves significant gaps for the agent.

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

Conciseness4/5

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

The description is a single, concise sentence (15 words) that efficiently states the tool's purpose. While brief, it avoids fluff. A slightly more structured format (e.g., listing key aspects) could improve scanability.

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

Completeness2/5

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

Given three parameters, no output schema, and no annotations, the description is too sparse to fully define the tool's behavior. It lacks detail on what 'top' means (e.g., by clicks only?), result ordering, and edge cases, leaving the agent underinformed.

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?

All parameters are fully described in the input schema (100% coverage), establishing a baseline of 3. The description adds no additional context beyond schema descriptions, such as data formats or usage tips.

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

Purpose4/5

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

The description clearly states it provides a quick view of top search queries ranked by clicks over a period. However, it does not explicitly differentiate from sibling tools like query_search_analytics, which may offer similar but more detailed functionality.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., query_search_analytics, compare_periods). The description implies a quick overview but does not outline when a more detailed tool is needed or provide exclusion criteria.

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

use_siteSwitch active siteA

Set the active property for this session, so later tool calls can omit siteUrl. Accepts a property URL or a registered alias (e.g. "blog"). The primary way to switch context.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesProperty as shown in Search Console: a URL-prefix property ends with a slash (e.g. "https://example.com/") or a domain property uses "sc-domain:example.com". May be a registered alias, or omitted to use the active/default site.

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description bears the burden. It discloses session-scoped effect and alias acceptance, but does not describe behavior on invalid input, side effects, or return value, which is adequate for a simple setter.

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 no redundancy. The first sentence immediately conveys the core purpose and benefit, and the second explains valid inputs. Every word earns its place.

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?

Given the tool's low complexity (single parameter, no output schema), the description covers purpose, effect, and usage adequately. It omits return value, but that is acceptable for a session-setter.

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 already describes the 'site' parameter well. The description adds an example alias ('blog') which provides marginal extra value, but does not significantly deepen understanding beyond the schema.

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 states the action ('Set the active property') and the resource ('for this session'), distinguishing itself from siblings like 'set_default_site' by noting it is 'the primary way to switch context'.

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?

The description explains when to use the tool ('so later tool calls can omit siteUrl') and what it accepts (URL or alias), but does not explicitly exclude alternatives or mention when not to use it.

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. Dates show when Glama detected each change.

  1. 16 tool updatesv0.1.0
    • First observedaccount_overview
    • First observedauth_login
    • First observedauth_status
    • First observedcompare_periods
    • First observedfind_opportunities
    • First observedget_active_site
    • First observedget_sitemap
    • First observedgsc_deep_link
    • First observedinspect_url
    • First observedlist_sitemaps
    • First observedlist_sites
    • First observedquery_search_analytics
    • First observedset_default_site
    • First observedtop_pages
    • First observedtop_queries
    • First observeduse_site

TDQS

A3.9/5.0
Disambiguation5/5

Each tool targets a distinct GSC operation: authentication, site selection, analytics queries, sitemaps, URL inspection, and comparative analysis. Even similar analytics tools like top_queries, compare_periods, and find_opportunities have clear differentiating descriptions (quick view vs. comparative vs. actionable wins). No two tools overlap in purpose.

Naming Consistency4/5

Tools follow a consistent 'verb_noun' or 'category_action' pattern in lowercase with underscores (e.g., auth_login, list_sitemaps, top_queries). Minor deviations include 'gsc_deep_link' (prefix with noun) and 'account_overview' (noun_verb), but overall the pattern is predictable and readable.

Tool Count5/5

With 16 tools, the server covers the full spectrum of Google Search Console operations—authentication, site management, analytics, sitemaps, URL inspection, and deep links—without being bloated. Each tool serves a clear purpose, and the count is well-scoped for a specialized API wrapper.

Completeness4/5

The tool set covers core GSC workflows: authentication, site selection, search analytics (queries, pages, comparisons, opportunities), sitemap status, and URL inspection. Minor gaps include the lack of property addition/removal and live URL testing, but these are secondary. The planned addition of per-site SEO/coverage scores suggests recognized missing functionality.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying Google Search Console and Google Analytics 4 through natural language, with tools for SEO analysis like anomaly detection, cannibalization detection, and opportunity scoring.
    29
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying Google Search Console data, including search analytics with advanced filtering, quick wins detection, and rich dimensions, through natural language.
    4,053
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ajmalaksar25/searchlight'

If you have feedback or need assistance with the MCP directory API, please join our Discord server