Skip to main content
Glama
Bishwas-py

AI SEO Toolkit

by Bishwas-py

SEO Toolkit

Eight SEO and AI-search workflows for Claude and ChatGPT, built on measured data rather than invented numbers. MIT licensed.

Workflow

What it does

gsc_audit

Reads a Search Console export: striking distance, cannibalisation, decay, click-through gaps

traffic_drop

Diagnoses lost rankings in cost order, rendering and crawl before any talk of an update

keyword_clusters

Seed keyword into themes, long-tails, intent, titles, metas

ai_citations

Getting quoted by AI answers, from Google's published guidance

competitor_gap

Reads the page that outranks you, writes past it

content_refresh

Audits a page you own against what currently ranks

schema_markup

Valid JSON-LD, placeholders instead of invented values

article_draft

A first draft a human finishes

Install

In claude.ai or the Claude desktop app, go to Customize > Plugins > Add > Add marketplace and enter:

Bishwas-py/ai-seo-toolkit

Then select AI SEO Toolkit and Add.

From Claude Code instead:

/plugin marketplace add Bishwas-py/ai-seo-toolkit
/plugin install ai-seo-toolkit@webmatrices

That is the whole install. It covers chat on web, desktop and mobile, Cowork, and Claude Code from one account, and updates itself from this repository.

Related MCP server: SEO Content Analysis MCP

Pair with MCP Browser

Every workflow that touches a URL must fetch the page and prove it read it. A plain HTTP fetch cannot distinguish a genuinely thin page from one that only looks empty to a fetcher, and that distinction is the entire diagnosis when a site renders through JavaScript.

MCP Browser drives real Chrome with your signed-in session, so the toolkit can render JavaScript, fetch both ways and compare, and read Reddit, BlackHatWorld and forums behind a login.

brew install --cask bishwas-py/tap/mcpbrowser

macOS on Apple Silicon, free for 50 requests a day. Everything here works without it, and will say in one line when it could not verify rendering.

What it refuses to recommend

Google publishes an AI optimisation guide that contradicts most of what is sold as GEO and AEO. These workflows encode the guide. They will not tell you to add an llms.txt file, chunk your content, write in a special style for AI, treat structured data as a citation requirement, or buy brand mentions, and they will push back if asked.

Two findings they do hold to: a page must be indexed and eligible to show with a snippet before it can appear in a generative answer, and across 1.4 million prompts the title, snippet and URL decided whether a page was opened at all, while the average cited page was around 500 days old.

Develop

npm install
npm test                             # drives the real server over stdio
npm start                            # run the server directly
claude --plugin-dir .                # load the plugin from this working copy
claude plugin validate .             # check the manifest and components

server/workflows.js is the single source of truth. Each workflow declares its arguments once, and the server derives both the MCP prompt and the MCP tool from that declaration, so the two can never drift apart.

Release

Pushing a tag is the whole release.

npm version patch && git push --follow-tags

That bumps package.json, mirrors the number into .claude-plugin/plugin.json through the version lifecycle hook, commits, tags, and pushes. CI then runs the tests, refuses to continue if the tag disagrees with package.json, publishes the server to npm and cuts a GitHub release with generated notes.

Installed plugins pick the new version up from this repository on their own. The npm package is what .mcp.json starts, so it is plumbing rather than something anyone installs by hand.

There is no NPM_TOKEN. The workflow authenticates with npm trusted publishing, which exchanges a short-lived GitHub OIDC token for publish rights and attaches provenance automatically, so there is no long-lived credential to leak or rotate.

One-time setup

Trusted publishing is configured on an existing package, so the first publish is manual:

npm login
npm publish            # claims the name

Then on npmjs.com, under the package's Settings, add a trusted publisher: repository Bishwas-py/ai-seo-toolkit, workflow release.yml. Every release after that is the one-liner above.

The repository must also be public before the release asset is downloadable by anyone else. While it is private, the download link on the landing page returns 404 for everyone but you.

