Skip to main content
Glama
url-download-mcp
by dmitryglhf

MCP URL Downloader

A Model Context Protocol (MCP) server that enables AI assistants to download files from URLs to the local filesystem.

Features

  • Download single or multiple files from URLs with concurrent support

  • File size validation (configurable, default 500MB)

  • Unique filename generation to prevent overwrites

  • Security

Related MCP server: Website Downloader

Installation

# Using uvx (recommended)
uvx mcp-url-downloader

# Using pip
pip install mcp-url-downloader

# From source
git clone https://github.com/dmitryglhf/mcp-url-downloader.git
cd mcp-url-downloader
uv sync

Configuration

Claude Desktop

To integrate server with Claude, add the following to your claude_desktop_config.json file:

{
  "mcpServers": {
    "url-downloader": {
      "command": "uvx",
      "args": ["mcp-url-downloader"]
    }
  }
}

Tools

download_single_file

Download a single file from a URL with optional custom filename.

Parameters:

  • url (string, required): URL of the file to download

    • Must be a valid HTTP/HTTPS URL

    • Maximum length: 2048 characters

  • output_dir (string, optional): Directory to save the file

    • Default: ~/Downloads/mcp-downloads/

    • Must be a valid writable directory path

  • filename (string, optional): Custom filename for the saved file

    • If not provided, extracted from URL

    • Will be sanitized automatically

    • Extension will be preserved or detected

  • timeout (number, optional): Download timeout in seconds

    • Default: 60

    • Range: 1-300

  • max_size_mb (number, optional): Maximum file size in MB

    • Default: 500

    • Range: 1-5000

download_files

Download multiple files from URLs concurrently.

Parameters:

  • urls (array of strings, required): List of URLs to download

    • Each URL must be valid HTTP/HTTPS

    • Maximum: 100 URLs per request

    • Each URL max length: 2048 characters

  • output_dir (string, optional): Directory to save all files

    • Default: ~/Downloads/mcp-downloads/

    • All files will be saved to this directory

  • timeout (number, optional): Download timeout in seconds per file

    • Default: 60

    • Range: 1-300

  • max_size_mb (number, optional): Maximum file size in MB per file

    • Default: 500

    • Range: 1-5000

Rate Limits

  • Maximum 100 URLs per download_files request

  • Maximum concurrent downloads: 10 (configurable up to 50)

  • URL length limited to 2048 characters

  • Timeout range: 1-300 seconds

  • File size range: 1-5000 MB

Development

# Run tests
uv run pytest

Available Tools

2 tools
download_filesB

Download multiple files from URLs and save to local filesystem.

Inputs: urls (required), output_dir, timeout, max_size_mb. Returns: Response model for download operations

download_single_fileC

Download a single file from URL with optional custom filename.

Inputs: url (required), output_dir, filename, timeout, +1 more. Returns: Download result model with file information

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 2 tools

    Disambiguation3/5

    The two tools have overlapping purposes—both download files from URLs—but their descriptions help differentiate them: one handles multiple files, the other a single file with optional custom naming. However, the core functionality is similar, which could lead to confusion about when to use each.

    Naming Consistency5/5

    The tool names follow a consistent verb_noun pattern with snake_case throughout: 'download_files' and 'download_single_file'. Both start with 'download' and clearly describe their scope, making the naming predictable and easy to understand.

    Tool Count3/5

    With only 2 tools, the server feels thin for a URL download domain, as it lacks operations like checking download status, handling errors, or managing downloads. While the tools cover basic downloading, the count is borderline for providing a complete surface.

    Completeness2/5

    The tool set is significantly incomplete for a URL download server. It lacks essential operations such as validating URLs, pausing/resuming downloads, handling authentication, or providing progress updates. This will likely cause agent failures in more complex scenarios.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers