Skip to main content
Glama
zerx-lab

FluxDown

by zerx-lab

FluxDown

Downloads, Supercharged.

A blazing fast, multi-protocol download manager — the free & open-source IDM alternative.

Latest Release Downloads License: AGPL-3.0 Platform Rust GPUI Android MCP Server

Awesome Rust Awesome Windows Awesome Free Apps Android FOSS Open Source Android Portainer Unraid CA Chinese Indie Dev

Website · Download · Changelog · FAQ · Feedback

English | 简体中文


Highlights

  • Dynamic download acceleration — Rust + Tokio engine with adaptive segmentation and slow-segment rescue

  • Multi-protocol — HTTP/HTTPS, FTP, BitTorrent, eD2K, HLS & DASH streaming

  • One engine, multiple clients — native GPUI desktop, Kotlin Android and SwiftUI iOS apps, React Web UI and CLI

  • Browser integration — Chrome / Edge / Firefox extension with a 3-layer interception engine, plus a userscript

  • AI-agent ready — built-in MCP (Model Context Protocol) server: let Claude, Cursor & other AI clients manage your downloads

  • Automation & remote management — RSS subscriptions, scheduled queues, webhooks, plugins and optional FluxCloud device collaboration

  • Local-first — free and open source, no ads, no account required for local downloads; resumable state stored locally by default

Related MCP server: unfetch

Features

Feature

Description

Rust-Powered Engine

Shared Rust + Tokio engine, independent of UI and FFI, used by desktop, mobile, server and standalone CLI hosts

Smart Segmentation

Segments split dynamically at runtime; idle workers take over slow segments

Multi-Protocol

Dedicated engines for HTTP/HTTPS, FTP, BitTorrent (DHT/UPnP/magnet), eD2K (server + Kad DHT source finding, MD4 verification), HLS (AES-decrypt) and DASH

Queues & Speed Control

Named queues, scheduling and token-bucket global rate limiting

Persistence & Resume

SQLite with WAL by default; server deployments can use PostgreSQL; recover downloads from persisted state

Browser Integration

Download interception, streaming media sniffing, Alt+Click bypass, right-click send and connection diagnostics

Desktop & Web UI

GPUI desktop and React Web management, light/dark themes, custom themes, task details and segment visualization; desktop tray keeps the service available after the UI closes

RSS & Automation

Feed filters, unattended downloads, JavaScript plugins, managed FFmpeg/yt-dlp components and task-event webhooks

Remote Devices

Optional FluxCloud account, settings sync and remote task management, plus LAN device pairing and direct connections

APIs & CLI

REST/OpenAPI, aria2-compatible JSON-RPC, MCP with 12 tools, and a CLI for scripts or standalone downloads

Privacy: local downloads do not require a FluxCloud account. Cloud features are optional. Anonymous installation and daily-active statistics are controlled by analytics_enabled and can be disabled; they do not collect download/task information. This is not a zero-telemetry application.

FluxDown vs. IDM

FluxDown

IDM

Price

Free & open source

$24.95 + renewals

Open source

Yes (AGPL-3.0)

No

Platforms

Windows / macOS / Linux / NAS / Android

Windows only

BitTorrent & magnet

Yes

No

eD2K / eMule links

Yes

No

HLS / DASH streaming

Yes

Partial

Dynamic segmentation

Yes

Yes

Browser extension

Chrome / Edge / Firefox

Yes

Ads

None

—

Installation

Grab the latest build from GitHub Releases or fluxdown.zerx.dev:

Platform

Packages

Windows (x64 / ARM64)

setup.exe installer · portable .zip

macOS (Intel / Apple Silicon)

.dmg · portable .tar.gz

Linux (x64)

.AppImage · .deb · Arch .pkg.tar.zst · portable .tar.gz

Android (arm64-v8a / armeabi-v7a / x86_64)

per-ABI .apk · universal .apk

NAS / Server (headless, x64 / ARM64)

Docker · Synology DSM 6/7 .spk · QNAP .qpkg · OpenWrt .ipk · Unraid CA template · CasaOS / ZimaOS app store

Browser Extension

