MCP HubMCP Hub
dazeb

markdown-downloader

by: dazeb

A MCP Server that will download any webpage as markdown in an instant. Download docs straight to your IDE for AI context. Powered by Jina.ai

19created 20/12/2024
Visit
markdown
Jina

πŸ“ŒOverview

Purpose: To provide an efficient MCP server for downloading webpages as markdown files.

Overview: Markdown Downloader is a robust server that utilizes the r.jina.ai service to convert web content into markdown format effortlessly. It streamlines the process of saving and organizing markdown files by providing a user-friendly interface for managing downloads.

Key Features:

  • Webpage Downloading: Allows users to download webpages as markdown files, simplifying content management.

  • Configurable Settings: Users can configure the download directory to suit their preferences, ensuring flexibility in file organization.

  • Automatic File Naming: Automatically generates filenames that include a date stamp, making it easy to track content updates.

  • File Management: Includes functionality to list all downloaded markdown files, enhancing usability.

  • Persistent Configuration: Stores user settings persistently, reducing the need for repeated configuration.


Markdown Downloader MCP Server

Overview

Markdown Downloader is a powerful MCP (Model Context Protocol) server that allows you to download webpages as markdown files with ease. Leveraging the r.jina.ai service, this tool provides a seamless way to convert web content into markdown format.

Features

  • 🌐 Download webpages as markdown using r.jina.ai
  • πŸ“ Configurable download directory
  • πŸ“ Automatically generates date-stamped filenames
  • πŸ” List downloaded markdown files
  • πŸ’Ύ Persistent configuration

Prerequisites

  • Node.js (version 16 or higher)
  • npm (Node Package Manager)

Installation

Installing via Smithery

To install Markdown Downloader for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @dazeb/markdown-downloader --client claude

Installing manually

  1. Clone the repository:
    git clone https://github.com/your-username/markdown-downloader.git
    cd markdown-downloader
    
  2. Install dependencies:
    npm install
    
  3. Build the project:
    npm run build
    

Manually Add Server to Cline/Roo-Cline MCP Settings file

{
  "mcpServers": {
    "markdown-downloader": {
      "command": "node",
      "args": [
        "/home/user/Documents/Cline/MCP/markdown-downloader/build/index.js"
      ],
      "disabled": false,
      "alwaysAllow": [
        "download_markdown",
        "set_download_directory"
      ]
    }
  }
}

Tools and Usage

1. Set Download Directory

Change the download directory:

use set_download_directory /path/to/your/local/download/folder
  • Validates directory exists and is writable
  • Persists the configuration for future use

2. Download Markdown

Download a webpage as a markdown file:

use tool download_markdown https://example.com/blog-post
  • The URL will be prepended with r.jina.ai
  • Filename format: {sanitized-url}-{date}.md
  • Saved in the configured download directory

3. List Downloaded Files

List all downloaded markdown files:

use list_downloaded_files

4. Get Download Directory

Retrieve the current download directory:

use get_download_directory

Configuration

  • Configuration is stored in ~/.config/markdown-downloader/config.json
  • Default download directory: ~/.markdown-downloads

Troubleshooting

  • Ensure you have an active internet connection
  • Check that the URL is valid and accessible
  • Verify write permissions for the download directory

Security

  • The tool uses r.jina.ai to fetch markdown content
  • Local files are saved with sanitized filenames
  • Configurable download directory allows flexibility

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License.

Disclaimer

This tool is provided as-is. Always review downloaded content for accuracy and appropriateness.

Support

For issues or feature requests, please open an issue on the GitHub repository.