Skip to main content
Glama
pabsamuel

SEO Data MCP

by pabsamuel

SEO Data MCP

Local stdio MCP server for Google Search Console, Bing Webmaster, IndexNow, PageSpeed Insights and CrUX. Your SEO data goes directly from those APIs to your MCP client; it does not pass through Atesen Software. No LLM APIs, hosted proxy or telemetry.

Install in five lines

# Node.js 22+; download the .tgz from the GitHub release while npm publication is pending
npx -y --package ./pabsamuel-seo-data-mcp-0.1.0.tgz seo-data-mcp --help
# Put your own Google service_account or authorized_user JSON in a private directory
claude mcp add --transport stdio --env GOOGLE_APPLICATION_CREDENTIALS=/private/google.json seo-data -- npx -y --package /absolute/path/pabsamuel-seo-data-mcp-0.1.0.tgz seo-data-mcp
# Restart your MCP client, then ask it to list sitemaps for sc-domain:your-domain.example

After npm publication the command becomes npx -y @pabsamuel/seo-data-mcp@0.1.0. npm installation, authentication and Claude-specific GUI installation are not claimed as complete; real stdio MCP integration is tested.

Claude Desktop config (merge this inside mcpServers):

{"seo-data":{"command":"npx","args":["-y","--package","C:/absolute/path/pabsamuel-seo-data-mcp-0.1.0.tgz","seo-data-mcp"],"env":{"GOOGLE_APPLICATION_CREDENTIALS":"C:/private/google.json"}}}

Use an absolute npx.cmd path on Windows if your client cannot locate npx. Never commit client config containing credentials.

Related MCP server: mcp-server-google-search-console

Tools and plans

Tool

Purpose

Free

gsc_query

Search analytics, dates, dimensions, pagination

Yes

gsc_sitemaps

List sitemaps

Yes

gsc_inspect

Indexed URL inspection, not a live test

No

bing_query_stats

Verified-site query statistics

No

bing_crawl_issues

Verified-site crawl issues

No

indexnow_submit

Submit same-host URLs; requires confirm:true

No

pagespeed

Lighthouse performance summary

Yes

crux

Origin field metrics; low traffic can return 404

No

Free: 3 tools / 20 attempts per UTC day. Starter: $12/month, all tools / 1,000 attempts per UTC day. Pro: $29/month, all tools / 5,000 attempts per UTC day. Billing is currently preview/closed, not a live paid offering. Provider quotas are separate. Starter/Pro limits are product implementation decisions; the brief specifies only the free cap and prices.

Why pay: URL inspection, Bing diagnostics, IndexNow and CrUX plus larger daily capacity. Attempts count even when credentials/provider calls fail; schema-invalid requests do not count. Quota uses a local lock and persistent counter shared by processes. This is local software: users control their filesystem and clock, so limits are not a tamper-proof remote meter.

Bring your own credentials

GOOGLE_APPLICATION_CREDENTIALS: path to Google service-account JSON or user-owned OAuth authorized_user JSON. Enable Search Console API. First try adding the service-account email to the Search Console property's Settings → Users and permissions as Full user. No site membership was available in this build session, so real SA acceptance is pending.

Fallback: create your own Desktop OAuth client and, with Google Cloud CLI, run:

gcloud auth application-default login --client-id-file=/private/desktop-client.json --scopes=https://www.googleapis.com/auth/webmasters.readonly

Point the env variable to the generated application_default_credentials.json. Configure yourself as a test user in your Google project; testing-mode refresh tokens may need reauthorization. No publisher OAuth verification is required because there is no shared publisher client.

Other environment variables:

Variable

Meaning

BING_API_KEY

Your Bing Webmaster key for a verified site

GOOGLE_API_KEY

Your API key with PageSpeed and Chrome UX Report APIs enabled

INDEXNOW_KEY

8–128 character verification key hosted on your domain

SEO_MCP_LICENSE_FILE

Private text file containing the offline license (preferred)

SEO_MCP_LICENSE

Alternative inline license; avoid shell history/config sharing

SEO_MCP_STATE_DIR

Private quota directory; default ~/.seo-data-mcp

No credentials are read from project .env files. The client must explicitly pass env variables. Read-only Google scope only. Tokens are cached in memory and refreshed directly with Google; credential-file token endpoints are ignored. IndexNow never fetches arbitrary URLs itself, and refuses URLs/keyLocation on other hosts.

Privacy and licensing