Install the extension so FluxDown takes over browser downloads automatically:

The extension connects to the desktop agent through Native Messaging. A Tampermonkey userscript is also available.

NAS / Server

The current headless service is fluxdown-agent --server + fluxdownd, with an embedded Web UI. The Docker image retains the name ghcr.io/zerx-lab/fluxdown-server.

From a checkout, use the supplied Compose configuration:

docker compose -f docker/docker-compose.yml up -d

Open http://<server>:17800/ and set an access key in the first-run wizard. The key must contain 8–128 visible ASCII characters, including both a letter and a digit. Set it up on a trusted network before exposing the service; use an HTTPS reverse proxy for remote access.

  • Server mode listens on 0.0.0.0:17800 by default; override it with FLUXDOWN_BIND.

  • For unattended setup, supply FLUXDOWN_TOKEN through your deployment environment or secret manager, not a committed file. It initializes the key only if one has not already been set.

  • Persist /data for the database, logs and access key, and /root/Downloads for downloads. The supplied Compose file uses a named data volume and docker/downloads/ on the host.

  • Prefer SSD/cache storage for /data if download disks need to sleep.

  • Native deployments must keep fluxdown-agent and fluxdownd in the same directory. The old native/server crate is frozen and is not the deployment entry point.

CLI & HTTP APIs

The fluxdown CLI connects to the running desktop or server HTTP API by default. On desktop, enable the management API in Settings → API Service first. Supply the access key via FLUXDOWN_TOKEN; use FLUXDOWN_URL or --url to select a remote server.

fluxdown ping
fluxdown add "https://example.com/file.zip"
fluxdown --json list

# Standalone mode: embed the engine instead of connecting to a service
fluxdown add --local "https://example.com/file.zip"

Standalone mode cannot share a data directory with a running engine: stop the service using that directory first.

Interface

Endpoint

Purpose

REST management API

