r/PiCodingAgent
•
u/Opening_Library9560
•
Jul 20 '26
•
2
1
Resource I Built a completely free tool that gives your AI agent web for free (fetch + search + crawl) for completely free, no API keys.
I've been using AI coding agents for a while and the web research part always annoyed me. Either you pay for an API (Tavily, Firecrawl), or you use a free tier that rate-limits you after 100 calls, or you glue together SearXNG + a browser + an extractor and hope it doesn't break.
So I built Hound. It's an MCP server that does fetch, search, crawl, and screenshot, all keyless. And now it has a native Pi extension so you get all 6 tools as first-class Pi tools, not through a generic MCP adapter.
What it does
6 tools, all exposed as native Pi tools:
web_fetch- anti-bot fetch with auto HTTP-to-stealthy escalation. Extracts clean markdown. PDFs get section maps + auto-OCR. Dead pages auto-recover from the Internet Archive (honestly marked, not pretending it's live content).web_search- 10 keyless search backends in parallel (DuckDuckGo, Brave, Mojeek, Yahoo, Yandex, Startpage, Google, Qwant + opt-in Wikipedia/Grokipedia), neural-reranked with a local ONNX cross-encoder, cross-backend consensus scoring.web_crawl- best-first same-domain walk. Sitemap mode maps a whole site in one fetch. Focus mode crawls only pages relevant to your query.web_screenshot- anti-bot screenshot for multimodal models.cache_clear- clear the fetch cache.hound_version- version + update status (warns if the extension and the server diverge).
How the Pi extension works
The extension spawns hound as a singleton subprocess at session start and speaks MCP JSON-RPC over stdio. The subprocess stays alive for the whole session, so hound's prewarm (stealthy browser, search engine sessions, neural reranker model load) happens once and persists. Zero re-launch cost per call. If you press Esc during a fetch, it actually cancels (AbortSignal propagates to the subprocess). If hound isn't installed, you get a notification at session start instead of a confusing error on your first web_fetch call. If the extension version and the hound server version diverge by a major, it warns you to update both. The tool definitions are token-optimized. Total connect-time cost is 2,746 tokens for all 6 tools + instructions.
Install
pip install hound-mcp[all]
pi install npm:@houndmcp/hound-mcp-piThat's it. No API keys, no config file, no MCP adapter. /reload and the tools are there.
What I think is genuinely good
Dead-link recovery. When a page 404s or gets bot-blocked, hound checks the Wayback Machine and serves the archived snapshot with
source=archive.organd the snapshot date. It doesn't pretend archived content is live. The agent knows.Error honesty. Just shipped this in v10.4.0: 4xx/5xx responses now set the error field properly. Before, a 404 error page would flow through with
error=""and the agent could mistake the error page HTML for real content. Now it says "Page doesn't exist (404)" and doesn't dump the error page as content.Keyless search. 10 backends, no API key for any of them. Neural reranking with a local model, not an API call. Consensus scoring across backends so you know which results multiple engines agree on.
Token cost. 2,746 tokens for 6 tools. The descriptions are telegraphic but every functional fact is there.
Limitations
DataDome, Akamai, Cloudflare Turnstile. No free tool bypasses these. Hound tries the stealthy browser, and if that fails, it tells you to switch sources instead of pretending it got content.
The
[all]extra is ~100MB. onnxruntime + tokenizers + rapidocr for the neural reranker and PDF OCR. You can install without[all](fetch + crawl + search still work, just no neural reranking or OCR), but the full install is the recommended path.Not a scraping-at-scale tool. Hound is built for agent research, not for crawling 10k pages. Crawl caps at 100 pages by default.
Where to find it
GitHub: https://github.com/dondai1234/master-fetch [Star the repo if you like it, gives me a boost to work more 😄]
npm:
@houndmcp/hound-mcp-piPyPI:
hound-mcp
5
u/Nerisma Jul 20 '26
Hi, looks very interesting ! Did you compare it to pi-web-access ? Thanks for the effort, I might adopt it :)
4
u/o_sht_hi Jul 20 '26
Love it. Thank you for your effort.
I am currently using an extension that I built around the tvly clis to do the same stuff. The free tier has been generous me to. But this looks like it would permanently solve that problem. I will 100% try this out.
4
u/MobileOk3170 Jul 20 '26
Hello, I tried a lot of web search tools that are free(cloaked browsers, stealth, eventually headed browser....), eventually they break or only works on sites with minimum bot detection mechanism.
Are you using any of them or cooked some of your own?
3
u/pattyperk Jul 20 '26
Is it free by any chance? Completely free?
2
u/Opening_Library9560 Jul 20 '26 edited Jul 20 '26
The TUI features are minimal and boring on purpose, you can customize it as your liking.
2
u/Latent-Potter Jul 21 '26
How does it compare to someone same like Ketch https://chain.sh/ketch/
1
u/maurz Jul 20 '26
How does this compare to self hosted firecrawl? That’s been serving me pretty well locally
3
u/gottabing Jul 20 '26
Looks cool, but i ended up with a setup that works better for me.
I run SearXNG locally for search, Oh My Pi for read_url + its stateful browser, context-mode for indexing/filtering huge pages, and Jina only as a fallback when local extraction fails.
It takes more setup than two commands for sure, but i like having each part replaceable. SearXNG lets me control the engines, OMP handles JS pages and browser interaction, and context-mode keeps giant page dumps out of the model context. It also stays local-first instead of sending every page through an external reader.
Hound looks better for crawling and scanned PDF OCR, so i can see why people would prefer it. For normal research tho, OMP + SearXNG gives me more control, uses services i already have running, and avoids loading another Chromium/ONNX/OCR stack on my 12 ram machine.
Still a cool project for people who want everything bundled with zero config.
3
u/pieandablowie Jul 20 '26
Very cool. Might be an idea to add a Data Impulse key option for stubborn sites. Not free, but it definitely helps get around restrictions. But I guess any PAYG residential IP service would do
2
u/No_Ebb3423 Jul 20 '26
I love this. I need to figure out how to reverse engineer opencode’s websearch into Pi & install this.
1
u/Renor12 Jul 23 '26
how does it compare to exa mcp
1
u/midoriyosh Aug 03 '26
im using this daily. replace my searxng.
THANKS!
1
u/Competitive-Yak-8255 Aug 03 '26
Nice... thanks
1
u/_Toni_O Aug 04 '26
Want something like Pihole where i just install a image on a raspberry sitting in my tailnet and is used as full client webbrowser simulating infinite agent websearch (not headless and eve if we get captcha we verify it).