SkillAgentSearch skills...

svipall

Local-first MCP server and CLI in Rust: any page as LLM-ready Markdown, whole-site crawls, keyless search, and local captcha solving. No cloud, no API keys.

Install / Use

claude mcp add ilien-dev -- npx -y github:ilien-dev/svipall

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

84/100

Supported Platforms

Claude Code
Claude Desktop

Our assessment of svipall

svipall scores 84/100 on our quality scale, 248th of 549 AI & Machine Learning skills we index (top 46%).

Its MCP Server is 30 KB long, well organised into 20 sections with 10 code examples: a thorough specification that gives an agent plenty to work with.

It has 10 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
30/30
Structure
20/20
Description
15/15
Adoption
4/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated today, so svipall is actively maintained.
  • It is released under AGPL-3.0, a copyleft license: you can use it, but modified versions you distribute must carry the same license.
  • Its trust signals score 97/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands (2 minor notes below).

  • noteInstalls by piping a downloaded script into a shellline 123
    curl -fsSL https://raw.githubusercontent.com/ilien-dev/svipall/main/install.sh | sh # macOS, Linux
  • noteInstalls by piping a downloaded script into a shellline 124
    irm https://raw.githubusercontent.com/ilien-dev/svipall/main/install.ps1 | iex # Windows

Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

svipall compared with similar skills

All 4 of these similar skills score higher than svipall; compare them before choosing.

SkillScoreStarsUpdatedFormat
svipall (this skill)by ilien-dev8410todayMCP Server
claude-memby thedotmack10094.6ktodayCLAUDE.md
Agent-Reachby Panniantong10085.2k9d agoCLAUDE.md
Understand-Anythingby Egonex-AI10084.0k12d agoCLAUDE.md
headroomby headroomlabs-ai10073.7ktodayCLAUDE.md

Frequently asked questions

How do I install svipall?
Run claude mcp add ilien-dev -- npx -y github:ilien-dev/svipall. The install tabs above show the steps for each supported agent.
Which AI agents does svipall work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is svipall safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands (2 minor notes below). It is AGPL-3.0-licensed and scores 97/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is svipall still maintained?
The repository was last updated today, so svipall is actively maintained.
<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="assets/brand/svipall-hero-dark.gif"> <img src="assets/brand/svipall-hero-light.gif" alt="Svipall, a local-first web scraping and browsing MCP server for AI agents" width="800"> </picture> </p> <h3 align="center">A different face at every gate.</h3> <p align="center"> <b>Web reading for your AI agent, running on your own machine.</b><br> An MCP server and CLI, in Rust, that extracts web pages into Markdown,<br> crawls sites within configured limits, searches without an API key,<br> and attempts supported challenges, then says plainly which ones it could not. </p> <p align="center"> <a href="https://www.rust-lang.org"><img alt="Rust" src="https://img.shields.io/badge/Rust-stable-983E25?style=flat-square&labelColor=0B1A2B"></a> <a href="#license"><img alt="License: AGPL-3.0" src="https://img.shields.io/badge/License-AGPL--3.0-DCE3EB?style=flat-square&labelColor=0B1A2B"></a> <a href="#mcp-tools"><img alt="MCP" src="https://img.shields.io/badge/MCP-29%20tools-FFB03A?style=flat-square&labelColor=0B1A2B"></a> <a href="docs/development.md"><img alt="Recorded test results" src="https://img.shields.io/badge/tests-results%20recorded-DCE3EB?style=flat-square&labelColor=0B1A2B"></a> <a href="docs/proof.md"><img alt="Benchmarks" src="https://img.shields.io/badge/benchmarks-published%2C%20failures%20included-983E25?style=flat-square&labelColor=0B1A2B"></a> <a href="docs/privacy.md"><img alt="No telemetry" src="https://img.shields.io/badge/telemetry-none-0C6244?style=flat-square&labelColor=0B1A2B"></a> </p> <p align="center"> <a href="#install"><b>Install</b></a> &middot; <a href="#what-you-can-actually-do-with-it"><b>Use cases</b></a> &middot; <a href="docs/proof.md"><b>Proof</b></a> &middot; <a href="#mcp-tools"><b>Tools</b></a> &middot; <a href="docs/captcha.md"><b>Captcha</b></a> &middot; <a href="#the-rest-api"><b>REST API</b></a> &middot; <a href="#how-svipall-compares"><b>Compare</b></a> &middot; <a href="docs/faq.md"><b>FAQ</b></a> </p> <p align="center"> <a href="docs/demo/"><img src="docs/demo/svipall.gif" width="960" alt="Six commands and the output they printed: the tier ladder answering a Cloudflare wall with a browser, search without an API key, a schema induced from a listing, a crawl written to CSV, and 160 of 160 automation-tell probes clean."></a><br> <sub>Replayed from real runs on one machine. <a href="docs/demo/">How it was recorded, and the raw captures</a>.</sub> </p>