/api/v1/*

Tasks, queues, RSS and other management operations

OpenAPI

/api/v1/openapi.json

Machine-readable API schema

aria2-compatible JSON-RPC

/jsonrpc (HTTP / WebSocket)

Integration with aria2-compatible clients

MCP

/mcp

AI-agent tools

Official UI protocol

/rpc (WebSocket)

GPUI/Web gateway; distinct from the aria2 API

Desktop defaults to 127.0.0.1:17800, with management API and MCP disabled until enabled. Server mode enables both by default and requires an access key. See the OpenAPI specification for the REST contract.

MCP Server (Model Context Protocol)

FluxDown ships a built-in MCP server so AI agents (Claude Desktop, Cursor, Cline, …) can manage downloads via the Model Context Protocol. It implements a stateless Streamable HTTP subset (JSON-RPC 2.0 over POST /mcp) on the same API port — no separate MCP process needed.

  • Endpoint: http://127.0.0.1:17800/mcp for the default desktop configuration; use your server address for headless deployments

  • Auth: Bearer token (Authorization: Bearer <token> or X-FluxDown-Token), shared with the management API

  • Enable: Settings → API Service → toggle MCP endpoint (a token is generated automatically); the headless server enables it by default

Tools (12)

Tool

Description

download_add

Create a download task (HTTP/HTTPS, FTP, magnet, BitTorrent)

download_list

List tasks with progress/speed/status, optional status filter

download_get

Get a single task by ID

download_pause / download_resume

Pause / resume one task

download_pause_all / download_resume_all

Pause / resume all tasks

download_remove

Remove a task, optionally deleting downloaded files

queue_list

List named queues and their configuration

rss_list

List RSS subscriptions with their configuration and runtime state

rss_add

Subscribe to an RSS feed and start polling it on a schedule

rss_remove

Delete an RSS subscription and the items it collected

Client configuration

{
  "mcpServers": {
    "fluxdown": {
      "url": "http://127.0.0.1:17800/mcp",
      "headers": { "Authorization": "Bearer <your-token>" }
    }
  }
}

The MCP layer is implemented in native/api/src/mcp.rs on top of the same ApiHost trait that powers the REST management API and aria2-compatible JSON-RPC.

Architecture

One Rust download engine, multiple hosts and clients. Desktop uses fluxdown-desktop → fluxdown-agent → fluxdownd; headless deployments reuse the agent and daemon with a React Web UI. Native Android and iOS clients connect through UniFFI (native/mobile), using an embedded agent and daemon for local downloads or /rpc for remote hosts.

flowchart TD
    UI["GPUI desktop"] -->|"WebSocket /rpc"| AGENT["fluxdown-agent — UI gateway and desktop shell"]
    WEB["React Web UI"] -->|"WebSocket /rpc"| AGENT
    EXT["Browser Extension (WXT)"] -->|Native Messaging| NMH["fluxdown_nmh"]
    NMH --> AGENT
    CLI["fluxdown CLI"] -->|"HTTP API"| AGENT
    AGENT -->|"Authenticated JSON-RPC"| DAEMON["fluxdownd — download core"]
    DAEMON --> ENGINE["fluxdown_engine"]
    MOBILE["Native Android / iOS"] -->|"UniFFI"| CORE["fluxdown_mobile"]
    CORE -->|"embedded or remote"| AGENT
    LOCAL["fluxdown add --local"] --> ENGINE
    ENGINE --> PROTOCOLS["HTTP/HTTPS, FTP, BitTorrent, eD2K, HLS, DASH"]
    ENGINE --> DB[("SQLite / PostgreSQL")]
  • Daemon owns downloads: engine, download database, queues, RSS, plugins and webhooks.

  • Agent owns integration: UI gateway, FluxCloud account/sync, device collaboration, browser capture and desktop tray/lifecycle.

  • Shared contracts: native/protocol defines transport-independent DTOs, methods and events; native/api exposes REST, aria2 and MCP through ApiHost, without depending on the engine.

  • Engine independence: EventSink and HostSelection connect the engine to hosts. Only one engine may write to a data directory at a time; the diagram shows alternative hosts, not concurrent writers.

Layer

Tech

Path

Desktop UI

Rust + GPUI; app composition and capability crates

crates/, crates/app/

Agent / daemon

UI gateway and headless host / download core

native/agent/, native/daemon/

Shared protocol / HTTP API

JSON-RPC DTOs / REST, aria2, MCP adapters

native/protocol/, native/api/

Download engine

Rust + Tokio, no UI or FFI dependencies

native/engine/

Mobile UI / bridge

Kotlin + Jetpack Compose / SwiftUI + UniFFI

mobile/Android/, mobile/FluxDown/, native/mobile/

Web management UI

React + TypeScript + Vite

web/

CLI

HTTP client or embedded engine

native/cli/

Browser integration

WXT + TypeScript, Native Messaging, userscript

fluxDown/, native/nmh/, userscript/

Website

Astro + React; website/ is the legacy archive

website-v2/

Building from Source

Start with the Rust toolchain and your platform's native build tools (MSVC on Windows, Xcode command-line tools on macOS). Linux desktop builds also need graphics, audio and tray development libraries; the maintained Ubuntu package list is in CI. Bun is needed for the Web UI. Android uses Android Studio's JBR, Android SDK/NDK and cargo-ndk; iOS uses Xcode.

# Clone the development branch (main = active development, stable = stable releases)
git clone -b main https://github.com/zerx-lab/FluxDown.git
cd FluxDown

Desktop (GPUI)

# Build desktop UI, agent, daemon and browser relay, then launch
cargo desktop-dev

# Build only (also stages a signed development .app on macOS)
cargo desktop-dev --build-only

The launcher reuses an existing desktop/service instance rather than forcibly restarting it. Quit the UI and stop its services before testing changes to running code.

Headless server & Web UI

# Build the Web UI BEFORE building the agent
cd web
bun install --frozen-lockfile
bun run build
cd ..

cargo build -p fluxdown_daemon
cargo run -p fluxdown_agent --features web-ui -- --server

The web-ui feature embeds web/dist into the agent binary at compile time. After changing the frontend, rebuild the Web UI and then the agent. FLUXDOWN_WEBROOT optionally serves a directory from disk instead.

For frontend development, run cd web && bun run dev in a second terminal while the server is running: Vite listens on port 5173 and proxies backend requests to port 17800.

CLI

cargo build -p fluxdown_cli
cargo run -p fluxdown_cli -- ping

Native mobile

Android lives in mobile/Android; iOS lives in mobile/FluxDown. Both use the shared Rust core in native/mobile and shared translations in assets/i18n.

# Android: use Android Studio's JBR as JAVA_HOME
(cd mobile/Android && ./gradlew :core:testDebugUnitTest :bridge:testDebugUnitTest :app:assembleDebug)
# iOS: from repository root
mobile/FluxDown/scripts/build-core.sh
(cd mobile/FluxDown && xcodebuild build -project FluxDown.xcodeproj -scheme FluxDown -destination 'generic/platform=iOS Simulator')

Official Android releases use the native project's ANDROID_NATIVE_* signing credentials. They cannot be installed over the old Flutter APK; back up needed data before uninstalling the old app. The retired Flutter SDK, Rinf and hub are no longer build prerequisites. Shared assets, legacy desktop data/theme upgrade compatibility and the website's legacy theme editor remain supported.

cargo test -p fluxdown_engine        # Engine tests
cargo test -p fluxdown_api           # HTTP / aria2 / MCP contracts
cargo test -p fluxdown_agent         # Gateway / server
cargo test -p fluxdown_cli           # CLI
cd web && bun test && cd ..          # Web UI
cargo test -p fluxdown_mobile        # Shared native mobile core

Contributing & Community

Pull requests are welcome! Branch off main and target main — it is the development branch, while stable only tracks stable releases (maintainers advance it from main). Before submitting, please make sure:

cargo fmt --check
cargo clippy --workspace --exclude fluxdown_server --all-targets -- -D warnings

See CONTRIBUTING.md for the full workflow.

License

Distributed under the GNU Affero General Public License v3.0.

If FluxDown saves you time, consider giving it a Star — it helps more people discover the project.

Made by zerx-lab

Available Tools

9 tools
download_addB

新建一个下载任务。支持 HTTP/HTTPS/FTP/磁力链接/BitTorrent。返回新任务 ID。

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes要下载的 URL、磁力链接或 torrent 地址(必填)。
cookiesNoCookie 字符串。
queueIdNo命名队列 ID(空 = 默认队列)。
saveDirNo保存目录绝对路径(空 = 全局默认目录)。
checksumNo校验和,格式 algo=hexhash(空 = 跳过校验)。
fileNameNo保存的文件名(空 = 从 URL/Content-Disposition 推断)。
proxyUrlNo单任务代理 URL(空 = 全局代理)。
referrerNoReferer 头。
segmentsNo分段线程数(0 = 按文件大小自动决定)。
userAgentNoUser-Agent(空 = 全局 UA)。

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must cover behavioral traits. It states the tool returns a new task ID and supports multiple protocols, implying it initiates a download. However, it does not disclose whether the download starts immediately or is queued, what happens with invalid URLs, or any other side effects. The description is adequate but lacks depth given no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that conveys the core purpose and key details upfront. It is not verbose and every part adds value, but it lacks explicit structure like bullet points or sections.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 10 parameters, many optional but specific, and no output schema, the description is too brief. It does not explain the return value format, error handling, default behaviors for optional parameters, or the significance of certain fields like checksum or segments. More context would be needed for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is documented. The description adds minimal extra meaning beyond the schema, such as listing supported protocols. It does not elaborate on parameter interactions or provide examples. Baseline score of 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a new download task, lists supported protocols (HTTP/HTTPS/FTP/Magnet/BitTorrent), and mentions the return of a new task ID. This specifically distinguishes it from sibling tools like download_get or download_pause, which handle existing tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, conditions for use, or when not to use it. With sibling tools for various task operations, some usage context would be beneficial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_getB

按任务 ID 查询单个任务的详细信息。

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYes任务 ID(必填)。

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided. The description does not disclose any behavioral traits such as side effects, authorization needs, or rate limits. It only states the basic operation without additional context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at one sentence, front-loading the key information without any fluff. Every word is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks details on return values or output format. With no output schema, the agent needs more context about what 'detailed information' includes. The description is incomplete for a straightforward retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for taskId. The tool description adds no new semantic meaning beyond referencing the parameter. For high coverage, a score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'query', the resource 'detailed information of a single task', and the method 'by task ID'. It differentiates from sibling tools like download_list and download_add.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for querying a specific task but lacks explicit guidance on when to use vs siblings like download_list or when not to use. Since the tool is simple and singular, it's adequate but not informative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_listA

列出下载任务,可按状态过滤。返回任务数组(含进度、速度、状态等)。

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNo按状态过滤(省略或 all = 全部)。

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description specifies that it returns an array with progress, speed, and status, clarifying the read-only nature. No annotations provided, so description carries burden. Could improve by stating no side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no superfluous text. Front-loaded with verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter and no output schema, the description adequately covers purpose, filtering, and return structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Parameter semantics are fully covered by schema (100% coverage). Description adds minimal value by listing return fields but does not elaborate beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states '列出下载任务' (list download tasks) and mentions filtering by status, distinguishing it from sibling tools like download_add or download_get.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage for listing tasks with optional status filter, but does not explicitly state when to use this tool instead of alternatives like download_get or queue_list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_pauseC

暂停指定任务。

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYes任务 ID(必填)。

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description only states the basic action without disclosing effects like whether pausing is reversible, impact on other tasks, or error states. Minimal behavioral insight for a mutation operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short (one sentence), which is concise but lacks substantive information. It is front-loaded but too terse to fully serve an AI agent's decision-making.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists; description does not mention return values or state changes. For a simple pause operation, it could be acceptable, but it omits details like idempotency or concurrent effects. Incomplete for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Parameter schema coverage is 100% with a simple required taskId string. The description does not add meaning beyond the schema, but for a single straightforward parameter, this is acceptable. No extra guidance on how to obtain the task ID.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (pause) and object (specified task). It distinguishes from sibling tool download_pause_all by focusing on a single task. However, it does not explicitly mention that tasks are download-related, though context from sibling names implies it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No information on when to use this tool versus alternatives like download_pause_all or download_resume. The description lacks any context about prerequisites or appropriate scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_pause_allA

暂停全部活跃任务(pending / downloading / preparing)。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavior. It specifies affected states but omits details like idempotency, impact on already paused tasks, or potential side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with action and scope. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and simple action, description is largely sufficient. However, it could mention that it affects only tasks in the listed states and is reversible via 'download_resume_all'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so description adds no parameter info, which is acceptable. Baseline 4 for zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states action (pause all) and scope (active tasks with states pending/downloading/preparing). Distinguishes from siblings like 'download_pause' (single) and 'download_resume_all'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternatives guidance. While the name and description imply bulk pausing, the description could explicitly state scenarios like 'Use when you want to stop all active downloads at once.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_removeA

删除指定任务,可选同时删除已下载的磁盘文件。

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYes任务 ID(必填)。
deleteFilesNo是否同时删除磁盘文件(默认 false)。

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the core behavior (deletion) and an optional destructive action (file deletion). Without annotations, it adequately conveys the main side effect but does not mention irreversibility, prerequisites, or potential impact on other tasks.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the primary action and nests the optional behavior efficiently. Every word serves purpose without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deletion tool with no output schema, the description covers the essential action and optional file removal. It does not mention return values or prerequisites, but these are not critical for a straightforward operation. Sibling tools provide cluster context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description's paraphrase of taskId and deleteFiles adds minimal new information. The description explains deleteFiles as 'optional delete downloaded disk files', which mirrors the schema description, thus providing no added semantic depth.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb '删除' (delete) and the resource '指定任务' (specified task), effectively distinguishing it from sibling tools which focus on adding, getting, listing, pausing, or resuming tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for task removal and optionally file deletion, providing clear context. However, it lacks explicit guidance on when to choose this tool over alternatives or any exclusions (e.g., cannot remove active tasks).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_resumeC

恢复指定的已暂停任务。

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYes任务 ID(必填)。

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description only states what the tool does without disclosing behavioral traits such as idempotency, error behavior (e.g., if task is not paused), or any side effects. Minimal transparency beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the key action. It is concise but could include more context without becoming verbose. The structure is adequate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (1 parameter, no output schema, no annotations), the description is minimally complete. However, it lacks context about behavior with siblings like 'download_resume_all' and error states, leaving some gaps for a fully informed agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter 'taskId' is described in the schema as '任务 ID(必填)'. The description adds no additional meaning beyond the schema, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (resume) and the resource (specified paused task). It does not explicitly differentiate from the sibling 'download_resume_all', but the singular focus is implied by the name and description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'download_resume_all' or 'download_pause'. The description only implies usage for resuming a paused task without stating conditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_resume_allA

恢复全部已暂停任务。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behavioral traits beyond the action. For a no-annotations tool, the description should indicate potential side effects or confirmation needed, but it is silent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise single sentence with no wasted words. Appropriate for a no-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and zero parameters, the description provides enough context for the basic action. Could be enhanced with notes about idempotency or scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so description does not need to add parameter context. Baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it resumes all paused tasks, distinguishing it from siblings like download_resume (resumes a specific task) and download_pause_all (pauses all).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use versus alternatives, but the name implies batch resuming. Lacks when-not-to-use information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

queue_listA

列出全部命名队列及其配置(并发数、限速、默认目录等)。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must disclose behavioral traits. It only says what the tool does (list queues) but does not mention that it is a read-only operation, any authentication needs, or potential side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no unnecessary words. It is front-loaded with the core action and resource, making it highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description provides basic information about what is returned (list of queues with config fields like concurrency, rate limit, default directory). However, it lacks details on pagination, ordering, or output format, leaving some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters (0 params), so schema coverage is 100% by default. The description adds no parameter information, but according to rules, 0 params baseline is 4, making this score appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all named queues with their configurations, using a specific verb '列出' (list) and resource '全部命名队列及其配置'. It distinguishes from sibling tools, which are all download-related.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. While no competing queue tools exist among siblings, the description lacks any context or conditions for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 9 tool updates
    • First observeddownload_add
    • First observeddownload_get
    • First observeddownload_list
    • First observeddownload_pause
    • First observeddownload_pause_all
    • First observeddownload_remove
    • First observeddownload_resume
    • First observeddownload_resume_all
    • First observedqueue_list

TDQS

A3.6/5.0

Scored across 9 tools

Disambiguation5/5

每个工具都有明确的用途,添加、获取、列表、暂停、恢复、删除和队列管理之间没有功能重叠,区分清晰。

Naming Consistency4/5

大部分工具采用'download_'前缀+动词的命名模式,如download_add、download_list,但queue_list没有遵循此模式,存在轻微不一致。

Tool Count5/5

9个工具覆盖了下载管理的基本操作,数量适中,既不过多也不过少,适合该服务器的用途。

Completeness4/5

提供了下载任务的完整CRUD操作及批量控制,但缺少对单个任务的高级设置(如限速、优先级调整),略有不足。

Maintenance

ActivityActive
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables parsing, downloading, and converting HLS (m3u8) streaming media through FFmpeg integration. Provides a desktop application with MCP server capabilities for handling streaming playlists, extracting segments, and managing video downloads.
    1
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    A download manager for humans and AI with a native MCP server: add_task, list_tasks, wait_for_task with progress notifications from any MCP host. Multi-threaded multi-mirror HTTP, BT/magnet, 1000+ video sites (yt-dlp), RSS, token-secured remote Web UI. ~8MB, open source.
    11,420,724 npm
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server to drive a local JDownloader 2 instance through its entire download lifecycle, including adding links/containers, linkgrabber management, queue control, priority, force-start, progress tracking, and cleanup.
    17
    2
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    A self-hosted MCP gateway that aggregates all your MCP servers behind a single Streamable HTTP endpoint, with automatic registry discovery (19,000+ servers), on-demand Docker provisioning, multi-device support via SSH, OAuth2 PKCE authentication, and a workflow engine for saving and replaying multi-step tool sequences.
    -