ESLint for AI search: audits AI-crawler access, llms.txt, schema and citability.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
ESLint for AI search. Lint your website for AI-search readiness β AI crawler access, llms.txt, structured data and citability.
π©πͺ Deutsch Β· πͺπΈ EspaΓ±ol Β· π―π΅ ζ₯ζ¬θͺ
No install, no config:
geolint fetches the page, its robots.txt and llms.txt, evaluates 51 known AI crawler tokens against your robots.txt, runs 52 audit rules, and prints a scored report with a concrete fix for every finding.
Disallow: /, a noindex left over from staging, a client-rendered page that
looks empty to a bot that doesn't run JavaScript.52 rules across 5 categories β geolint rules lists them all, and
docs/rules.md documents what each rule checks, why it matters
and how to fix violations.
| Category | Rules | Examples |
|---|---|---|
| AI Crawler Access | 10 | ai-crawler/search-bots-blocked, ai-crawler/wildcard-block-all, ai-crawler/user-fetch-bypass, ai-crawler/stale-tokens |
| llms.txt | 12 | llms-txt/missing, llms-txt/invalid-structure, llms-txt/broken-links, llms-txt/relative-links |
| Structured Data | 7 | schema/no-jsonld, schema/invalid-jsonld, schema/missing-article-fields |
| Citability | 12 | content/thin-content, content/no-h1, content/missing-dates, content/no-question-headings |
| Technical Foundation | 11 | technical/client-rendered, technical/https, technical/slow-response, technical/sitemap-missing |
Real output, auditing the bundled demo site (examples/demo-site, which
deliberately blocks two bots) β trimmed for width:
Every finding carries a rule id, a severity, the evidence geolint matched, and a fix. Compare two pages or two competitors head-to-head:
| Command | What it does | Key flags |
|---|---|---|
geolint check <url> | Audit a single URL | --format, --fail-under, --only/--ignore/--category, --compare, --baseline, --badge, --verbose |
geolint crawl <url> | Crawl same-origin pages and audit the whole site | --max-pages, --max-depth, --concurrency, --fail-under |
geolint init <url> | Crawl the site and generate a llms.txt | -o, --max-pages |
geolint diff <old.json> <new.json> | Compare two JSON reports: score delta, added/resolved findings | β |
geolint rules | List the 52 audit rules | --category, --format table|json|markdown |
geolint bots | List the 51 known AI crawlers and the impact of blocking each | --format table|json |
geolint mcp | Run an MCP server on stdio for AI assistants | --timeout |
Full flag reference: docs/configuration.md.
The action produces score/grade step outputs, a SARIF report for GitHub code scanning, and a markdown report for job summaries and PR comments. Full recipes β SARIF upload, updating a single PR comment, baseline drift detection β in docs/github-action.md.
Exit code is 1 when the score drops below the gate (or findings regress
against --baseline), 0 otherwise β works in GitLab CI, CircleCI, npm
scripts, pre-deploy hooks.
Commit the SVG, or regenerate a shields endpoint JSON in CI
(--badge-endpoint) for a badge that never goes stale.
-f pretty (default) renders the terminal report above. The machine formats:
-f json β the full ScanReport: findings, per-category scores, bot access matrix-f sarif β SARIF 2.1.0, upload straight to GitHub code scanning-f markdown β PR-comment/job-summary-ready tables-f html β a self-contained interactive report (score ring, findings filter,
bot matrix) you can share or host anywhereAdd -o report.json to write to a file; stdout stays clean for piping.
The repo dogfoods itself: a nightly workflow re-audits eight
well-known sites and commits the scores back, and the showcase
site publishes the full interactive
reports β github.com, anthropic.com, stripe.com and more, regenerated on every
push to main.
scan(url, options) returns a typed ScanReport. Also exported: the bot
registry (AI_BOTS, botsByPurpose), the rule registry (allRules,
ruleById), robots.txt/llms.txt parsers, badge generators, scorers and all
four reporters.
geolint mcp speaks the Model Context Protocol
over stdio β Claude Desktop, Cursor, VS Code and Windsurf can audit sites,
generate llms.txt and compare URLs as native tools:
Five tools: audit_url, generate_llms_txt, compare_urls, list_rules,
list_ai_bots β all read-only, with structured output and per-call timeouts.
Setup for every client: docs/mcp.md.
geolint bots lists 51 AI crawler tokens with a purpose-aware impact
assessment β because "should I block this bot?" has a different answer for each:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/geolint)<a href="https://allmcps.com/mcp/geolint"><img src="https://allmcps.com/api/badge/geolint?style=directory" alt="Geolint on AllMCPs" /></a>