Everything runs locally. There are no third-party API keys, no paid captcha services and no telemetry. Web requests reach the sites you visit, and results reach the agent or client you connect.

Svipall fetches and renders pages locally, extracts their content, and reports detected challenges and extraction-quality labels. Some sites still block it, and an apparently successful response can contain incomplete records or a page shell. The published comparisons therefore audit useful content separately from HTTP status and the tool's own verdict.

Why Svipall

| What goes wrong | Svipall | |---|---| | Your agent reads a "checking your browser" screen and summarises it as the article. It was a 200, so nothing flagged it | Twelve wall kinds, each naming the move it implies. Detected blocks carry an explicit verdict; classification is heuristic details | | You crawl 5,000 pages and can't tell which are worth keeping | Assessed pages carry quality and duplicate observations, and quality labels never discard a page details | | One page = 300,000 tokens of raw HTML. The fixes are four manual jobs you now own | Clean Markdown by default; opt into tables as rows, out_file to disk, or capture of the site's own JSON API details | | You want to attempt a supported captcha without a paid solver | Fifteen widget families and eleven answer modalities, all local, optional vision models depending on the build, and a human dashboard for unresolved challenges details |

It records successful visits, failures, incomplete extraction and rejected changes. Historical benchmark logs and the current comparison use different scoring rules and configurations; the results section distinguishes them.

Rust · MCP + CLI + REST · no Node, no Python, no API key · local storage and processing

Install it

The comparison table describes other projects' documented scope.


Install

Every channel below installs the latest release, built from the tree this README describes. svipall doctor reports what an installed build can do on the machine it is on.

The README factual audit records the source checks, documentation corrections and limits of this review.

Choose agent-assisted setup, the Claude Code plugin, or a manual installation.

Ask the agent you already have

Paste this into Claude Code, Cursor, Codex, opencode, or anything else that can run a command:

Install and configure Svipall by following the instructions here:
https://raw.githubusercontent.com/ilien-dev/svipall/main/docs/install.md

That page guides an agent through platform detection and verification, then asks which integration you want: CLI + Skill (recommended, lower context use) or MCP + Skill (the full MCP tool surface). It also asks whether to configure every project or only the current one, and verifies the chosen result instead of treating a skill as MCP registration. When Svipall already exists, it shows the installed and latest versions and asks whether to update the shared user installation or keep the current version before it writes the integration. Completion depends on the agent, client configuration and available permissions.

Claude Code: install the plugin

/plugin marketplace add ilien-dev/svipall
/plugin install svipall@svipall
/svipall:setup

/svipall:setup installs the binary if it is missing, checks the server answers, and offers to make Svipall the way Claude reaches the web in every project. It asks before each of those. /svipall:doctor reports the installation's capabilities. /svipall:update shows the installed and latest releases, then updates the binaries only if you choose to. /svipall:uninstall offers removal of setup's registration, memory and strict-mode changes. Removing the binary and the data are separate choices.

Install it yourself

One line, with no toolchain and nothing to compile:

curl -fsSL https://raw.githubusercontent.com/ilien-dev/svipall/main/install.sh | sh   # macOS, Linux
irm https://raw.githubusercontent.com/ilien-dev/svipall/main/install.ps1 | iex        # Windows

Or a package manager, or the container image:

