# Hreflang Tag Generator — MCP tool `findutils:hreflang_tag_generator`

Generate hreflang annotations for multilingual pages and return them as HTML <link> tags, an HTTP Link header, and an XML sitemap block, plus validation issues (invalid URL, language, or region code, duplicate language-region pairs, missing x-default). Pass one page group as variants, or several as groups.

- Category: seo
- MCP server: https://mcp.findutils.com/ (Streamable HTTP, no API keys, 120 req/min per IP)
- REST endpoint: POST https://api.findutils.com/api/tools/hreflang-tag-generator/execute (no API keys, 60 req/min per IP)
- Reference page: https://findutils.com/mcp/hreflang-tag-generator/
- Same tool on the other surface: https://findutils.com/api/hreflang-tag-generator/

## Connect

```bash
claude mcp add findutils --transport http https://mcp.findutils.com/
```

Claude Desktop (`claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "findutils": {
      "url": "https://mcp.findutils.com/"
    }
  }
}
```

## Call the tool (verified example)

```bash
curl -X POST https://mcp.findutils.com/ \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "hreflang_tag_generator",
      "arguments": {
        "variants": [
          {
            "language": "en",
            "region": "US",
            "url": "https://example.com/en-us/",
            "x_default": true
          },
          {
            "language": "de",
            "url": "https://example.com/de/"
          }
        ]
      }
    }
  }'
```

## Input schema

| Argument | Type | Required | Description |
|---|---|---|---|
| `variants` | array | no | Shortcut for a single page group: array of { language, region?, url, x_default? }. language is an ISO 639-1 code (en, de, tr); region is an ISO 3166-1 alpha-2 code (US, GB). |
| `groups` | array | no | Several page groups: array of { base_url?, variants: [...] }. Each group is one page and its translations. |
| `format` | string (all \| html \| http \| xml) | no | Which output to fill. "all" fills html, http_headers, and xml_sitemap; a single format leaves the others empty. Default "all". Default: `"all"`. |

Example arguments (verified):

```json
{
  "variants": [
    {
      "language": "en",
      "region": "US",
      "url": "https://example.com/en-us/",
      "x_default": true
    },
    {
      "language": "de",
      "url": "https://example.com/de/"
    }
  ]
}
```

## Also a REST endpoint

```bash
curl -X POST https://api.findutils.com/api/tools/hreflang-tag-generator/execute \
  -H "Content-Type: application/json" \
  -d '{
    "variants": [
      {
        "language": "en",
        "region": "US",
        "url": "https://example.com/en-us/",
        "x_default": true
      },
      {
        "language": "de",
        "url": "https://example.com/de/"
      }
    ]
  }'

# Parameter schema
curl https://api.findutils.com/api/tools/hreflang-tag-generator
```

Full REST reference: https://findutils.com/api/hreflang-tag-generator/ · OpenAPI 3.1 spec: https://findutils.com/api/openapi.json

---
Full catalog: POST https://mcp.findutils.com/ with method `tools/list` · https://findutils.com/mcp/ · https://findutils.com/llms.txt