The test suite asserts the MCP surface over a real stdio connection and checks the content guarantees, including that no workflow recommends a tactic Google has said does not work.

Available Tools

8 tools
ai_citationsA

Get a page quoted by AI Overviews, AI Mode, ChatGPT search and Perplexity, using Google's published guidance rather than GEO folklore. Returns the full instructions to follow; carry them out rather than summarising them.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoTarget market, e.g. United States, United Kingdom, Canada
tongueNoOutput language, e.g. English, Arabic, Dutch, French
subjectYesURL to improve, or a topic to write about

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden. It does disclose a genuine behavioral trait: the tool returns the full set of instructions and the agent is expected to carry them out rather than summarise them. However, it says nothing about whether the page is modified, what permissions or rate limits apply, or how long the instructions are.

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 sentences, front-loaded with the capability and followed by the output contract. Every clause carries information; the only slightly decorative element is the 'GEO folklore' framing, which still communicates the sourcing stance.

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?

With no output schema and no annotations, the description does the essential work of telling the agent that the return value is a set of instructions to be executed. It leaves the output format, length and the effect of region/tongue unstated, but for a three-parameter guidance generator this is close to 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 description coverage is 100%, with region, tongue and subject each documented in the schema itself, so the baseline is 3. The description adds no extra semantics for any parameter — it never mentions that subject accepts either a URL or a topic, nor how region/tongue shape the output.

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 gives a concrete verb and resource ('Get a page quoted') and names the target surfaces (AI Overviews, AI Mode, ChatGPT search, Perplexity), which separates it from siblings like article_draft or schema_markup. The second sentence clarifies that the deliverable is instructions rather than an edit, though 'Get' is a loose verb and no sibling is named directly.

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?

Usage is only implied: you invoke it when you want a page cited by AI answer surfaces, and the 'rather than GEO folklore' line hints at the intended methodology. There is no explicit when-to-use/when-not guidance, no prerequisites, and no routing against the seven sibling tools.

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

article_draftC

A first draft a human finishes, ending with the three things only they can add. Returns the full instructions to follow; carry them out rather than summarising them.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesTitle or topic
voiceNobusiness | friendly | casual
lengthNoApproximate word count, e.g. 1000
tongueNoOutput language, e.g. English, Arabic, Dutch, French

TDQS

C2.8/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, and it does disclose one genuinely non-obvious trait: the call returns a set of instructions the agent must execute rather than finished copy. However, it is ambiguous about whether an article is produced at all, and says nothing about permissions, limits, or output format for a text-generating operation.

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 sentences, no padding, and the editorial intent is front-loaded ahead of the operational instruction. The phrasing is deliberately evocative ('the three things only they can add'), which costs a little precision but not length.

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 four-parameter generation tool with no annotations and no output schema, the agent needs to know what actually comes back and how it differs from sibling content tools; the description leaves the return payload ambiguous. The one sentence about following instructions partially covers behavior but leaves the core workflow under-specified.

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 topic, voice, length, and tongue are already documented in the schema, and the baseline of 3 applies. The description adds no parameter-level meaning — notably it never mentions the three style/scope controls (voice, length, tongue) that shape the result.

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 name plus 'A first draft' implies the tool drafts an article from the given topic, but the description never states the verb/resource plainly — it describes the draft's editorial ending ('the three things only they can add') instead of what the tool does. It is distinguishable from siblings only by the tool name, not by the prose, which reads more like marketing copy than a capability statement.

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 indication of when to choose article_draft over content_refresh, keyword_clusters, or the other content siblings, nor any prerequisites (e.g. needing a keyword set first). The only directional sentence, 'carry them out rather than summarising them', is a usage instruction for the returned content, not guidance on selecting the tool.

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

competitor_gapB

