Skip to main content
Glama
gmoneyn

seo-toolkit-mcp

by gmoneyn

seo-toolkit-mcp

SEO toolkit as an MCP server. Analyze meta tags, robots.txt, sitemaps, keyword density, readability, and heading structure from any AI assistant that supports MCP.

Install

Add to your MCP client config (Claude, Cursor, etc.):

{
  "mcpServers": {
    "seo-toolkit-mcp": {
      "command": "npx",
      "args": ["-y", "seo-toolkit-mcp"]
    }
  }
}

Related MCP server: mcp-seo

Tools

Tool

Description

meta_tags

Analyze a page's SEO meta tags (title, description, OG, Twitter, canonical)

robots_txt

Parse robots.txt rules, sitemaps, and crawl directives

sitemap_check

Validate sitemap.xml format, URL count, and common issues

keyword_density

Keyword frequency analysis with single words, bigrams, and trigrams

readability

Flesch-Kincaid readability scoring with actionable tips

heading_structure

Heading hierarchy (H1-H6) analysis with structure validation

Example Prompts

License

MIT

Available Tools

6 tools
heading_structureA

Analyze a page's heading hierarchy (H1-H6). Returns the heading outline/tree, counts per level, and issues like missing H1, multiple H1s, or skipped levels. Use to verify content structure for SEO and accessibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe full URL to analyze (e.g. https://example.com/page)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It explicitly states the return values (heading outline/tree, counts, issues) and the type of analysis performed, which is sufficient for a read-only analysis tool.

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

Conciseness5/5

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

The description is only two sentences: the first states the purpose, the second details the output and use case. Every word adds value and there is no redundancy.

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

Completeness4/5

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

For a simple 1-parameter tool with no annotations or output schema, the description adequately covers purpose, output behavior, and use case. Minor missing details like error handling would improve it, but it is sufficiently 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?

The schema fully documents the single url parameter with a clear description. The tool description does not add extra parameter semantics beyond the schema, so baseline 3 applies.

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

Purpose5/5

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

The description clearly states the tool analyzes a page's heading hierarchy (H1-H6), using a specific verb and resource. It is distinct from sibling tools like meta_tags, robots_txt, and keyword_density.

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

Usage Guidelines4/5

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

The description gives a clear use case ('verify content structure for SEO and accessibility'), which implies when to use it. However, it does not explicitly name alternatives or exclusions.

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

keyword_densityA

Analyze text for keyword frequency and density. Returns top single words, bigrams, and trigrams with percentages. Optionally check density of a specific target keyword. Use to optimize content for target keywords.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text content to analyze
target_keywordNoOptional: a specific keyword or phrase to check density for

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description bears full responsibility. It discloses return format and optional keyword handling, but lacks details on how density is calculated, tokenization rules, or any limitations. This is adequate but incomplete.

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

Conciseness5/5

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

Three sentences, front-loaded with the main purpose, no filler. Efficiently covers action, outputs, optional parameter, and use case.

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 tool with two parameters and no output schema, the description covers the essential behavior, outputs, and use case. It could include more about input format or constraints, but it is largely sufficient.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already well-documented. The description restates 'text' and 'target keyword' without adding meaningful new semantics beyond what the schema provides.

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

Purpose5/5

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

The description clearly states it analyzes text for keyword frequency and density, and specifies the outputs (top single words, bigrams, trigrams with percentages). This distinguishes it from sibling tools like readability or heading_structure.

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

Usage Guidelines4/5

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

Provides a clear use case: 'Use to optimize content for target keywords.' It doesn't explicitly mention alternatives or when not to use, but the context is evident given sibling tools focus on other SEO aspects.

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

meta_tagsA

Fetch a URL and analyze its SEO meta tags. Returns title (with length check), meta description, Open Graph tags, Twitter Card tags, canonical URL, and actionable issues. Use this to audit any page's on-page SEO.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe full URL to analyze (e.g. https://example.com/page)

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions the fetch action and returns, but lacks disclosure of potential network failures, rate limits, non-HTML handling, or error responses. This is a significant gap for a network-fetching tool.

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

Conciseness5/5

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

The description is three concise sentences, each adding value: the action, the output list, and the usage guidance. It is front-loaded and free of unnecessary words.

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

Completeness4/5

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

Given a single fully-described parameter and a clear list of return values, the description is adequate for a simple tool. It lacks output structure or error scenarios, but those are less critical when the return types are explicitly enumerated.

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

Parameters3/5

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

The schema already describes 'url' with format and example, covering 100% of parameters. The description does not add semantics beyond the schema, so a baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states it fetches a URL and analyzes SEO meta tags, listing specific output types (title with length check, meta description, Open Graph, Twitter Card, canonical, issues). It distinguishes from siblings like robots_txt or sitemap_check by focusing on on-page meta analysis.

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

Usage Guidelines4/5

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

Provides clear context: 'Use this to audit any page's on-page SEO.' It does not explicitly mention alternatives or exclusions, but the sibling tools are sufficiently different that the intended use is unambiguous.

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

readabilityA

Score text readability using Flesch-Kincaid metrics. Returns Flesch Reading Ease score, grade level, word/sentence/syllable counts, average sentence length, reading time, and actionable tips. Use to ensure content matches your target audience.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text content to analyze (at least 10 words)

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently lists all expected return values (scores, counts, reading time, tips), giving the agent a clear picture of what the tool produces. However, it does not discuss potential edge cases, limitations, or any side effects, which would elevate it further.

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 efficiently structured: the first sentence concisely states the core function and outputs, and the second provides actionable usage guidance. No sentences are redundant or extraneous, making it both concise and impactful.

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

Completeness5/5

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