Only these hosts can receive MCP requests: oauth2.googleapis.com, www.googleapis.com, searchconsole.googleapis.com, ssl.bing.com, api.indexnow.org, chromeuxreport.googleapis.com. No redirects or automatic retries. Trace records omit query strings, headers and bodies. npm installation and your MCP/AI host are separate from tool traffic; your chosen host may process the reports.

License format: SEO1.<base64url JSON>.<Ed25519 signature>. Public key ships with the package; private key is excluded. Product, tier, issue/expiry timestamps and signature are checked locally. Subscription keys expire at the paid period end. Retrieve a fresh key after renewal; there are no background activation calls. Refunds/cancellations cannot instantly revoke an offline key. See LICENSE, privacy and terms.

Build and evidence

npm ci
npm test
npm audit --omit=dev
npm pack --pack-destination artifacts
npm run live

Tests use explicit synthetic responses; these are not live API evidence. test/stdio.test.mjs runs the actual MCP SDK client against the spawned stdio executable. test/billing.test.mjs uses real SQLite and Ed25519 with signed synthetic Paddle payloads; no sandbox checkout/payment occurred. evidence/live.json records live blockers without secrets. SUBMIT.md contains exact browser handoff and billing provisioning steps. STATE.md tracks acceptance.

Primary references

Historical research anchor: Advanced GSC MCP, $4,766 MRR / 147 subscriptions recorded in the 22 October portfolio brief. Not independently reverified here; no earnings claims are used in the listing.

Available Tools

8 tools
bing_crawl_issuesB
Read-onlyIdempotent

Read Bing Webmaster crawl issues for a verified site. Paid.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYes

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, open-world, and non-destructive behavior. The description adds two important behavioral facts beyond annotations: the call is paid and the site must be verified. It does not detail cost tiers, rate limits, or return format, keeping it below a 5.

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

Conciseness5/5

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

Two short sentences, front-loaded with the action and resource, with no filler. The 'Paid.' fragment is terse but communicates a critical constraint in minimal space.

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 one-parameter read tool with rich annotations, the description is adequately complete on safety and cost. However, with no output schema, it does not describe what crawl issues are returned or how to interpret them, and the site parameter remains underspecified.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden for the single 'site' parameter. It adds that the site must be verified, which is useful, but it does not clarify whether the value should be a domain, full URL, or site identifier, nor how verification should be represented.

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 states a specific verb and resource: read Bing Webmaster crawl issues. It adds the 'verified site' scope qualifier. It does not explicitly distinguish itself from siblings like bing_query_stats or gsc_inspect, so it stops short of a 5.

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

Usage Guidelines2/5

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

The only guidance is the prerequisite 'for a verified site' and the cost note 'Paid.' There is no explicit when-to-use guidance, no when-not-to-use guidance, and no routing to sibling tools such as bing_query_stats or gsc_inspect.

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

bing_query_statsA
Read-onlyIdempotent

Read Bing Webmaster query statistics for a verified site. Paid.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior. The description adds two useful behavioral facts: the site must be verified and the operation is 'Paid'. However, it does not mention auth requirements, rate limits, or what data is returned.

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

Conciseness5/5

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

Two short, front-loaded sentences with no wasted words. The key prerequisite and cost signal are immediately visible.

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 full annotations and no output schema, the description covers the essential prerequisite and cost. It could be improved by noting return format or date-range defaults, but nothing critical 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 coverage is 0% and the single parameter 'site' is only typed as a URI in the schema. The description adds meaningful semantic constraint: the site must be a verified Bing Webmaster site, which is not captured in 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?

States a specific verb ('Read') and resource ('Bing Webmaster query statistics') with clear scope ('for a verified site'). It differentiates from sibling tools like gsc_query by naming Bing, though it does not explicitly contrast with bing_crawl_issues.

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?

Implies usage context (Bing Webmaster, verified site, paid) but gives no explicit when-to-use guidance or alternatives. It does not say when to choose this over gsc_query or bing_crawl_issues.

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

cruxB
Read-onlyIdempotent

Chrome UX Report 28-day field metrics; low-traffic sites may have no record. Paid.

ParametersJSON Schema
NameRequiredDescriptionDefault
originYes
formFactorNoPHONE

TDQS

B3/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, openWorld), so the description's job is to add context beyond that. It does: a 28-day aggregation window, the possibility of an empty result for low-traffic origins, and the fact that calls are billed. That cost and empty-result disclosure is exactly the kind of thing annotations cannot express.

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?