Read a page that outranks you, find what it is missing, and write the replacement. Returns the full instructions to follow; carry them out rather than summarising them.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL of the page to beat
voiceNobusiness | friendly | casual
tongueNoOutput language, e.g. English, Arabic, Dutch, French

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 behavioral burden. It does disclose one genuinely non-obvious trait — that the tool returns instructions and the agent must carry them out rather than summarise — which is valuable. However, it says nothing about whether the page is fetched live, cost, rate limits, permission needs, or failure modes.

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 tight sentences, front-loaded with the core action and ending on the critical operational caveat. Every clause earns its place with no filler.

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 3-parameter tool with full schema coverage and no output schema, the description is nearly sufficient. It compensates for the missing output schema by explaining the return is a set of instructions to execute, though it could say more about what those instructions depend on or contain.

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 url, voice, and tongue. The description adds no meaning beyond the schema — it does not clarify the voice options or the expected language format for tongue. 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 names a concrete chain of actions (read a competing page, find gaps, write a replacement) tied to the tool's job. It is clear enough to act on, but the phrasing ('a page that outranks you') is impressionistic and it never distinguishes itself from siblings like article_draft or content_refresh, which also produce written content.

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 pick this tool versus the content_refresh, article_draft, or ai_citations siblings. It states what the tool does but leaves selection entirely to the agent's inference.

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

content_refreshA

Audit a page you own against what currently ranks, and say exactly what to change. Returns the full instructions to follow; carry them out rather than summarising them.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL of your page
depthNoquick | full
regionNoTarget market, e.g. United States, United Kingdom, Canada
targetNoTarget keyword
tongueNoOutput language, e.g. English, Arabic, Dutch, French

TDQS

A3.6/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 and does disclose one genuinely useful trait: it returns full instructions to follow rather than a summary, which shapes how the agent acts on the output. However, it never says whether the call itself mutates anything, whether account/URL ownership is verified, or what happens with permission failures — the key uncertainties for a tool whose name implies 'refresh'.

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, zero filler, and the purpose is front-loaded before the behavioral note about executing the returned instructions. Every clause 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?

For a five-parameter tool the schema fully documents inputs, and the description covers purpose plus the nature of the return (instruction set to execute), which matters since no output schema exists. It is nearly complete; only the relationship to sibling audit tools is left unstated.

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% for all five parameters, so the baseline is 3. The description adds no meaning about depth (quick vs full), region, target keyword, or tongue beyond what the schema already documents.

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 pair — audit a page you own against what currently ranks — and adds the concrete output of change recommendations, so the agent can tell this is a content-refresh audit rather than a traffic or schema tool. It never names any sibling (gsc_audit, competitor_gap, traffic_drop), so the differentiation is inferable rather than explicit.

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 phrase 'a page you own' implies the tool applies to existing pages rather than new drafts, which is the usage boundary against article_draft. Beyond that there is no explicit when-to-use, when-not-to-use, or named alternative among the seven siblings, so the agent must infer routing.

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

gsc_auditB

Turn a Google Search Console export into a ranked fix list: striking distance, cannibalisation, decay and click-through gaps. Works from measured data, not estimates. Returns the full instructions to follow; carry them out rather than summarising them.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoWindow in days, default 90
siteNoDomain to audit, e.g. example.com. Pulls live data when a Search Console tool is connected
focusNoLimit to a section or path, e.g. /blog
regionNoTarget market, e.g. United States, United Kingdom, Canada
tongueNoOutput language, e.g. English, Arabic, Dutch, French

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, and it does disclose an important non-obvious trait: the return value is a set of instructions to be carried out, not a summary. However, it says nothing about read-only behaviour, whether it writes to the GSC property, auth requirements, or the cost of a live pull against 90 days of data.

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 sentences, front-loaded with the outcome, and the closing clause about executing rather than summarising the returned instructions is high-value. Minor redundancy in 'measured data, not estimates' which says the same thing twice.

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?

