s-fetch — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited s-fetch (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Fetches a URL directly via scrapling, bypassing bot detection.
If the bash command below fails because scrapling-fetch-mcp isn't installed (e.g. No such file or directory for the bin/python3 path), follow references/install.md once before proceeding.
$ARGUMENTS — parse as <url> [mode] [format]
basic): basic | stealth | max-stealthmarkdown): markdown | htmlRun the following Bash command, substituting URL, MODE, and FORMAT with the parsed values:
"$(uv tool dir)/scrapling-fetch-mcp/bin/python3" - <<'PYEOF'
import asyncio
from contextlib import redirect_stdout
from os import devnull
async def fetch(url, mode):
with open(devnull, "w") as null, redirect_stdout(null):
from scrapling.fetchers import AsyncFetcher, StealthyFetcher
if mode == "basic":
return await AsyncFetcher.get(url, stealthy_headers=True)
elif mode == "stealth":
return await StealthyFetcher.async_fetch(url, headless=True, network_idle=True)
elif mode == "max-stealth":
return await StealthyFetcher.async_fetch(
url, headless=True, block_webrtc=True,
network_idle=True, disable_resources=False, block_images=False
)
else:
raise ValueError(f"Unknown mode: {mode}")
url = "URL"
mode = "MODE"
fmt = "FORMAT"
page = asyncio.run(fetch(url, mode))
html = page.html_content
if fmt == "markdown":
from bs4 import BeautifulSoup
from markdownify import markdownify as md
soup = BeautifulSoup(html, "lxml")
for tag in soup(["script", "style"]):
tag.extract()
body = soup.find("body")
print(md(str(body if body else soup)))
else:
print(html)
PYEOFIf mode was not given and basic returns blocked or empty content, retry with stealth, then max-stealth.
| Mode | Speed | Use when |
|---|---|---|
basic | 1–2s | Most sites; curl-cffi with stealth headers |
stealth | 3–8s | Sites that block basic; headless Chromium via patchright |
max-stealth | 10s+ | Heavily protected sites; full browser fingerprint |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.