io.github.fatsearch/fats is an MCP server that web pages, PDFs and documents as small, clean, cached Markdown for AI agents. Its tool list has not been published yet over stdio and sse, requires no API key, and scores 63/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"io-github-fatsearch-fats": {
"args": [
"-y",
"skills"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Web pages, PDFs and documents as small, clean, cached Markdown for AI agents
This server supports HTTP transport. Be the first to test it - help the community know if it works.
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked skills against OSV.dev.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in browser / ai-ml
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Open-source web scraper for AI agents with scrape, crawl, and map tools
An open-source AI agent that brings the power of Gemini directly into your terminal.
Firecrawl, the context API for AI agents: search, scrape, interact with the web, plus paper search.
MCP Security Weekly
Get CVE alerts and security updates for io.github.fatsearch/fats and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Reads the pages your agent's built-in fetch can't (JS pages, PDFs) through your own provider key,
kept on disk as clean Markdown, navigated by outline and ids.
same question · same answer · 81× less context
That's the point.
| Wikipedia · Rust · model input at $2 / M tokens (Claude Sonnet 5.5, 2026-10-19) | Tokens in context | Fetch | Model bill |
|---|---|---|---|
| Firecrawl | 112,517 | 1 credit | $0.23 |
| Bright Data Unlocker | 103,625 | 1 request | $0.21 |
| Oxylabs Web API | 102,609 | 1 request | $0.21 |
| Tavily Extract | 97,504 | 0.2 credit | $0.20 |
| Jina Reader | 94,415 | free | $0.19 |
| FATSEARCH | 918 | $0 | $0.002 |
Your agent gets a short outline. It reads one section when it needs depth, not the whole page.
Menus, cookie banners, navigation, footer links, tracking scripts: gone.
Prices, dates, numbers: kept (loss guard counts every one).
[!TIP] The "free" fetch costs ~100× more at the model. And it stays in context, every turn after.
fats setup <provider> opens a one-time key form on 127.0.0.1, behind a random token, for 30 minutes.
You paste the key there in your browser, so it stays out of the chat, the model's context and the agent's logs.
The form refuses a POST from another origin; the key is checked live, saved with mode 0600, sent only to its provider.
$ fats setup decodo
= setup decodo · waiting for the key at http://127.0.0.1:59802/k/e0c8baba7a5b058947f4fdab97dabb05/decodo · 30 min · $0
tell the user (never ask for the key in chat):
1. open https://dashboard.decodo.com/web-data/playground (no account yet: https://dashboard.decodo.com/register)
2. Copy the API key shown on the Web Data playground. Do NOT paste it in this chat.
3. open http://127.0.0.1:59802/k/e0c8baba7a5b058947f4fdab97dabb05/decodo , paste the key, press Save
then: fats setup (when the user says done; end your turn, do not poll · checks it, $0)
link dead (30 min passed)? run fats setup decodo again and give the user the new line 3
fats setup shows a form still waiting (! form_waiting decodo · 23 min left · <its URL>) or one whose time ran
out (! form_expired decodo · the link the user got is dead → fats setup decodo · new link, same 3 steps).
Over SSH (SSH_CONNECTION or SSH_TTY set) one more line says how to paste the key in a terminal there.
fats tries plain HTTP first (free). If the page is a JS shell, a captcha, or a wall,
it climbs to your providers: cheapest first, hedged, with cost tracking on every call.
$ fats https://www.nytimes.com/ dry:true
nytimes.com/ fetch plain → oxy (after a captcha) → bd ∥ oxyjs after 5s → new u1 · up to $0.0040
$ fats stats
u1 rust-lang.org · Rust Programming Language · plain 230ms $0.0000 · 1.2ktok
u2 en.wikipedia.org · Rust (programming language… · p
... [View full README on GitHub](https://github.com/fatsearch/fatsearch#readme)