FluxDown
This server is FluxDown's MCP endpoint, letting an AI agent manage a download manager's tasks and inspect its queues.
Create downloads (
download_add) from HTTP/HTTPS, FTP, magnet links or torrents, with optional cookies, referrer, user-agent, per-task proxy, save directory, filename, checksum and segment count, or a named queue.List and inspect tasks —
download_listreturns all tasks with progress/speed/status and can filter by status (pending, downloading, paused, completed, error, preparing);download_getfetches one task by ID.Control individual tasks —
download_pauseanddownload_resumepause/resume a task by ID.Control everything at once —
download_pause_allpauses all active tasks;download_resume_allresumes all paused tasks.Delete tasks —
download_removeremoves a task by ID, optionally deleting the downloaded files from disk.Inspect queues —
queue_listlists all named queues with their configuration (concurrency, rate limits, default directories).
Allows adding, monitoring, and managing BitTorrent and magnet link downloads via the MCP server.
FluxDown
Downloads, Supercharged.
A blazing fast, multi-protocol download manager — the free & open-source IDM alternative.
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) |
|
macOS (Intel / Apple Silicon) |
|
Linux (x64) |
|
Android (arm64-v8a / armeabi-v7a / x86_64) | per-ABI |
NAS / Server (headless, x64 / ARM64) | Docker · Synology DSM 6/7 |
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 -dOpen 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:17800by default; override it withFLUXDOWN_BIND.For unattended setup, supply
FLUXDOWN_TOKENthrough your deployment environment or secret manager, not a committed file. It initializes the key only if one has not already been set.Persist
/datafor the database, logs and access key, and/root/Downloadsfor downloads. The supplied Compose file uses a named data volume anddocker/downloads/on the host.Prefer SSD/cache storage for
/dataif download disks need to sleep.Native deployments must keep
fluxdown-agentandfluxdowndin the same directory. The oldnative/servercrate 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 |
| Tasks, queues, RSS and other management operations |
OpenAPI |
| Machine-readable API schema |
aria2-compatible JSON-RPC |
| Integration with aria2-compatible clients |
MCP |
| AI-agent tools |
Official UI protocol |
| 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/mcpfor the default desktop configuration; use your server address for headless deploymentsAuth: Bearer token (
Authorization: Bearer <token>orX-FluxDown-Token), shared with the management APIEnable: Settings → API Service → toggle MCP endpoint (a token is generated automatically); the headless server enables it by default
Tools (12)
Tool | Description |
| Create a download task (HTTP/HTTPS, FTP, magnet, BitTorrent) |
| List tasks with progress/speed/status, optional status filter |
| Get a single task by ID |
| Pause / resume one task |
| Pause / resume all tasks |
| Remove a task, optionally deleting downloaded files |
| List named queues and their configuration |
| List RSS subscriptions with their configuration and runtime state |
| Subscribe to an RSS feed and start polling it on a schedule |
| 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/protocoldefines transport-independent DTOs, methods and events;native/apiexposes REST, aria2 and MCP throughApiHost, without depending on the engine.Engine independence:
EventSinkandHostSelectionconnect 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 | |
Agent / daemon | UI gateway and headless host / download core | |
Shared protocol / HTTP API | JSON-RPC DTOs / REST, aria2, MCP adapters | |
Download engine | Rust + Tokio, no UI or FFI dependencies | |
Mobile UI / bridge | Kotlin + Jetpack Compose / SwiftUI + UniFFI | |
Web management UI | React + TypeScript + Vite | |
CLI | HTTP client or embedded engine | |
Browser integration | WXT + TypeScript, Native Messaging, userscript | |
Website | Astro + React; |
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 FluxDownDesktop (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-onlyThe 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 -- --serverThe 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 -- pingNative 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 coreContributing & Community
Bug reports / feature requests — GitHub Issues or the in-app feedback dialog
QQ Group — 832143651
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 warningsSee 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 toolsdownload_addB
新建一个下载任务。支持 HTTP/HTTPS/FTP/磁力链接/BitTorrent。返回新任务 ID。
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | 要下载的 URL、磁力链接或 torrent 地址(必填)。 | |
| cookies | No | Cookie 字符串。 | |
| queueId | No | 命名队列 ID(空 = 默认队列)。 | |
| saveDir | No | 保存目录绝对路径(空 = 全局默认目录)。 | |
| checksum | No | 校验和,格式 algo=hexhash(空 = 跳过校验)。 | |
| fileName | No | 保存的文件名(空 = 从 URL/Content-Disposition 推断)。 | |
| proxyUrl | No | 单任务代理 URL(空 = 全局代理)。 | |
| referrer | No | Referer 头。 | |
| segments | No | 分段线程数(0 = 按文件大小自动决定)。 | |
| userAgent | No | User-Agent(空 = 全局 UA)。 |
TDQS
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.
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.
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.
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.
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.
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 查询单个任务的详细信息。
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | 任务 ID(必填)。 |
TDQS
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.
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.
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.
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.
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.
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
列出下载任务,可按状态过滤。返回任务数组(含进度、速度、状态等)。
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | 按状态过滤(省略或 all = 全部)。 |
TDQS
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.
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.
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.
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.
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.
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
暂停指定任务。
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | 任务 ID(必填)。 |
TDQS
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.
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.
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.
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.
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.
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)。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
删除指定任务,可选同时删除已下载的磁盘文件。
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | 任务 ID(必填)。 | |
| deleteFiles | No | 是否同时删除磁盘文件(默认 false)。 |
TDQS
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.
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.
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.
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.
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.
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
恢复指定的已暂停任务。
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | 任务 ID(必填)。 |
TDQS
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.
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.
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.
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.
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.
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
恢复全部已暂停任务。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
列出全部命名队列及其配置(并发数、限速、默认目录等)。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
9 tool updates
- First observed
download_add - First observed
download_get - First observed
download_list - First observed
download_pause - First observed
download_pause_all - First observed
download_remove - First observed
download_resume - First observed
download_resume_all - First observed
queue_list
TDQS
Scored across 9 tools
每个工具都有明确的用途,添加、获取、列表、暂停、恢复、删除和队列管理之间没有功能重叠,区分清晰。
大部分工具采用'download_'前缀+动词的命名模式,如download_add、download_list,但queue_list没有遵循此模式,存在轻微不一致。
9个工具覆盖了下载管理的基本操作,数量适中,既不过多也不过少,适合该服务器的用途。
提供了下载任务的完整CRUD操作及批量控制,但缺少对单个任务的高级设置(如限速、优先级调整),略有不足。
Maintenance
Related MCP Connectors
QuLab MCP remote server (Streamable HTTP) for computational science and lab tools.
MCP server for the FFmpeg Micro video transcoding API — create, monitor, download transcodes.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Official MCP server for MAQAMI, a hotel and flight booking platform with 3M+ hotels. Search live hotel rates and flights, look up places, airports and hotel details, then prebook and book. Remote Streamable HTTP endpoint, no API key required.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables 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-
- AlicenseNot gradedqualityBmaintenanceA 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 npm1MIT
- AlicenseAqualityBmaintenanceMCP 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.172MIT
- FlicenseNot gradedqualityCmaintenanceA 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.-