doc-scraper
io.github.Sriram-PR/doc-scraper · 104 stars · Go · Apache-2.0
MCP server Crawl documentation sites into local corpora agents can search, read, and diff fully offline.
Install
The repo has no one-line install. Follow its README.
Published as
- mcpb
https://github.com/Sriram-PR/doc-scraper/releases/download/v2.11.0/doc-scraper.mcpbstdio
From the server's entry in the official MCP Registry.
Files
LLM Documentation Scraper (doc-scraper)
A configurable, concurrent, and resumable web crawler written in Go. Specifically designed to scrape technical documentation websites, extract core content, convert it cleanly to Markdown format suitable for ingestion by Large Language Models (LLMs), and save the results locally.
doc-scraper crawls documentation sites into clean Markdown and serves them to coding agents over MCP. Your agent searches and reads the docs you chose, offline, instead of guessing from training data or a live web search. Point doc-scraper add at any docs page and it detects the framework (30+ docs generators, including Docusaurus, Starlight, Sphinx, VitePress, Material for MkDocs, and mdBook), validates the content selector, and drafts the config for you.
Documentation: https://sriram-pr.github.io/doc-scraper/
Features
- Offline search for agents: BM25 full-text search (
search_docs) and page reads (read_page) over the stored corpus, with no network access - Framework detection: 30+ docs generators recognized, each selector validated on the page, Readability fallback, JavaScript-only shells reported instead of crawled empty
- Clean output: GitHub-Flavored Markdown per page with frontmatter, plus
pages.jsonl,llms.txt, andllms-full.txt - Polite and resumable: robots.txt and sitemaps, per-host rate limits, retries with backoff, resumable crawls, and staged output that never clobbers the last good copy
- Stays fresh: incremental re-crawls, watch mode, and crawl history (
get_freshness,diff_crawl) - Many sites at once: parallel crawls with shared limits
Install
Download a release binary (Linux, macOS, Windows; amd64 and arm64) from the Releases page, or:
go install github.com/Sriram-PR/doc-scraper/v2/cmd/doc-scraper@latest
docker run --rm --user "$(id -u):$(id -g)" -v "$PWD":/data ghcr.io/sriram-pr/doc-scraper:latest crawl -site rust_cli_book
Claude Desktop users can install doc-scraper.mcpb from the latest release instead. Details: Install.
Quick start
doc-scraper add -site rust_cli_book https://rust-cli.github.io/book/index.html # detect, preview, confirm doc-scraper crawl -site rust_cli_book # Markdown lands in ./crawled_docs/rust_cli_book/ doc-scraper search -site rust_cli_book "error handling"
Then give it to Claude Code:
claude mcp add --transport stdio doc-scraper -- /path/to/doc-scraper mcp-server -config /path/to/config.yaml
See Claude Code setup for scopes and a first prompt.
Docs
- Getting started: install, quick start, adding a site
- Use with agents (MCP): Claude Code, Claude Desktop, any stdio client, and the 11 tools
- Docs frameworks: how detection works, with guides for Docusaurus, Starlight, Sphinx, VitePress, Material for MkDocs, and mdBook
- Configuration and CLI reference
- Detection benchmark
Contributing
Contributions are welcome. Read CONTRIBUTING.md before starting: it covers setup, the testing rules CI enforces, how to claim an issue, and the policy on AI-assisted contributions. Issues labeled good first issue are a good place to begin.
Report security problems privately as described in SECURITY.md. Everyone taking part follows the Code of Conduct.
Privacy Policy
doc-scraper collects nothing: no telemetry, no analytics, no accounts. All output and state stays on your machine, and the only network requests it makes are the crawls and fetches you explicitly ask for. Full policy: PRIVACY.md.
License
This project is licensed under the Apache-2.0 License.
Acknowledgements
- GoQuery for HTML parsing
- html-to-markdown for conversion
- BadgerDB for state persistence
- mcp-go for MCP server implementation
- go-readability for content extraction fallback
- modernc.org/sqlite for the pure-Go crawl-history index
- robotstxt for
robots.txtparsing - yaml.v3 for configuration parsing
- google/uuid for crawl job IDs
- x/sync for the weighted semaphores that cap concurrency
Facts
- Kind
- MCP server
- Group
- Uncategorized
- Stars
- 104
- License
- Apache-2.0
- Language
- Go
- Last push
- 2026-10-10
- Forks
- 15
- MCP Registry
- io.github.Sriram-PR/doc-scraper
- Homepage
- sriram-pr.github.io/doc-scraper
- Topics
- data-preparation, llm, web-scraper, documentation, golang-cli, mcp, mcp-server, web-crawler
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k
