doc-scraper

io.github.Sriram-PRPublished by GitHub account Sriram-PRv2.25.0Updated Nov 5, 2026

Crawl documentation sites into local corpora agents can search, read, and diff fully offline.

Overview

doc-scraper's local MCP server; no sign-in required; STDIO.

No AI overview yet: these facts come from the registry entry and the server itself.

Installation

In SourceWeft

  1. Open doc-scraper in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

LLM Documentation Scraper (doc-scraper)

[CI] [Go Version] [Go Reference] [License] [Glama score]

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 crawling a docs site and answering search queries offline]

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, and llms-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:

bash
go install github.com/Sriram-PR/doc-scraper/v2/cmd/doc-scraper@latest
bash
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

bash
doc-scraper add -site rust_cli_book https://rust-cli.github.io/book/index.html   # detect, preview, confirmdoc-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:

bash
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

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

Source: README.md at commit 5c1f7c0

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the package type cannot run in the sandbox.

Version history

22
  1. v2.25.0LatestNov 5, 2026
  2. v2.24.1Oct 29, 2026
  3. v2.24.0Oct 25, 2026
  4. v2.22.0Oct 23, 2026
  5. v2.21.1Oct 22, 2026
  6. v2.21.0Oct 20, 2026
  7. v2.20.0Oct 20, 2026
  8. v2.19.0Oct 20, 2026
  9. v2.18.0Oct 19, 2026
  10. v2.17.0Oct 18, 2026
  11. v2.16.0Oct 18, 2026
  12. v2.15.1Oct 18, 2026
  13. v2.15.0Oct 17, 2026
  14. v2.14.0Oct 17, 2026
  15. v2.13.2Oct 16, 2026
  16. v2.13.1Oct 16, 2026
  17. v2.13.0Oct 15, 2026
  18. v2.12.0Oct 14, 2026
  19. v2.11.0Oct 10, 2026
  20. v2.10.1Oct 7, 2026
  21. v2.10.0Oct 5, 2026
  22. v2.9.2Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts