Skip to main content
Glama
sourav2024

technical-seo-mcp

by sourav2024

Check hreflang / international SEO

check_hreflang
Read-only

Audit hreflang annotations to validate BCP-47 language/country codes, catch duplicate/conflicting values, ensure self-referencing and x-default tags, and verify reciprocal return links.

Instructions

Audit a page's hreflang annotations for multi-language or multi-country targeting (e.g. US + Canada): validates BCP-47 values (catching en_US, en-UK and other common mistakes), requires a self-referencing annotation, checks for x-default, flags duplicate/conflicting values and relative hrefs, and verifies agrees. With verify_return_links: true it fetches each alternate and confirms it links back — missing return links are the most common reason Google ignores an otherwise-correct hreflang cluster. A single-language site correctly reports that hreflang is not needed.

Input Schema

NameRequiredDescriptionDefault
urlYesPage URL to audit, e.g. https://example.com/
max_alternatesNoMaximum alternates to fetch when verify_return_links is true (default 10)
verify_return_linksNoFetch each alternate URL and confirm it points back to this page (reciprocity). Adds one request per alternate — off by default

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.2.1

TDQS

A4.5/5.0
Behavior5/5

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

Annotations carry the safety profile (readOnlyHint, openWorldHint), and the description adds substantial behavioral context beyond them: the exact checks performed, that verify_return_links fetches each alternate (network cost), and why reciprocity matters for Google. This is rich, non-redundant disclosure.

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?

Front-loaded with the core action, then layers the validation checklist and the verify_return_links nuance, ending with the single-language case. Dense and every clause earns its place, though the opening sentence is long.

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 check tool with no output schema, the description covers what is audited and when results are meaningful. It does not describe the return shape, but the validation checklist and parameter behavior give an agent enough to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds rationale for verify_return_links beyond the schema's mechanical wording — explaining that missing return links are the most common reason Google ignores a cluster, which motivates setting the flag.

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?

States a specific verb and resource: 'Audit a page's hreflang annotations for multi-language or multi-country targeting.' It enumerates exactly what is validated (BCP-47 values, self-reference, x-default, duplicates, relative hrefs, html lang), which cleanly distinguishes it from the broad seo_full_audit sibling.

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?

Gives clear triggering context (multi-language / multi-country sites) and explicitly covers the negative case: 'A single-language site correctly reports that hreflang is not needed.' It does not name alternative tools to use instead, so it sits just below the explicit when-not/alternatives bar.

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