fetch_urlLABSCO SUMMARY
The retry, cache and back-off logic you would otherwise write around a fetch tool.
One call runs the whole sequence: cache check, circuit check, stealth browser fetch, backoff retries, plain HTTP fallback, then cache the result. The circuit breaker is what saves a batch job, since a domain that fails 5 times is skipped for the cooldown rather than retried into the ground.
What it is
A web-fetching server built for reliability, with a stealth browser fetch, exponential-backoff retries, a plain HTTP fallback, a cache and a per-domain circuit breaker.
What you get
- A full reliability fetch returning both markdown and raw HTML (fetch_url)
- Markdown only, for when the HTML is context you do not want to pay for (fetch_markdown)
- Cache hits answered instantly, under a TTL you set
- A per-domain circuit breaker, so a site that is down fails fast instead of consuming retries, with its status readable (check_domain)
- Cache utilisation metrics and a flush when you need fresh data (cache_stats, clear_cache)
- Retries, circuit threshold, cooldown, cache TTL and page timeout all set by environment variable
Requirements
pip install steadyfetch and run steadyfetch, or build the Docker image and run it on port 8200. Defaults are 3 retries, a circuit threshold of 5 failures, then a cooldown before it tries again, an hour of caching and a page timeout in the tens of seconds.
Setup effort
One command — pip install steadyfetch
USE CASES
Reading a page that blocks ordinary fetchers
Fetch it through the stealth browser path and get markdown and HTML back.
Crawling a batch of URLs without one bad domain stalling everything
Let the circuit breaker skip the failing domain, and check its status when you want to know why.
Keeping fetched pages cheap in context
Ask for markdown only, so the raw HTML never enters the conversation.
Finding out why a domain stopped responding
Read its circuit status alongside the cache metrics.
Forcing fresh data after a site has changed
Flush the cache, then fetch again rather than waiting out the TTL.
5 tools
Listed in project docs. Your client may show a different list.
fetch_markdowncheck_domaincache_statsclear_cacheBEFORE YOU INSTALL
What to know first
Tools you get
5 tools named in the project's documentation.
Requires
steadyfetch on PATH
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
pip install steadyfetchMCP Clients
Claude Desktop
{
"mcpServers": {
"steadyfetch": {
"command": "steadyfetch"
}
}
}