
FATSEARCH
io.github.fatsearch由 GitHub 帳號 fatsearch 發布v0.2.5更新於 Nov 7, 2026
Web pages, PDFs and documents as small, clean, cached Markdown for AI agents
概覽
擷取網頁、PDF 與文件,並以精簡、乾淨、可快取的 Markdown 大綱回傳,讓助理按章節閱讀。
- 可以做什麼
- 擷取網址並產生快取在短 id 下的 Markdown 大綱,之後可讀取某一章節、在頁面內篩選,或列出並跟隨編號連結
- 執行網頁搜尋與 GitHub 儲存庫搜尋,結果以 id 形式回傳
- 讀取本機 PDF 檔案,每頁對應一個章節
- 透過已設定的服務商,依由便宜到昂貴的順序渲染或解鎖難處理的頁面(JS 頁面、驗證碼、阻擋牆)
- 查看每次擷取的服務商、耗時、費用與 token 統計,並預覽一次擷取會執行什麼、花費多少
- 適用情境
- 適合助理需要閱讀真實網頁或 PDF 又不想佔滿上下文時,尤其是內建擷取打不開的頁面;也適合想要可重現、低 token 且每頁費用可見的網頁閱讀流程。
- 執行需求
- 需在本機安裝本機程式(Homebrew、npm、cargo 或安裝腳本),以 stdio 本機程序方式執行。一般 HTTP 擷取不需帳號。選用的服務商金鑰(Oxylabs、Bright Data、Decodo、GitHub)透過本機表單存到 auth.json;網頁搜尋需要 Oxylabs 或 Bright Data 金鑰。Bright Data 另需區域名稱(BRIGHTDATA_UNLOCKER_ZONE)。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 FATSEARCH,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
[FATSEARCH: the ripgrep of web searching for AI agents.]
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.
[crates.io] [npm] [release] [license]
[Same question, same answer: FATSEARCH puts 1,384 tokens in the agent's context, Firecrawl puts the whole page, 112,517.]
same question · same answer · 81× less context
That's the point.
Every page your agent reads costs you this
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.
Your key never touches the chat
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 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.
On hard pages
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 stats is the marketing: real numbers, not claims.
38 hard pages social · news · shops · travel · classifieds · search · one run each
FATSEARCH reads more of the hard pages; Firecrawl and Tavily are faster on the pages they do read (same pages, medians: 23.7 s vs 4.9 s, 23.7 s vs 1.0 s). Readers ran on different days. Method and every row → · the table above: one page, six readers →
Tested in agents FATSEARCH 0.1.3 · Claude Code 2.1.280, one run each, 2026-10-19
- 51 tasks, FATSEARCH MCP vs Firecrawl MCP: 50/51 vs 51/51 right · $15.06 vs $53.48 per 1k tasks · median 5.3 s vs 6.7 s · slowest tenth 43.8 s vs 21.5 s. Details →
- Claude Code's WebFetch got 403 on npm, Medium and G2; FATSEARCH read all three. Details →
- One Wikipedia page, open-source readers: FATSEARCH 1,384 tokens to the answer; mcp-server-fetch, Crawl4AI, mcp-searxng and self-hosted Firecrawl 75k–117k for the whole page. Details →
- Full tables, losses included: docs/benchmarks.md
Get started
or curl -fsSL https://fatsearch.com/install.sh | sh · Windows: npm i -g fatsearch · cargo install --locked fatsearch · every host →
[!NOTE] The package is
fatsearch; the command isfats(likeripgrep→rg). Homebrew, npm and the install script also addfatsearchas a second name for it;cargo installadds onlyfats. No account needed. Without a provider key,fatsreads what a plain request gets; web search needs an Oxylabs or Bright Data key. With any one key (Oxylabs, Bright Data or Decodo) it renders and unblocks pages through that provider.
Setup
You, at a terminal: run fats setup. It is a menu (↑↓ Enter): the free fetch and each provider with its
state, then Settings (agent connection, cache, stats, telemetry). Pick a provider, paste its key (shown as • and a count), and
fats checks it live before it saves it. fats setup oxy jumps
straight to one (also bd, decodo, gh).
Your agent, or no terminal: the agent runs fats setup oxy (or bd, decodo, gh). It prints the
provider's dashboard link and a one-time form on 127.0.0.1, open for 30 minutes. The agent gives you the URL;
you paste the key into the form in your browser, never into the chat (what it prints).
Then the agent runs fats setup to check it ($0).
Keys go to auth.json in the key dir (mode 0600) and are sent only to their provider. auth.json is the one
key source: fats never sends a key from the environment, so the key you saved is the key every call uses
(fats shows each one's last 4 characters: keys oxy …6XBR · bd none · decodo none · gh none · auth.json). On
a machine without a browser (CI, SSH), pipe the key in: printf %s "$KEY" | fats setup oxy checks it and saves
it. Keys already exported: run fats setup import-env once: it checks them, copies them in where no key is
saved, and never replaces a saved one. Replacing a key keeps the old file as auth.json.bak (0600).
List prices per page, the ones dry:true and fats stats use. Oxylabs and Bright Data spend can be checked
with fats account; Decodo has no usage read for this key, so its $ is the list price, never reconciled.
Turn one off without losing its key: fats setup oxy off, back with fats setup oxy on.
The free fetch is your own connection: one request per page from your IP, at most one start per site per
second; a page waits its turn rather than buying a provider call. Providers use their own IPs and have no pace.
fats setup free off sends every page to a provider instead, so every page costs.
MCP
One tool. One string. Same commands.
The tool is fats(cmd) and its card is ~60 tokens. An agent that knows fats u1#3 knows the whole tool.
MCP Registry: mcp-name: io.github.fatsearch/fats
Commands
mods limit:20 country:de js:true wait:30 fresh:true · one screen of all of it: fats help · how to use it well: fats guide
For agents
The agent skill is versioned in this repo (skills/fatsearch/SKILL.md): how to read
pages without flooding context, and how to install, connect and verify fats when it is missing.
An agent without either CLI reads it pinned to a release:
https://raw.githubusercontent.com/fatsearch/fatsearch/v0.2.5/skills/fatsearch/SKILL.md.
That way the agent sees versioned text it can review, and nothing it runs comes from a website.
Docs as plain Markdown for agents: fatsearch.com/llms.txt.
Telemetry
FATSEARCH shares anonymous usage stats so we can fix what breaks. It never shares what you read or search.
- Never sent: URLs, searches, page text, files, API keys, your IP address, any id.
- Sent: fatsearch version, OS, which package (npm, Homebrew, cargo…), commands used, errors, which providers worked, crashes in our code.
See exactly what's sent with fats telemetry show. Turn it off in fats setup → Settings → Telemetry,
with fats setup telemetry off, FATS_TELEMETRY=0 or DO_NOT_TRACK=1. Details: docs/telemetry.md
17–21 MB binary 4 ms start 5 ms cached read $0 plain pages $0.001–0.0065 hard pages (three keys)
17 MB (macOS arm64) to 21 MB (Linux x86_64) · 4 ms native; the npm shim adds Node's ~40 ms
no daemon · no browser · anonymous usage stats (off: fats setup telemetry off · FATS_TELEMETRY=0 · DO_NOT_TRACK=1) · every run →
What it doesn't do (yet)
match:near/match:topic: needs a local model- OCR for scanned PDFs →
! no_text - DOCX / XLSX →
! not_in_v1 zip - OS keychain: keys live in
auth.json(mode 0600) - Remote MCP: stdio only
- Logins: a page behind a login stays behind it
Each prints a ! row explaining what's missing and what to do. Never silence.
reference · benchmarks · changelog · security · contributing
MIT or Apache-2.0, at your option.
來源:README.md,提交 69f298a
工具
0版本歷史
6- v0.2.5最新Nov 7, 2026
- v0.2.4Oct 22, 2026
- v0.2.3Oct 21, 2026
- v0.2.2Oct 21, 2026
- v0.2.0Oct 20, 2026
- v0.1.2Oct 17, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分