Skip to main content
Glama
Jambozx

OnlineCyberTools MCP (280+ filterable tools)

by Jambozx

seo_hreflang_generator

Read-onlyIdempotent

Generate and validate hreflang annotations for international SEO from language-and-URL entries, outputting HTML, sitemap, or HTTP-header formats.

Instructions

Hreflang Generator (Build International SEO Alternate-Language Link Tags). Generate and validate rel="alternate" hreflang annotations for international SEO from a list of language/region-to-URL entries. The 'operation' field selects the mode. 'generate' serializes the entries into three formats at once (HTML tags for , xhtml:link tags for a sitemap block, and RFC 8288 Link: HTTP-header lines), XML-escaping every href and emitting warnings for invalid BCP 47 codes, non-absolute URLs, duplicates, missing x-default, and reciprocity. 'validateCode' checks a single BCP 47 tag and returns its normalized form plus parsed language/script/region subtags. 'commonCodes' returns a curated 40+ entry catalogue of well-known codes (en, en-US, zh-Hans, x-default). Use this for standalone alternate-language tags; use seo_sitemap_generator when you want the same alternates embedded in a full XML sitemap, or seo_meta_tag_generator for a complete meta block. Runs locally in a 5s-bounded Node process:

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
operationYes"generate" builds hreflang tags from "entries"; "validateCode" checks one "code"; "commonCodes" lists the curated catalogue. Defaults to generate.generate
entriesNoLanguage-variant entries for operation "generate" (required, min 1 valid entry). Entries missing hreflang or href are skipped with a warning.
formatNoOutput serialization for operation "generate". html = <link> tags; sitemap = <xhtml:link> tags; http-header = RFC 8288 Link: lines. Defaults to html.html
includeXDefaultNoWhen true, append an x-default entry (using xDefaultHref or the first entry's href) unless one is already present.
xDefaultHrefNoAbsolute URL for the appended x-default entry when includeXDefault is true; ignored otherwise. Non-absolute values warn.
codeNoSingle BCP 47 tag to validate for operation "validateCode" (required for that operation), e.g. zh-Hant-TW.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
successNoTrue when the operation succeeded.
operationNoEcho of the operation performed (generate, validateCode, or commonCodes).
resultNoOperation-specific payload.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed14 schema fields changedv0.5.1
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / code
      Added value: +{
      +  "description": "Single BCP 47 tag to validate for operation \"validateCode\" (required for that operation), e.g. zh-Hant-TW.",
      +  "type": "string"
      +}
    • addedInput schema / properties / entries / description
      Added value: +"Language-variant entries for operation \"generate\" (required, min 1 valid entry). Entries missing hreflang or href are skipped with a warning."
    • addedInput schema / properties / entries / items / properties / href / description
      Added value: +"Absolute URL of this language variant; relative URLs warn (search engines ignore them)."
    • addedInput schema / properties / entries / items / properties / hreflang / description
      Added value: +"BCP 47 tag (language[-script][-region]) or x-default, e.g. en, en-US, zh-Hans-CN. Case-normalized; unknown codes warn."
    • addedInput schema / properties / format / default
      Added value: +"html"
    • addedInput schema / properties / format / description
      Added value: +"Output serialization for operation \"generate\". html = <link> tags; sitemap = <xhtml:link> tags; http-header = RFC 8288 Link: lines. Defaults to html."
    • addedInput schema / properties / format / enum
      Added value: +[
      +  "html",
      +  "sitemap",
      +  "http-header"
      +]
    • addedInput schema / properties / includeXDefault / default
      Added value: +false
    • addedInput schema / properties / includeXDefault / description
      Added value: +"When true, append an x-default entry (using xDefaultHref or the first entry's href) unless one is already present."
    • addedInput schema / properties / operation
      Added value: +{
      +  "default": "generate",
      +  "description": "\"generate\" builds hreflang tags from \"entries\"; \"validateCode\" checks one \"code\"; \"commonCodes\" lists the curated catalogue. Defaults to generate.",
      +  "enum": [
      +    "generate",
      +    "validateCode",
      +    "commonCodes"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / xDefaultHref / description
      Added value: +"Absolute URL for the appended x-default entry when includeXDefault is true; ignored otherwise. Non-absolute values warn."
    • changedInput schema / required
      Previous value: -[
      -  "entries",
      -  "format",
      -  "includeXDefault",
      -  "xDefaultHref"
      -]New value: +[
      +  "operation"
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "operation": {
      +      "description": "Echo of the operation performed (generate, validateCode, or commonCodes).",
      +      "type": "string"
      +    },
      +    "result": {
      +      "description": "Operation-specific payload.",
      +      "properties": {
      +        "error": {
      +          "description": "validateCode: human-readable reason when valid is false.",
      +          "type": "string"
      +        },
      +        "html": {
      +          "description": "generate: <link> tags, or RFC 8288 Link: lines when format=http-header.",
      +          "type": "string"
      +        },
      +        "normalized": {
      +          "description": "validateCode: canonical casing (lang lowercase, Script Titlecase, REGION uppercase).",
      +          "type": "string"
      +        },
      +        "parts": {
      +          "description": "validateCode: parsed subtags (present when valid).",
      +          "properties": {
      +            "language": {
      +              "description": "ISO 639-1 language subtag.",
      +              "type": "string"
      +            },
      +            "region": {
      +              "description": "ISO 3166-1 alpha-2 region subtag, when present.",
      +              "type": "string"
      +            },
      +            "script": {
      +              "description": "ISO 15924 script subtag, when present.",
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "sitemap": {
      +          "description": "generate: <xhtml:link> tags with a leading xmlns:xhtml hint comment.",
      +          "type": "string"
      +        },
      +        "valid": {
      +          "description": "validateCode: whether the code is a well-formed, known BCP 47 hreflang tag.",
      +          "type": "boolean"
      +        },
      +        "warnings": {
      +          "description": "generate: validation/advisory notes (bad codes, relative URLs, duplicates, missing x-default, reciprocity); empty when clean.",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "success": {
      +      "description": "True when the operation succeeded.",
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already indicate readOnly, idempotent, non-destructive. The description adds behavioral traits: runs locally, 5s timeout, XML-escaping hrefs, warnings for invalid BCP47, non-absolute URLs, duplicates, missing x-default, and reciprocity. No contradiction with annotations.

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 a single paragraph but well-structured: purpose first, then operation modes, usage guidance, sibling differentiation, and runtime info. Every sentence adds value without redundancy.

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?

Given the tool's moderate complexity (6 params, 1 required) and existence of output schema, the description covers all necessary context: input, output formats, warnings, runtime, alternatives. It is complete.

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 description coverage is 100%, so baseline is 3. The description adds context about operation modes, output formats, warnings, and how parameters interact (e.g., includeXDefault and xDefaultHref). This adds meaning beyond the schema, but not significantly enough for a 5.

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 purpose: generate and validate hreflang annotations. It specifies the verb (generate/validate) and resource (alternate-language link tags). It also distinguishes from sibling tools seo_sitemap_generator and seo_meta_tag_generator.

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

Usage Guidelines5/5

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

Explicitly provides when-to-use: 'Use this for standalone alternate-language tags; use seo_sitemap_generator when you want the same alternates embedded in a full XML sitemap, or seo_meta_tag_generator for a complete <head> meta block.' Also mentions runtime constraints (5s-bounded Node process).

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

Deploy Server

Other Tools