{
  "markdown": "<!-- mcp-name: io.github.RyanKramer/autorank-mcp -->\n\n# AutoRank MCP\n\nTechnical SEO tools for AI agents. Generate and validate structured data, build\nmeta tags and crawl directives, check how a result will actually render in\nGoogle, and analyse copy — all from inside Claude, Cursor, or any MCP client.\n\n**No API key. No account. No network calls.** Every tool is a pure function, so\nthe server does its job offline and installs in one line.\n\nBrowser versions of these tools live at\n[autorank.so/free-tools](https://autorank.so/free-tools).\n\n## Install\n\nClaude Desktop — add to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"autorank\": {\n      \"command\": \"uvx\",\n      \"args\": [\"autorank-mcp\"]\n    }\n  }\n}\n```\n\nOr with pip:\n\n```bash\npip install autorank-mcp\n```\n\nThen point your client at the `autorank-mcp` command. No environment variables\nare required.\n\n## Tools\n\n### Structured data\n| Tool | What it does |\n|---|---|\n| `generate_faq_schema` | FAQPage JSON-LD from question/answer pairs |\n| `generate_article_schema` | Article JSON-LD with author and dates |\n| `generate_breadcrumb_schema` | BreadcrumbList JSON-LD |\n| `generate_local_business_schema` | LocalBusiness JSON-LD with postal address |\n| `validate_json_ld` | Parses a block, checks required fields per type, flags risky patterns |\n\n### Meta and crawl directives\n| Tool | What it does |\n|---|---|\n| `generate_meta_tags` | Full head block: title, description, canonical, OG, Twitter Card |\n| `generate_robots_meta` | Robots meta tag from directives, with a plain-English explanation |\n| `generate_robots_txt` | robots.txt, optionally blocking the major AI crawlers |\n| `validate_robots_txt` | Validates syntax and surfaces the mistakes that cause real damage |\n| `generate_hreflang` | hreflang tags, with the return-link requirement spelled out |\n\n### SERP and copy\n| Tool | What it does |\n|---|---|\n| `check_title_length` | Pixel-width truncation check for titles |\n| `check_description_length` | Pixel-width truncation check for descriptions |\n| `serp_preview` | How the whole result renders, breadcrumb included |\n| `keyword_density` | Word and phrase frequency with a stuffing warning |\n| `readability_score` | Flesch Reading Ease and grade level |\n\n### Utilities\n| Tool | What it does |\n|---|---|\n| `build_utm_link` | UTM-tagged tracking URLs, warns on case-inconsistency |\n| `slugify` | Clean URL slugs from titles |\n| `autorank_free_tools` | Lists the web-only tools that need live crawling |\n\n## Design notes\n\n**Title checks measure pixels, not characters.** Google truncates on rendered\nwidth, and character counts mislead badly — sixty capital `W`s and sixty `i`s\noccupy very different space. Titles are the most common cause of a rewritten\nsnippet, so the check approximates width instead.\n\n**The schema tools will not help you lie.** `validate_json_ld` flags\n`aggregateRating` whenever it appears, because fabricated ratings are a\ndocumented cause of manual actions, and `generate_faq_schema` states plainly\nthat the answers must already be visible on the page. Structured data that\ndisagrees with rendered content is a spam signal, not a shortcut.\n\n**Some tools are deliberately absent.** Anything needing live crawling or a\nkeyword corpus — broken-link checking, keyword difficulty, sitemap extraction,\nduplicate-content detection — is not a pure function, so it stays on the web\nwhere it belongs. `autorank_free_tools` lists those.\n\n**robots.txt controls crawling, not indexing.** `validate_robots_txt` says so in\nits output, because conflating the two is the single most common way sites\naccidentally leave pages in the index.\n\n## Development\n\n```bash\ngit clone https://github.com/RyanKramer/autorank-mcp\ncd autorank-mcp\npip install -e .\nautorank-mcp\n```\n\n## About\n\nBuilt by [AutoRank](https://autorank.so) — AI SEO content automation. The web\nversions of these tools, plus about thirty more, are free at\n[autorank.so/free-tools](https://autorank.so/free-tools).\n\nMIT licensed.\n",
  "bytes": 3973,
  "sha": "099cdf71753ee89816854da102a31166742c0e99990e5a6c16e86bfb234023a4",
  "repo_slug": "ryankramer/autorank-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_ryankramer_autorank_mcp_31291b1d/readme"
}