brew install ilien-dev/svipall/svipall               # macOS, Linux
scoop bucket add svipall https://github.com/ilien-dev/scoop-svipall && scoop install svipall
docker pull ghcr.io/ilien-dev/svipall:latest         # or :slim, the http tier only; see container notes
npx --yes svipall doctor                             # if node is already there
cargo install svipall                            # from source; add `svipall models install` for the models

The installers verify checksums where they can, and a mismatch stops the install. A missing checksum file, entry or hashing utility only warns, so a successful exit is not by itself proof the archive was verified: read the output. If the destination already contains another version, the installer states that the binaries are shared by every harness and asks before replacing them.

Check for a release without changing anything, or update after reviewing the report:

svipall update --check
svipall update --install       # only after choosing to update the shared installation

Platform builds, what ships where, building from source and wiring it into any MCP client are all in docs/install.md. If you have never installed anything from a terminal, GET-STARTED.md is this section with nothing assumed.

Then ask for something

There is no key to paste and no account to create.

"Read this page and summarise the pricing." "Crawl these docs and write me an llms.txt." "Watch this listing and tell me when the price moves." "Get me every row of that table as CSV."

The assistant can choose among the exposed tools. Supported challenges that need a pair of eyes go to a human dashboard at http://localhost:8787/human.

Or drive it from a shell

svipall fetch https://example.com/article
svipall fetch https://shop.example/item --query "shipping costs"
svipall fetch https://docs.example/api --schema auto        # rows from a listing you've never seen
svipall crawl https://docs.example/ --pages 50 --out pages.csv
svipall search "rust async runtime" --engine all
svipall snapshot https://news.ycombinator.com                # the page as roles and refs, not markup
svipall serve --port 8788                                    # the same server as a local REST API

Completed data commands print one JSON object to stdout and diagnostics to stderr, so the output can be piped to jq. serve is a long-running server, and help is written to stderr.

What comes back

A historical run of svipall fetch https://example.com, with the content string cut short. Current automatic fetches also report identity_used, and the fallback fields described below when they have something to report:

{
  "attempts": ["http: 200 (170ms) OK"],
  "chars": 167,
  "content": "# Example Domain\n\nThis domain is for use in documentation examples…",
  "final_url": "https://example.com/",
  "optimization": "ordinary",
  "quality": "thin",
  "quality_reasons": ["thin_text"],
  "status": 200,
  "tier_used": "http",
  "title": "Example Domain",
  "tokens_estimated": 42,
  "url": "https://example.com"
}

tier_used says how hard it had to try and quality says what actually arrived. When a page does not arrive, the same object carries blocked_reason, wall_kind, wall_vendor, wall_evidence and a note telling your agent what to do next. Straight from a committed benchmark record:

{ "wall_kind": "vendor", "wall_vendor": "kpsdk.io", "wall_evidence": "header x-kpsdk-ct" }

A detected block carries a verdict alongside the returned content. A clear verdict still needs a content check, because the classifier cannot show that the requested records arrived intact.

What you can actually do with it

| You want to… | It looks like this | |---|---| | Read one page cleanly | web_fetch → Markdown with heuristic boilerplate removal and sanitization; query= ranks text by lexical relevance | | Turn a listing into rows | schema: "auto" reads the page's own repeated structure, names the columns and hands back typed rows, with no model and no API call, in one parse | | Pull a data table | tables=true → typed rows; out_file: rows.csv writes them to disk so thousands of rows never touch your context | | Skip the scraping entirely | web_capture returns the JSON the page fetched while loading, usually the site's real API, with ?page=2 waiting for you | | Turn a docs site into a corpus | web_crawl with llms.txt output, near-duplicate labels, resumable frontier and lexical saturation stopping, subject to page/token/traffic limits | | Search without a key | web_search scrapes DuckDuckGo, Bing and Brave; engine="all" merges them by agreement | | Let the agent click things | web_snapshot (roles + refs, a fraction of the tokens) then web_act to click, type, scroll and wait, all through human-like input | | Attempt a browser challenge | Automatic routing

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars10
CategoryAI
Updated17h ago
Forks1

Languages

Rust

Trust signals

97/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 info