About WhatsUpDoc (downmarked)
WhatsUpDoc (downmarked) is a command-line tool for fetching developer documentation from websites and saving it locally as Markdown. It is for developers organizing documentation, with CSS selection, recursive fetching, and header-based file splitting.
Key features
- 01Fetch web pages and convert to Markdown
- 02Choose a local output path
- 03Filter content with CSS selectors
- 04Recursively fetch linked pages
- 05Split documents by headers
Use cases
- 01Save a specific documentation page
- 02Extract only a page's main content
- 03Collect linked documentation recursively
- 04Split long documents by heading
MCP support
The project says MCP standardizes communication between the command-line tool and the documentation server.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEWhatsUpDoc (downmarked)
A command-line tool for fetching and storing developer documentation locally using the Model Context Protocol (MCP).
Features
- Fetch documentation from any website and convert it to Markdown
- Save documentation to any location on your system
- Target specific content using CSS selectors
- Recursively fetch linked documentation pages
- Split documentation by headers into separate files
- Uses the Model Context Protocol (MCP) for standardized communication
Installation
# Install globally
npm install -g downmarked
# Or use with npx
npx downmarked fetch https://reactjs.org/docs/getting-started.html
Usage
Basic Usage
downmarked fetch <url>
This will prompt you for an output location and save the documentation as Markdown.
Options
# Fetch documentation with specific options
downmarked fetch https://reactjs.org/docs/getting-started.html \
-o ~/Documents/react-docs.md \
-s "main" \
-r \
-d 2 \
--split
Available Options
| Option | Description |
|---|---|
-o, --output <path> | Output path (absolute or relative) |
-s, --selector <selector> | CSS selector to target specific content |
-r, --recursive | Recursively fetch linked documentation pages |
-d, --max-depth <number> | Maximum depth for recursive fetching (default: 3) |
--split | Split documentation by headers into separate files |
Examples
Fetch React Documentation
# Save React documentation to a specific location
downmarked fetch https://reactjs.org/docs/getting-started.html -o ~/Documents/react-docs.md
# Target only the main content area
downmarked fetch https://reactjs.org/docs/getting-started.html -s "main"
# Recursively fetch linked pages up to 2 levels deep
downmarked fetch https://reactjs.org/docs/getting-started.html -r -d 2
Fetch Python Documentation
# Save Python documentation
downmarked fetch https://docs.python.org/3/tutorial/index.html -o python-tutorial.md
How It Works
WhatsUpDoc (downmarked) uses the Model Context Protocol (MCP) to standardize communication between the CLI and the documentation server. The tool:
- Fetches HTML content from the specified URL
- Parses the HTML using Cheerio
- Converts the HTML to Markdown using Turndown
- Saves the Markdown to the specified location
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Model Context Protocol (MCP) for providing the communication framework
- Turndown for HTML to Markdown conversion
- Cheerio for HTML parsing
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.