Doc-scraper laster dokumentasjon ned til Markdown og gir agenten offline BM25-søk
Konverterer doc-scraper dokumentasjonsnettsteder til ren Markdown og serverer dem til kodeagenter som en MCP-server med offline fulltekstsøk.
En kodeagent som skal slå opp i dokumentasjon har som regel to valg: hente sider live over nett hver gang, eller stole på det modellen husker fra treningen. Begge koster deg noe, i latens eller i utdaterte svar. Doc-scraper, et Go-prosjekt under Apache-2.0-lisens, legger et tredje alternativ på bordet ved å bygge et lokalt, søkbart korpus av den dokumentasjonen du faktisk bruker.
Verktøyet crawler et nettsted ut fra en config.yaml, henter hovedinnholdet med CSS-selektorer og konverterer HTML til GitHub-flavored Markdown med tabeller, oppgavelister og gjennomstreking. Katalogstrukturen fra originalnettstedet beholdes, slik at hierarkiet fungerer som kontekst. Ut kommer også pages.jsonl, samt llms.txt og llms-full.txt etter llmstxt.org-konvensjonen.
Det praktiske argumentet ligger i MCP-modusen. Repoet eksponerer korpuset som en Model Context Protocol-server for Claude Code og Cursor, med et search_docs-verktøy som gjør rangert BM25-søk offline via SQLite FTS5. Agenten slår altså opp i dokumentasjonen uten et eneste nettverkskall. Automatisk innholdsdeteksjon gjenkjenner over 30 dokumentasjonsgeneratorer i tre lag med avtagende tillit, fra generator-metataggen via strukturelle DOM-signaturer til mønstre i asset-stier, med go-readability som fallback.
Driftsdetaljene tyder på at prosjektet har vært i faktisk bruk. Tilstanden lagres i BadgerDB, så en avbrutt crawl kan tas opp igjen med crawl --resume. Standardoppsettet kjører 8 workers med 500 ms forsinkelse per vert og maks 4 samtidige forespørsler mot samme vert, robots.txt og sitemaps respekteres, og HTTP-feil får eksponentiell backoff med jitter. Bilder lastes ikke ned som standard. Kravet er Go 1.26 eller nyere. Prosjektet oppgir at det ikke samler telemetri, analyse eller kontoer, og at alt av output og tilstand blir liggende på maskinen din.
Hva bør du gjøre?
- Start med lav max_depth på ett nettsted for å måle hvor stort korpuset blir, før du fjerner grensen.
- Bruk content_selector presist. Er den for vid, drar du navigasjon og bunntekst inn i konteksten agenten skal lese.
- Skru på watch mode for de få dokumentasjonssettene som endrer seg ofte, og la resten ligge som statiske korpus.
KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.