Despite having no output schema, the description enumerates the full set of returned metrics, which is crucial for an agent to understand the tool's utility. It also supplies usage context, making the description complete for a simple single-parameter read-only tool. All necessary aspects are covered.

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

Parameters3/5

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

The input schema already provides 100% coverage of the single parameter 'text' with a clear description ('at least 10 words'). The tool description adds no additional parameter-specific guidance beyond what the schema offers, so it meets the baseline for high schema coverage without enriching parameter semantics further.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('Score') and resource ('text readability'), and immediately distinguishes it from sibling tools like meta_tags or keyword_density by focusing on Flesch-Kincaid metrics. It also lists concrete output elements, making the purpose unmistakable.

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

Usage Guidelines4/5

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

The description provides explicit usage context: 'Use to ensure content matches your target audience.' This gives a clear scenario for when to deploy the tool, though it does not mention alternative tools or exclusion cases, so it falls short of a perfect score for guidelines.

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

robots_txtA

Fetch and parse a site's robots.txt. Returns user-agent rules, allowed/disallowed paths, sitemap directives, crawl-delay, and issues. Use this to check what search engines can/cannot crawl.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesDomain or URL (e.g. https://example.com). Will check /robots.txt at the root.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that it fetches and parses, and enumerates the return contents (user-agent rules, allowed/disallowed paths, sitemap directives, crawl-delay, issues). While it doesn't cover error/edge cases, it provides sufficient behavioral detail for a simple read-only tool.

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

Conciseness5/5

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

Two sentences with no waste. The first sentence communicates function and output, the second gives the usage purpose. Every word earns its place.

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

Completeness5/5

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

The tool is simple with one parameter and no output schema. The description lists the return types and usage, making it complete for the tool's complexity. There's no missing critical information.

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% — the single 'url' parameter is fully described in the schema ('Domain or URL... Will check /robots.txt at the root'). The description adds no additional parameter-level detail, so it's at the baseline.

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

Purpose5/5

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

The description clearly states 'Fetch and parse a site's robots.txt' with a specific verb and resource. It also lists what it returns, distinguishing it from sibling SEO tools like sitemap_check.

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?

Explicitly says 'Use this to check what search engines can/cannot crawl,' providing a clear use case. It doesn't mention exclusions or alternatives, but given the sibling tools, the purpose is differentiated enough that usage context is apparent.

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

sitemap_checkA

Validate a sitemap.xml file. Returns URL count, format (XML/index/text), sample URLs, last modified dates, and issues like duplicates or missing lastmod. Pass a domain to check /sitemap.xml, or a direct sitemap URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesSitemap URL or domain (e.g. https://example.com or https://example.com/sitemap.xml)

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are present, so the description carries the full burden. It transparently discloses what the tool returns: URL count, format (XML/index/text), sample URLs, last modified dates, and issues like duplicates or missing lastmod. This gives the agent a good sense of the tool's behavior, though it doesn't mention potential errors or side effects.

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

Conciseness5/5

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

Two concise sentences. The first states the purpose and key outputs, the second explains input formats. Every word earns its place, with no fluff or repetition.

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?

The tool is simple (one parameter, no output schema). The description covers purpose, input handling, and return fields, making it adequately complete for an agent to select and invoke correctly. Minor omissions like error handling do not significantly impact usability.

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

Parameters4/5

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

Schema coverage is 100% with the url parameter already described. The description adds extra meaning by explaining that passing a domain automatically checks /sitemap.xml, which is not explicitly in the schema. This enhances the agent's understanding of how to format the input.

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

Purpose5/5

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

The description clearly states the specific action ('Validate a sitemap.xml file') and resource. This distinguishes it from sibling tools like meta_tags, robots_txt, and readability, which target different SEO/website aspects.

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 gives clear context on how to invoke the tool: pass a domain to check /sitemap.xml, or pass a direct sitemap URL. Though it doesn't explicitly state 'use this instead of sibling X', the purpose is specific enough that the usage context is clear.

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. 6 tool updatesv1.0.2
    • First observedheading_structure
    • First observedkeyword_density
    • First observedmeta_tags
    • First observedreadability
    • First observedrobots_txt
    • First observedsitemap_check

TDQS

A4.1/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct aspect of SEO: meta tags, robots.txt, sitemap, keyword analysis, readability, and heading structure. While keyword_density and readability both analyze text, they answer different questions (keyword frequency vs. reading level), so there is minimal risk of confusion.

Naming Consistency4/5

The names mostly follow a noun-based pattern with snake_case (meta_tags, robots_txt, keyword_density, readability, heading_structure), but sitemap_check breaks the pattern by using a verb prefix. This is a minor inconsistency in an otherwise clear and predictable set.

Tool Count5/5

With 6 tools, the set is well-scoped and each tool provides a distinct function. It's within the ideal 3-15 range and doesn't feel bloated or sparse.

Completeness3/5

The toolkit covers meta tags, technical SEO files, heading structure, and text-based content analysis. However, there is a notable gap: keyword_density and readability require raw text input, but no tool fetches a page's body content, so agents must rely on external sources to analyze on-page text. Missing features like schema markup analysis are less critical but represent additional gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    MCP server for website SEO + GEO analysis. Scan any URL to get scores across 5 categories (SEO, GEO, Performance, Security, Accessibility) with actionable fix recommendations. Enables AI coding assistants to audit websites and implement fixes autonomously.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to perform comprehensive SEO audits on web pages, including meta tags, headings, links, images, performance, and more, via a CLI or MCP server.
    18
    1
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that gives AI assistants 23 SEO tools for rank tracking, Google Analytics, site audits, keyword research, competitive analysis, and more, accessible through natural language.
    25
    10
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that provides comprehensive SEO analysis tools with actionable fix instructions for AI assistants like Claude Code and Claude Desktop.
    MIT