Three compact fragments with no filler, and the identifying information (what data, what window) comes first. It is telegraphic to the point of omitting a verb, but nothing is wasted.

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 read-only, two-parameter tool with no output schema, the definition covers the data source, the time window, the billing implication and the empty-result risk. What is missing is any explanation of the parameters and of what metrics are actually returned, which leaves the agent guessing at request shape.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to carry the two parameters and did not. 'origin' is only obliquely implied by 'sites', and 'formFactor' with its PHONE/DESKTOP/TABLET enum and default is never mentioned, leaving a real gap.

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

Purpose3/5

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

The description names a specific resource ('Chrome UX Report 28-day field metrics'), which is informative, but it uses no verb and the tool name 'crux' is an opaque acronym. It does not distinguish itself from the sibling 'pagespeed', which also surfaces performance metrics, so an agent must infer the boundary.

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 statement of when to choose this over 'pagespeed' or other siblings. The 'low-traffic sites may have no record' clause signals a failure mode rather than a usage rule, and 'Paid' flags cost but not the conditions under which the cost is justified.

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

gsc_inspectA
Read-onlyIdempotent

Read Google indexed URL inspection; does not request indexing. Paid.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
siteYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, and open-world behavior. The description adds valuable context by clarifying that no indexing request occurs and flagging that the operation is paid, though it does not describe the return contents or rate-limit details.

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 short sentences with no wasted words. The core operation and the key exclusion are front-loaded, and the cost warning is succinct.

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 two-parameter tool with rich annotations, the description covers the main behavioral distinction. But it omits parameter semantics and does not explain what the inspection returns, which is relevant because there is no output schema.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It provides no explanation of what 'site' means in Google Search Console terms or how 'url' relates to the inspected property, leaving both required parameters only inferable from their names.

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 and resource: 'Read Google indexed URL inspection.' It also explicitly contrasts with indexing submission ('does not request indexing'), which helps distinguish it from the sibling indexnow_submit tool.

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 clearly states an exclusion: this reads inspection data and does not request indexing. However, it does not name alternatives such as gsc_query or pagespeed, nor does it explain when a paid inspection is preferable to other diagnostics.

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

gsc_queryC
Read-onlyIdempotent

Read Search Console search performance. Paginate using startRow. Free tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYes
endDateYes
rowLimitNo
startRowNo
startDateYes
dimensionsNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint, so the safety profile is covered. The description adds pagination behavior and a free-tier note, but it does not disclose auth requirements, quota behavior, or result structure.

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 front-loaded and wastes no words. However, its terseness is partly under-specification rather than pure efficiency, so it is not quite exemplary for a six-parameter tool.

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?

For a six-parameter query tool with no parameter descriptions and no output schema, the description is not complete enough. It covers pagination and free-tier context but leaves required fields, date semantics, dimensions, and return behavior unexplained.

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

Parameters2/5

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

Schema description coverage is 0% across six parameters, so the description carries the full burden. It only explains startRow as the pagination offset and says nothing about site, startDate, endDate, rowLimit, or dimensions, leaving most parameters semantically undocumented.

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 states a specific verb and resource: read Search Console search performance. It implicitly distinguishes itself from non-GSC siblings, but it does not explicitly differentiate from gsc_inspect or bing_query_stats, so sibling routing is left partly to inference.

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 only usage guidance is pagination via startRow and a note about the free tier. It does not say when to use this tool instead of gsc_inspect, bing_query_stats, or other performance-related siblings, nor does it state exclusions or prerequisites.

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

gsc_sitemapsC
Read-onlyIdempotent

List Search Console sitemaps. Free tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds only the 'Free tier' note, which hints at quota or cost considerations, but never explains what it means, what permissions are needed, or whether pagination occurs.

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?

Two short sentences, front-loaded with the action and resource, with zero padding. The trailing 'Free tier' fragment is terse but understandable as a cost caveat.

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?

There is no output schema and no description of what a sitemap entry looks like (path, lastDownloaded, errors, warnings), and the critical property-identifier format is absent. For a tool whose only parameter is a site identifier, this leaves an agent guessing at invocation details.

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

Parameters2/5

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

Schema description coverage is 0% for the single required 'site' parameter, and the description says nothing about its expected format (e.g., URL-prefix vs sc-domain property identifier) or length constraints. With one undocumented required parameter, the description fails to compensate for the schema gap.

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?

A clear verb and resource ('List Search Console sitemaps') tells an agent exactly what the tool returns. It does not differentiate from siblings like gsc_query or gsc_inspect, but the purpose itself is unambiguous.

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?

There is no guidance on when to call this versus gsc_query or gsc_inspect, no prerequisites (e.g., property must be verified), and no exclusions. An agent must infer usage entirely from the name.

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

