{"name":"io.github.carsonroell-debug/steadyfetch","slug":"carsonroell-debug-steadyfetch","title":"SteadyFetch","description":"Reliable web fetching for AI agents with retry, circuit breaker, caching, and anti-bot bypass","url":"https://mcp.market/server/carsonroell-debug-steadyfetch","rating":null,"grade":"D","score":49,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":11,"stars":null,"forks":null,"downloads_week":17,"last_push_at":null,"license":"MIT"},"uptime":{"percent":0,"checks":28,"ok":0,"last_checked_at":"2026-11-04T05:45:26.002Z","last_ok_at":"2026-10-09T18:05:56.644Z","latency_ms":93},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":null,"version":"0.1.1","remotes":[{"type":"streamable-http","url":"https://steadyfetch-production.up.railway.app/mcp"}],"packages":[{"registryType":"pypi","identifier":"steadyfetch","version":"0.1.1","transport":{"type":"stdio"}}],"tools":[{"name":"cache_stats","description":"Get cache statistics — size and item count.\n\n    Useful for monitoring cache utilization and deciding when to clear.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"title":"cache_statsArguments"}},{"name":"check_domain","description":"Check the health status of a domain.\n\n    Returns the circuit breaker state: 'closed' (healthy), 'open' (failing),\n    or 'half_open' (testing recovery). Use this before batch operations to\n    avoid wasting time on domains that are down.\n\n    Args:\n        domain: The domain to check (e.g., 'example.com')\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"title":"Domain","type":"string"}},"required":["domain"],"title":"check_domainArguments"}},{"name":"clear_cache","description":"Clear the entire fetch cache.\n\n    Use when you need fresh data and don't want to rely on cached results.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"title":"clear_cacheArguments"}},{"name":"fetch_markdown","description":"Fetch a URL and return clean markdown text optimized for LLM consumption.\n\n    Same reliability as fetch_url but returns only the markdown content,\n    stripping HTML, scripts, and noise. Best for when you need the page\n    content for analysis, summarization, or data extraction.\n\n    Args:\n        url: The URL to fetch\n        use_cache: Whether to use cached results (default: true)\n        wait_for: CSS selector to wait for before capturing\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"title":"Url","type":"string"},"use_cache":{"default":true,"title":"Use Cache","type":"boolean"},"wait_for":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Wait For"}},"required":["url"],"title":"fetch_markdownArguments"}},{"name":"fetch_url","description":"Fetch a URL with full reliability — retry, circuit breaker, cache, and anti-bot bypass.\n\n    Returns both raw HTML and clean markdown. Automatically retries on failure\n    with exponential backoff, falls back to plain HTTP if browser fetch fails,\n    and circuit-breaks domains that are consistently down.\n\n    Args:\n        url: The URL to fetch\n        use_cache: Whether to use cached results (default: true, TTL 1 hour)\n        js_render: Whether to render JavaScript (default: true, disable for speed)\n        wait_for: CSS selector to wait for before capturing (e.g., '.results-loaded')\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"title":"Url","type":"string"},"use_cache":{"default":true,"title":"Use Cache","type":"boolean"},"js_render":{"default":true,"title":"Js Render","type":"boolean"},"wait_for":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Wait For"}},"required":["url"],"title":"fetch_urlArguments"}}],"scan":{"score":49,"grade":"D","scanned_at":"2026-10-14T17:37:25.895Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-14T17:37:25.827Z","components":{"code":{"score":25,"max":25,"notes":["8 source files scanned"]},"reliability":{"score":0,"max":20,"notes":["remote unreachable: Streamable HTTP error: Error POSTing to endpoint: {\"status\":\"error\",\"code\":404,\"message\":\"Application not found\",\"request_id\":\"eN7LRDA0TFK4H8_uwUFZXw\"}"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (endpoint requires auth); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[{"id":"reliability.unreachable","severity":"high","component":"reliability","title":"Remote endpoint did not respond","detail":"Streamable HTTP error: Error POSTing to endpoint: {\"status\":\"error\",\"code\":404,\"message\":\"Application not found\",\"request_id\":\"eN7LRDA0TFK4H8_uwUFZXw\"}"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://steadyfetch-production.up.railway.app/mcp","reachable":false,"authRequired":false,"latencyMs":391,"error":"Streamable HTTP error: Error POSTing to endpoint: {\"status\":\"error\",\"code\":404,\"message\":\"Application not found\",\"request_id\":\"eN7LRDA0TFK4H8_uwUFZXw\"}"}],"packages":[{"registryType":"pypi","identifier":"steadyfetch","version":"0.1.1","found":true,"weeklyDownloads":17,"license":"MIT","dependencyCount":6,"publishedAt":"2026-03-31T17:17:23.342832Z"}],"repo":{"found":false},"icon":{"url":null,"source":"none"},"presence":{"stars":null,"forks":null,"downloadsWeek":17,"license":"MIT","lastPushAt":null,"score":11}}}},"grade_history":[{"kind":"downgrade","fromGrade":"B","toGrade":"D","reason":"score 49: Remote endpoint did not respond; No source repository listed","createdAt":"2026-10-14T17:37:26.353Z"}],"reviews":[]}