Five optional parameters with no output schema and no annotations means the description should be doing more work than it does; it omits defaults (90 days), what happens with no site given, and whether live-pull mode needs prior authentication. The key disclosure that the output is instructions is present, which keeps it at minimum viable.

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 every one of the five parameters (days, site, focus, region, tongue) is already documented with an example. The description adds no parameter-level meaning such as format constraints or interaction between site and focus, so the baseline 3 applies.

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 concrete verb and resource ('turn a Google Search Console export into a ranked fix list') and enumerates the four analyses it performs (striking distance, cannibalisation, decay, click-through gaps). It is clearly distinguishable from keyword clustering or schema tools, though it never names a sibling to contrast against.

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?

'Works from measured data, not estimates' and the schema note about pulling live data when Search Console is connected imply the usage context, but the description never states when to pick this over traffic_drop or content_refresh, nor any prerequisites. Usage is inferable rather than stated.

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

keyword_clustersB

Turn a seed keyword into themed clusters with long-tail terms, intent, titles and meta descriptions. Returns the full instructions to follow; carry them out rather than summarising them.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedYesSeed keyword
widthNoTerms per cluster: 1, 3 or 5
regionNoTarget market, e.g. United States, United Kingdom, Canada
tongueNoOutput language, e.g. English, Arabic, Dutch, French

TDQS

B3.2/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 behavioral burden. It usefully discloses one non-obvious trait — the return value is a set of instructions to execute, not a summary to relay — but says nothing about permissions, cost, latency, or determinism, and never confirms it is a read-only/generation operation.

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 tightly written sentences, front-loaded with the core transformation and then the handling instruction. No filler, though the second sentence is slightly awkward in phrasing.

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?

There is no output schema, so the description is responsible for return semantics; it partially covers this by stating the return is instructions, but omits the structure and volume of the clusters and how width/region/tongue shape the result. Adequate but with clear gaps for a no-output-schema 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 100%, so all four parameters (seed, width, region, tongue) are already documented, including the 1/3/5 constraint on width. The description adds no syntax, defaults, or format guidance beyond what the schema supplies, so the baseline 3 applies.

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+resource: turning a seed keyword into themed clusters, and enumerates the outputs (long-tail terms, intent, titles, meta descriptions). An agent knows what it produces, but the description never distinguishes it from SEO siblings like competitor_gap or content_refresh.

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 when-to-use guidance and no comparison to the seven sibling tools; it never says whether this should be run before article_draft or instead of competitor_gap. The second sentence governs how to consume the output, not when to select the tool.

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

schema_markupB

Valid JSON-LD for any Schema.org type, with placeholders instead of invented values. Returns the full instructions to follow; carry them out rather than summarising them.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoSchema type, or leave blank to detect
outputNonotes | code
subjectYesPage URL, or a description of the page

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 does disclose two real traits: output contains placeholders rather than fabricated values, and it returns instructions meant to be carried out. It says nothing about format, size, or validation guarantees, so disclosure is partial rather than complete.

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 with no filler, and the core capability is front-loaded. The second sentence is a meta-instruction to the agent rather than a property of the tool, but it is brief and does carry behavioral value.

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 3-param generation tool with no annotations and no output schema, the description covers the essential behavior (placeholder-based JSON-LD, instructions to execute) but leaves the return shape and the meaning of the output enum (notes | code) to the schema. Adequate but with clear gaps.

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 type/output/subject are already documented in the schema, which sets the baseline at 3. The description's 'any Schema.org type' and placeholder wording loosely echo the type and subject params but add no syntax, format, or selection detail 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?

States a specific output (valid JSON-LD for any Schema.org type) and a distinguishing trait (placeholders instead of invented values). None of the siblings (gsc_audit, traffic_drop, keyword_clusters, ai_citations, competitor_gap, content_refresh, article_draft) do schema generation, so it is distinguishable, though it never explicitly contrasts itself with them.

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?

Usage is only implied: an agent can infer it is for generating JSON-LD markup for a page, and 'placeholders instead of invented values' hints it is a template rather than a data-populated result. There is no when-to-use, when-not, or named alternative, so guidance stays at the implied level.

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

traffic_dropB