indexnow_submitB

WRITE: submit URLs to IndexNow, requires explicit confirm:true and a hosted verification key. Paid.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYes
urlsYes
confirmYes
keyLocationNo

TDQS

B3.4/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=false and openWorldHint=true, but the description adds meaningful context beyond them: this is a WRITE operation, it requires explicit confirmation, it needs a hosted verification key, and it is paid. It still omits consequences, response behavior, and failure modes, but the added operational constraints are valuable.

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?

It is a single compact sentence with the most important qualifier (WRITE) front-loaded. Every clause carries weight: action, resource, confirmation requirement, verification key, and payment status.

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?

For an external write tool with no output schema, zero parameter descriptions, and paid access, the description is too sparse. It covers the confirmation and verification-key prerequisites but leaves the host/URL relationship, submission limits, and expected outcome or errors undocumented.

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

Parameters2/5

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

Schema description coverage is 0% for four parameters. The description clarifies confirm:true and hints at a hosted verification key, but it does not explain the host parameter, the urls array, the 1–10,000 item limit, or how keyLocation relates to the verification key.

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 states a specific verb and resource: submit URLs to IndexNow. It is clearly distinct from the sibling tools (queries, inspections, stats, pagespeed, crux, sitemaps), though it does not explicitly name an alternative or non-goal.

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?

It gives prerequisites (confirm:true, hosted verification key) and cost context (Paid), which implies when the tool is applicable. However, it does not explain when to use this versus other indexing-related siblings or 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.

pagespeedC
Read-onlyIdempotent

PageSpeed Lighthouse score and selected audits. Free tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
strategyNomobile

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety is covered. The description adds useful cost context ('Free tier') and hints at scoped output ('selected audits'), but does not describe rate limits, authentication, or which audits are actually returned.

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 two short sentences with the purpose front-loaded and little wasted text. The phrase 'selected audits' is vague, but overall it is appropriately sized for a simple tool.

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?

For a read-only tool with rich annotations, the safety profile is already handled. But with no output schema and zero parameter description coverage, the description omits what 'selected audits' means and how strategy affects results, leaving meaningful gaps for an agent trying to call it correctly.

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

Parameters2/5

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

With two parameters and 0% schema description coverage, the description should explain the required url and the optional strategy/default mobile behavior. It mentions neither, leaving the strategy enum entirely undocumented in prose.

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 states the resource (PageSpeed Lighthouse score) and a return element (selected audits), which is clear enough to identify the tool. However, it lacks an explicit operation verb and does not distinguish itself from siblings like crux, which also deals with performance 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 provides no guidance on when to use this tool versus alternatives such as crux or gsc_inspect. 'Free tier' gives licensing context but does not help an agent decide when this tool is appropriate.

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. 8 tool updatesv0.1.0
    • First observedbing_crawl_issues
    • First observedbing_query_stats
    • First observedcrux
    • First observedgsc_inspect
    • First observedgsc_query
    • First observedgsc_sitemaps
    • First observedindexnow_submit
    • First observedpagespeed

TDQS

A3.5/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct SEO data source or operation: GSC querying, GSC inspection, GSC sitemaps, Bing stats, Bing crawl issues, IndexNow submission, PageSpeed, and CrUX. The read-only tools are separated from the explicit write tool, and performance tools are split into lab (PageSpeed) versus field (CrUX) data.

Naming Consistency3/5

Most names use snake_case and a service_action pattern (gsc_query, bing_query_stats, indexnow_submit), which is readable. However, pagespeed and crux are bare product names with no verb, and action placement varies across prefixes, so the set is mixed rather than fully consistent.

Tool Count5/5

Eight tools is well-scoped for an SEO data server, covering the main integrations without obvious padding. Each tool corresponds to a meaningful data source or action.

Completeness4/5

The surface covers key SEO data sources: GSC performance, inspection, sitemaps, Bing stats and crawl issues, IndexNow submission, PageSpeed, and CrUX. Minor gaps remain, such as sitemap submission/management and broader keyword or backlink data, but core read and submission workflows are present.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Google Search Console to query search analytics, inspect URL indexing status, and manage sitemaps. It allows users to monitor SEO performance and site health through natural language commands in MCP-compatible clients.
    94 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables interaction with Google Search Console via MCP, offering search analytics, performance summaries, URL inspection, sitemap management, and property listing for SEO workflows.
    149 npm
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Connects MCP clients to the Google Search Console API, enabling search analytics queries, URL inspection, sitemap management, and performance comparison across time periods.
    20
    49 PyPI
    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