Scrape, crawl, and map websites to Markdown or JSON via local CLI.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Turn any website into clean, structured data. Point Crawlberg at a URL and get back Markdown, metadata, and links β from a single page or a whole site β in the language you already use.
You need data that lives on the web, and raw HTML is not it. Crawlberg does the crawling, scraping, and cleanup end-to-end: it fetches pages, follows links, converts each one to Markdown, and hands you structured metadata (titles, links, images, social-card and JSON-LD data) β so you skip the parsing and go straight to the content.
It runs from a single Rust core with identical results across 14 language bindings, and it handles the awkward parts for you: JavaScript-heavy pages fall back to a real headless browser, bot filters are detected and worked around, robots and sitemaps are respected, requests are throttled per domain, and requests to private or internal addresses are refused by default. Drive it from your code, an AI agent, a REST service, or the CLI.
Every part of the pipeline is a trait you can swap β the crawl frontier, rate limiter, storage, event stream, and content filters β so you can plug in your own behavior. Managed extras like proxy pools, tuned bot-evasion, authenticated sessions, scheduling, and billing live in xberg-enterprise.
| Feature | Description |
|---|---|
| Structured extraction | Text, metadata, links, images, assets, JSON-LD, Open Graph, hreflang, favicons, headings, response headers |
| Markdown conversion | Clean Markdown with citations, document structure, and fit-content mode |
| Concurrent crawling | Depth-first, breadth-first, or best-first traversal with configurable depth, page limits, and concurrency |
| 14 language bindings | Rust, Python, Node.js, Ruby, Go, Java, Kotlin (Android), C#, PHP, Elixir, Dart, Swift, Zig, and WebAssembly |
| Smart filtering | BM25 relevance scoring, URL include/exclude patterns, robots.txt compliance, sitemap discovery |
| Browser rendering | Optional headless browser for JavaScript-heavy SPAs with WAF detection and bypass |
| Batch & streaming | Scrape or crawl hundreds of URLs concurrently; real-time crawl events via async streams |
| SSRF-safe by default | Refuses loopback, private, link-local, and cloud-metadata addresses; opt out via env var or CrawlConfig |
| Auth & rate limiting | HTTP Basic, Bearer, and custom-header auth with cookie jars; per-domain request throttling |
| MCP server & REST API | Model Context Protocol integration for AI agents plus an HTTP server with OpenAPI spec |
Precompiled binaries for glibc Linux (x86_64/aarch64), macOS, and Windows across every binding. On musl Linux (Alpine) coverage is deliberately partial β the CLI, Docker image, Rust, Ruby, Java, C#, and Elixir work there; the Node, Python, Go, and PHP bindings do not ship musl artifacts. See the platform support matrix for the full table and the Alpine workarounds.
β Star this repo to show your support β it helps others discover Crawlberg.
See Python README for full documentation.
See Node.js README for full documentation.
See Rust README for full documentation.
See Go README for full documentation.
Available on Maven Central as io.xberg.crawlberg:crawlberg. See Java README for the dependency snippet and current version.
See C# README for full documentation.
See Ruby README for full documentation.
See PHP README for full documentation.
Add {:crawlberg, "~> 0.3"} to your mix.exs dependencies. See Elixir README for full documentation.
See Dart README for full documentation.
Available on Maven Central as io.xberg.crawlberg.android:crawlberg-android. See Kotlin README for the dependency snippet and current version.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/crawlberg)<a href="https://allmcps.com/mcp/crawlberg"><img src="https://allmcps.com/api/badge/crawlberg?style=directory" alt="Crawlberg on AllMCPs" /></a>