geolint MCP¶
Lint your website for AI-search readiness. AI answers are the new front page: ChatGPT, Perplexity, Claude, Copilot and Google AI Overviews send traffic, or do not, based on whether their crawlers can fetch and quote your pages. geolint fetches a page, its robots.txt and llms.txt, evaluates 51 known AI crawler tokens against the rules, runs 51 audit rules across five categories, and prints a scored report with a concrete fix for every finding.
Server type: Local CLI (npx) with built-in stdio MCP server mode
Auth: none (site audit tool)
Install: npx @iliasabk/geolint check yoursite.com
MCP mode: geolint mcp (stdio server for AI assistants)
Version: 0.3.2 (npm, verified)
License: MIT
Category: SEO / AEO / GEO
Why This Matters for Operators¶
Most sites accidentally block or confuse AI crawlers: a stale Disallow: / left over from staging, a noindex that never got removed, a client-rendered page that looks empty to a bot that does not run JavaScript. Existing tools are blocklists or score-only web apps. They tell you to block everything, or give you a number with no path to improve it.
geolint is the linter: concrete findings, concrete fixes, runnable in CI on every pull request. Five categories cover the full AI-visibility surface:
| Category | Rules | Examples |
|---|---|---|
| AI Crawler Access | 10 | search-bots-blocked, wildcard-block-all, stale-tokens |
| llms.txt | 10 | missing, invalid-structure, broken-links, relative-links |
| Structured Data | 6 | no-jsonld, invalid-jsonld, missing-article-fields |
| Citability | 9 | thin-content, no-h1, missing-dates, no-question-headings |
| Technical Foundation | 10 | client-rendered, https, slow-response, sitemap-missing |
What a Report Looks Like¶
Real output from the bundled demo site:
geolint v0.2.1 - AI-search readiness
http://localhost:4173/
200 OK - robots 200 - llms.txt 404
██████████████████████████░░░░ 86/100 Grade B
FINDINGS
AI Crawler Access
✗ ai-crawler/search-bots-blocked PerplexityBot is blocked by robots.txt -
Perplexity cannot use your pages as AI answer sources
fix: Remove the Disallow covering PerplexityBot in robots.txt, or add
an explicit "Allow: /" for it.
llms.txt
âš llms-txt/missing No llms.txt found
fix: Create /llms.txt at the site root: an H1 title, a short blockquote
summary, and ## sections linking to your key content.
Every finding carries a rule id, a severity, the matched evidence, and a fix. The crawler report groups all 51 tokens by vendor (OpenAI, Perplexity, Google and the rest) and shows whether each is allowed for training, search, or user-fetch.
Commands¶
| Command | What it does |
|---|---|
geolint check <url> |
Audit one URL; --compare two pages head-to-head, --baseline, --fail-under |
geolint crawl <url> |
Crawl same-origin pages and audit the whole site |
geolint init <url> |
Crawl the site and generate an llms.txt |
geolint diff <old.json> <new.json> |
Score delta plus added and resolved findings |
geolint rules |
List the 51 audit rules |
geolint bots |
List the 51 known AI crawlers and the impact of blocking each |
geolint mcp |
Run an MCP server on stdio for AI assistants |
Installation¶
No install, no config:
npx @iliasabk/geolint check yoursite.com
Run it in CI with the official GitHub Action:
- uses: iliasabk/geolint@v1
id: geolint
with:
url: https://example.com
fail-under: 80
And for AI assistants, the MCP mode serves the same audit as tools:
claude mcp add geolint -- npx -y @iliasabk/geolint mcp
Business Relevance¶
- Marketing teams find out why AI assistants skip their pages before blaming the model.
- SEO and AEO agencies add a scored, fix-per-finding audit to every client engagement, runnable on every deploy.
- Publishers and content sites protect the traffic that flows through AI answers by keeping crawler access, llms.txt and structured data healthy.
- Product teams get a CI gate that fails the build when a page ships with a stale noindex or a blocked search bot.
Integration with CorpusIQ¶
geolint audits whether AI systems can read your public pages; CorpusIQ answers whether the numbers those pages promise are actually retrievable. An assistant connected to CorpusIQ reads authorized business data (GA4, Search Console, Shopify, Stripe, HubSpot) with source-cited answers, so the same session can pair a geolint fix list with the traffic and conversion data that shows which fix moved. For docs and content teams, the two cover both halves of AI visibility: technically readable, and factually answerable.
Limitations¶
- New project (npm 0.3.2) with a single maintainer; the rule set is opinionated and evolving.
- Heuristic scoring. A grade is a summary of the rules, not a ranking guarantee from any AI vendor.
- Node 22+ required for the CLI.
- Crawler token list covers the 51 known bots at release time; new tokens can appear between versions.
- The MCP mode is local stdio only - there is no hosted remote endpoint.