Diagnose lost rankings or traffic in cost order: rendering, indexing and crawl before any talk of an algorithm update. Returns the full instructions to follow; carry them out rather than summarising them.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesAffected site or page URL
whenNoRoughly when it dropped, e.g. late September
shapeNoovernight | slow | partial
regionNoTarget market, e.g. United States, United Kingdom, Canada
tongueNoOutput language, e.g. English, Arabic, Dutch, French

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, and it does disclose one important trait: the return value is a set of instructions to execute verbatim rather than a summary. That is genuinely useful and non-obvious. It still says nothing about whether the call mutates anything, permissions, scope of the diagnosis, or cost/latency despite the 'in cost order' phrasing.

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 tightly written sentences with the diagnosis and its ordering front-loaded, followed by the output-handling instruction. Every clause earns its place, though the second sentence's phrasing is slightly awkward ('carry them out rather than summarising them').

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 tool with no annotations, no output schema and four optional parameters, the description is adequate: it establishes the diagnostic entry point and tells the agent what to do with the result. It leaves gaps on how this relates to the sibling audit/refresh tools and on the shape of the returned instructions, so it is minimum viable rather than 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 description coverage is 100% and all five parameters carry their own descriptions with examples, so the baseline is 3. The description adds no additional semantics such as how 'shape' values map to diagnosis paths or how 'region'/'tongue' affect the returned instructions, so nothing lifts it above baseline.

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 and resource ('Diagnose lost rankings or traffic') and adds the diagnostic order it enforces (rendering, indexing, crawl before algorithm update). It is clearly distinguishable in domain from siblings like gsc_audit or content_refresh, but it never names or contrasts an alternative, 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 Guidelines3/5

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

The trigger condition (rankings or traffic have dropped) is implied by the opening phrase, and the description usefully cautions against jumping to an algorithm-update conclusion. However, it gives no explicit when-not guidance and does not route the agent to or away from any sibling tool, which is the main thing an agent needs at selection time.

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 updatesv1.0.0
    • First observedai_citations
    • First observedarticle_draft
    • First observedcompetitor_gap
    • First observedcontent_refresh
    • First observedgsc_audit
    • First observedkeyword_clusters
    • First observedschema_markup
    • First observedtraffic_drop

TDQS

A3.5/5.0

Scored across 8 tools

Disambiguation4/5

Each tool targets a distinct SEO task (GSC audit, traffic drop diagnosis, keyword clustering, AI citations, competitor gap, content refresh, schema, article draft). Minor overlap exists between gsc_audit and traffic_drop for diagnosing rankings, and between competitor_gap and content_refresh for content auditing, but descriptions clarify the intended use.

Naming Consistency5/5

All tools use consistent snake_case with noun_noun or acronym_noun patterns (e.g., traffic_drop, ai_citations). No mixing of conventions, and names are predictable and readable.

Tool Count5/5

8 tools is well within the ideal 3–15 range for a focused SEO toolkit. Each tool has a clear distinct workflow and earns its place.

Completeness4/5

Covers keyword research, content creation/refresh, competitor analysis, schema markup, AI citations, and diagnostic workflows from GSC/traffic data. Minor gaps like backlink analysis or technical site audits exist but are beyond the apparent AI-era content focus.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Integrates SEO analysis and Google Search Console data directly into Claude Code and Cursor. Performs real-time site audits, detects technical SEO issues, validates meta tags, generates structured data, and provides AI-powered recommendations for both production sites and local development servers.
    19
    15 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables Claude to perform full SEO audits on unpublished HTML, Markdown, or Word documents, including keyword analysis, meta tag suggestions, readability scoring, and heading structure validation.
    19 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Lets you ask Claude questions about your Google Search Console data and get real analysis, not raw API rows. Provides 20 tools for analysis, indexing, and safety.
    29
    1,333 npm
    143
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language analysis of Google Search Console data through Claude, with pre-built tools for quick wins, cannibalization detection, content decay, and more.
    Apache 2.0