AI SEO Toolkit
Reads and analyses Google Search Console exports to identify striking-distance keywords, cannibalisation, content decay, and click-through gaps.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AI SEO Toolkitaudit my Search Console export for striking-distance keywords"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Reads a Search Console export: striking distance, cannibalisation, decay, click-through gaps |
| Diagnoses lost rankings in cost order, rendering and crawl before any talk of an update |
| Seed keyword into themes, long-tails, intent, titles, metas |
| Getting quoted by AI answers, from Google's published guidance |
| Reads the page that outranks you, writes past it |
| Audits a page you own against what currently ranks |
| Valid JSON-LD, placeholders instead of invented values |
| 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-toolkitThen select AI SEO Toolkit and Add.
From Claude Code instead:
/plugin marketplace add Bishwas-py/ai-seo-toolkit
/plugin install ai-seo-toolkit@webmatricesThat 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/mcpbrowsermacOS 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 componentsserver/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-tagsThat 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 nameThen 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 toolsai_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.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | Target market, e.g. United States, United Kingdom, Canada | |
| tongue | No | Output language, e.g. English, Arabic, Dutch, French | |
| subject | Yes | URL to improve, or a topic to write about |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | Title or topic | |
| voice | No | business | friendly | casual | |
| length | No | Approximate word count, e.g. 1000 | |
| tongue | No | Output language, e.g. English, Arabic, Dutch, French |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the page to beat | |
| voice | No | business | friendly | casual | |
| tongue | No | Output language, e.g. English, Arabic, Dutch, French |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of your page | |
| depth | No | quick | full | |
| region | No | Target market, e.g. United States, United Kingdom, Canada | |
| target | No | Target keyword | |
| tongue | No | Output language, e.g. English, Arabic, Dutch, French |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Window in days, default 90 | |
| site | No | Domain to audit, e.g. example.com. Pulls live data when a Search Console tool is connected | |
| focus | No | Limit to a section or path, e.g. /blog | |
| region | No | Target market, e.g. United States, United Kingdom, Canada | |
| tongue | No | Output language, e.g. English, Arabic, Dutch, French |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | Yes | Seed keyword | |
| width | No | Terms per cluster: 1, 3 or 5 | |
| region | No | Target market, e.g. United States, United Kingdom, Canada | |
| tongue | No | Output language, e.g. English, Arabic, Dutch, French |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Schema type, or leave blank to detect | |
| output | No | notes | code | |
| subject | Yes | Page URL, or a description of the page |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Affected site or page URL | |
| when | No | Roughly when it dropped, e.g. late September | |
| shape | No | overnight | slow | partial | |
| region | No | Target market, e.g. United States, United Kingdom, Canada | |
| tongue | No | Output language, e.g. English, Arabic, Dutch, French |
TDQS
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.
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.
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.
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.
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.
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.
8 tool updates
v1.0.0- First observed
ai_citations - First observed
article_draft - First observed
competitor_gap - First observed
content_refresh - First observed
gsc_audit - First observed
keyword_clusters - First observed
schema_markup - First observed
traffic_drop
TDQS
Scored across 8 tools
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.
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.
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.
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
Related MCP Connectors
Live SEO workflow tools for Claude Code, Codex, and AI agents.
Turn Search Console data into SEO actions, content, publishing, indexing, and AI insights.
Turn the AI you already pay for into an SEO agent: measured topics, SERP briefs, rule-checked drafts
- VouchedOAuthcom.vouchedhq
SEO data your AI can cite: Search Console, GA4, keywords, backlinks, SERPs and AI visibility.
Related MCP Servers
- AlicenseAqualityBmaintenanceIntegrates 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.1915 npm3MIT
- AlicenseNot gradedqualityBmaintenanceEnables 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 npmMIT
- AlicenseAqualityAmaintenanceLets 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.291,333 npm143Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables 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