
Geolint
io.github.iliasabk由 GitHub 帳號 iliasabk 發布v0.4.0更新於 Oct 24, 2026
ESLint for AI search: audits AI-crawler access, llms.txt, schema and citability.
概覽
一個本機 MCP 伺服器,用來審查網站的 AI 搜尋就緒度,檢查爬蟲存取、llms.txt、結構化資料與可引用性。
- 可以做什麼
- 審查單一網址,輸出含評分、證據與修正建議的報告,涵蓋爬蟲存取、llms.txt、結構化資料、可引用性與技術基礎檢查,並可與另一個網址對比,支援單次呼叫逾時。爬取網站並產生 llms.txt 檔案。列出稽核規則以及已知 AI 爬蟲權杖與封鎖各自的影響。
- 適用情境
- 適合讓助理檢查 AI 爬蟲能否抓取並引用某個網站、排查頁面為何未出現在 AI 回答中,或起草 llms.txt 並比較網站或競爭對手。
- 執行需求
- 以本機程序透過 stdio 執行,使用 npx 從 npm 套件 @iliasabk/geolint 加上 mcp 參數啟動。需要 Node.js 與網路存取,以抓取被審查頁面、robots.txt 和 llms.txt。未宣告帳號、API 金鑰或環境變數。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Geolint,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
geolint
ESLint for AI search. Lint your website for AI-search readiness — AI crawler access, llms.txt, structured data and citability.
[npm version] [CI] [OpenSSF Scorecard] [MIT license] [node >= 22] [npm downloads] [PRs welcome]
🇩🇪 Deutsch · 🇪🇸 Español · 🇯🇵 日本語
30-second quickstart
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.
Why
- AI answers are the new front page. ChatGPT, Perplexity, Claude, Copilot and Google AI Overviews send traffic — or don't — based on whether their crawlers can fetch and quote your pages.
- Most sites accidentally block or confuse AI crawlers. A stale
Disallow: /, anoindexleft over from staging, a client-rendered page that looks empty to a bot that doesn't 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 PR.
What it checks
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.
What a report looks like
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:
Commands
Full flag reference: docs/configuration.md.
Run it in CI
GitHub Action
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.
Any other CI
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.
Show your score as a README badge
Commit the SVG, or regenerate a shields endpoint JSON in CI
(--badge-endpoint) for a badge that never goes stale.
Output formats
-f pretty (default) renders the terminal report above. The machine formats:
-f json— the fullScanReport: 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 anywhere
Add -o report.json to write to a file; stdout stays clean for piping.
geolint on the real web
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.
Programmatic API
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.
Use it from AI assistants (MCP)
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.
The bot registry is the point
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:
And two nuances other tools miss:
- Some fetchers ignore robots.txt. OpenAI, Perplexity and Meta document that
their user-triggered fetchers (ChatGPT-User, Perplexity-User,
Meta-ExternalFetcher) may not honor robots.txt.
ai-crawler/user-fetch-bypasstells you when aDisallowwon't work — enforce at the WAF/auth layer instead. - Stale tokens.
anthropic-ai,Claude-Web,FacebookBotare retired.ai-crawler/stale-tokensflags them and names the replacement token — aUser-agent: anthropic-airule does nothing today.
Control-only tokens like Google-Extended and Applebot-Extended never fetch
at all — they only set a preference — and geolint treats them accordingly.
What geolint is honest about
- llms.txt is a proposal, not a standard. No major AI vendor has committed
to reading it — so
llms-txt/*findings are weighted as warnings and hints, not errors. geolint still checks it (andgeolint initgenerates it) because adoption is growing and the cost is one file. - Correlation ≠ causation. The citability rules are grounded in published
GEO research (quotations/statistics/citations measurably lift share-of-answer;
AI crawlers other than Googlebot and Applebot don't execute JavaScript), but
signals like question-shaped headings are hints, not facts — they're
infoseverity and geolint says so. - Every rule shows its reasoning. docs/rules.md documents why each rule exists; the research sources are in docs/research-notes.md, including the vendor docs behind every bot's robots.txt posture.
- The bot registry is a standalone reference.
docs/ai-crawlers.md lists every tracked token with
purpose, per-vendor robots.txt posture and vendor docs — the same data
geolint botsand thelist_ai_botsMCP tool expose.
Compared to the alternatives
Details and the reasoning behind each column: docs/comparison.md. geolint also ships an MCP server, a score badge and regression baselines.
Roadmap
Planned for v0.4+:
geolint watch— re-audit on deploys/file changes- Custom rule API for project-specific checks
- Deeper schema coverage (more
@typevalidators) - Homebrew formula
- Report localization beyond English
Contributing
Issues and PRs welcome — see CONTRIBUTING.md. New rules are
the best contribution: each needs a check(ctx), findings with fix, a test
and a docs entry.
License
If geolint helped, a ⭐ helps others find it.
來源:README.md,提交 01878ab
工具
0版本歷史
1- v0.4.0最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分