fetch_doc_contentLABSCO SUMMARY
A documentation crawl that stops where you tell it to.
The bounds are the feature: depth, page count, concurrency, two kinds of timeout and a path prefix all cap what a fetch can pull in, and failures come back per page rather than sinking the whole run. Truncation is flagged explicitly, so a partial answer is visibly partial.
What it is
A Bun-based MCP server that fetches documentation pages, extracts readable Markdown, ranks the links, and can crawl within explicit depth, page, timeout and scope limits.
What you get
- One tool covering both jobs — fetch a single page, or crawl outward from it
- Real depth semantics: depth 1 is the root page only, depth 2 adds direct children, depth 3 adds grandchildren, up to a maximum of 5
- Markdown extraction that keeps headings, lists, code blocks, tables, blockquotes and links
- A fast static fetch path, with Puppeteer rendering available for client-rendered or thin pages
- URLs normalised before deduplication — fragments, tracking parameters, default ports and trailing-slash duplicates removed
- Crawl scope held to the same origin, and optionally to a path prefix
- Hard bounds on maxPages, maxConcurrency, global timeout, per-page timeout and per-page content length
- Structured JSON results with crawl metadata, ranked links, truncation flags and per-page errors, so a partial crawl still returns what it got
Requirements
Bun 1.3.0 or newer. Puppeteer's browser installation is needed if render is set to auto or always. No account and no key.
Setup effort
Build from source — git clone https://github.com/wolfyy970/docs-fetch-mcp.git
USE CASES
Reading one documentation page properly
Fetch the URL at depth 1 and get clean Markdown with code blocks and tables intact.
Pulling a whole section of a docs site
Crawl at depth 2 or 3 scoped to a path prefix, so you get the guide and its children without the marketing pages.
Getting content out of a JavaScript-rendered page
Set render to always so Puppeteer draws the page before extraction, rather than getting an empty shell.
Keeping a fetch from running away
Cap maxPages, maxConcurrency and both timeouts, and read the truncation flags to see where the limits bit.
Working out where to read next
Use the ranked links in the result to choose the next page rather than crawling deeper on everything.
1 tool
Listed in project docs. Your client may show a different list.
BEFORE YOU INSTALL
What to know first
Tools you get
1 tool named in the project's documentation.
Requires
Bun >=1.3.0
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/wolfyy970/docs-fetch-mcp.git
cd docs-fetch-mcp
bun install
bun run buildMCP Clients
Any MCP client
{
"mcpServers": {
"docs-fetch": {
"command": "bun",
"args": [
"<YOUR_PATH_TO_DOCS_FETCH_MCP>/build/index.js"
]
}
}
}