io.github.AIMento/lean-reader
Token-minimized URL-to-clean-text reader for LLMs, with a token-savings receipt.
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
lean-readerclaude mcp add lean-reader -- npx -y lean-reader@0.1.0
{
"mcpServers": {
"lean-reader": {
"command": "npx",
"args": [
"-y",
"lean-reader@0.1.0"
]
}
}
}
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
Sommaire
Lean Reader
Turn any URL into token-minimized clean text for LLMs, with a token-savings receipt on every call. MCP server + library.
LLMs don't need your nav bar, your cookie banner, your <script> tags, or 200 KB of inlined SVG — but raw page HTML makes them pay for all of it. Lean Reader strips a page down to the article and tells you exactly how many tokens (and dollars) you just saved.
231,276 → 15,735 tokens (93% saved · 14.7× vs raw HTML · ~$0.54 on gpt-4o) · cleaned by lean reader
Use as an MCP server
Add to your client's MCP config (Claude Desktop/Code, Cursor, …):
{
"mcpServers": {
"lean-reader": { "command": "npx", "args": ["-y", "lean-reader"] }
}
}
Then the lean_read(url, format?) tool returns clean text plus the receipt.
Use as a library
import { leanRead } from 'lean-reader/lib/core.js';
const r = await leanRead('https://example.com/article', { format: 'markdown' });
console.log(r.content); // token-minimized text
console.log(r.receipt); // { beforeTokens, afterTokens, savedPct, ratio, estCostSavedUsd, ... }
How much does it save?
Measured, not marketed — the open benchmark ships the corpus, the tokenizer, and every raw output, and flags the cases where Lean Reader loses:
- ~29% fewer tokens than Mozilla Readability (the standard extractor) at the median, while keeping ~99% of the body text. Be honest about where that edge comes from: it's the
minimizepost-pass (link/image/footnote/whitespace strip), not smarter extraction — run both throughminimizeand they're roughly par. Lean actually runs Readability as one of its two extractors (see Honest limits), so it doesn't lose to it. - Versus raw page HTML the multiple is much larger (median ~8.7×, down to ~3.1× on already-clean blog prose, 100×+ on script-heavy docs) — but that's HTML nobody feeds an LLM, so read it as "don't dump raw pages," not as a competitive claim.
- Versus Jina Reader (measured, anonymous tier): ~1.6× fewer tokens on a like-for-like body, ~4.3× if you count the nav and reference dumps Jina also returns. Firecrawl is not yet measured (needs an API key).
The receipt uses the o200k_base tokenizer (GPT-4o/4.1 class); the model and tokenizer are always shown, and counts are vs the raw page HTML so you can check the math.
Honest limits
- Static HTML only (v1). Pages whose body is client-rendered (some SPAs, GitHub repo landing pages) return little — Lean Reader flags
partialinstead of emitting empty text. Jina/Firecrawl render JS and will beat us there. - Two extractors, body-max selection. Defuddle and Mozilla Readability each silently drop the body on different pages (Defuddle on some large Wikipedia articles, Readability on some docs/SPAs). Lean runs both and keeps whichever recovers more body, so neither's blind spot becomes a silent content drop. A ROUGE-L ground-truth pass on a 14-page hand-labeled sample is done: reference-body recall 0.99, equal to Readability on the same ground truth, so the word-count gap is noise removal, not body loss (see the bench repo).
- Token counts are
o200k_base; Claude/Gemini tokenize differently.
Open-core
The extraction + token-minimization core (lib/) and the MCP server (src/) are MIT. Hosted service, sharing UI, and metering are separate.
MIT © 2026
Questions fréquentes
Qu'est-ce que io.github.AIMento/lean-reader ?
Token-minimized URL-to-clean-text reader for LLMs, with a token-savings receipt.
Comment installer io.github.AIMento/lean-reader ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add lean-reader -- npx -y lean-reader@0.1.0. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour io.github.AIMento/lean-reader ?
Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.
io.github.AIMento/lean-reader est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient io.github.AIMento/lean-reader ?
Il est publié par AIMento. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.