Skip to main content
Glama
iavjkae
by iavjkae

aria2-mcp

A Model Context Protocol (MCP) server for the aria2 download manager. It exposes aria2's JSON-RPC API as a small, focused set of MCP tools so an agent can queue, inspect, pause, resume and remove downloads.

CI License: MIT Node

Features

  • Speaks the MCP stdio transport, so it works with any MCP-compatible client.

  • Talks to aria2 over its JSON-RPC interface, including --rpc-secret authentication.

  • Strict input validation and structured error reporting.

  • No runtime dependencies beyond the official MCP SDK.

  • Fully typed, linted, formatted and unit tested.

Related MCP server: fieldcure-mcp-essentials

Requirements

  • Node.js 20 or newer.

  • A reachable aria2 RPC endpoint. Start aria2 with RPC enabled:

aria2c --enable-rpc --rpc-listen-port=6800 --rpc-secret=your_secret

Installation

Use it straight from GitHub without cloning:

npx -y github:iavjkae/aria2-mcp

Or install it globally:

npm install -g github:iavjkae/aria2-mcp
aria2-mcp

Configuration

Configuration is read from the environment. The server never ships with a default endpoint and never writes credentials to disk.

Variable

Required

Default

Description

ARIA2_RPC_URL

yes

—

Full JSON-RPC endpoint, e.g. http://127.0.0.1:6800/jsonrpc

ARIA2_RPC_SECRET

no

—

Value passed to --rpc-secret; secret and token:secret are both accepted

ARIA2_TIMEOUT_MS

no

30000

Per-request timeout in milliseconds

ARIA2_RPC_URL must use http or https and must not embed credentials; a value like http://user:pass@127.0.0.1/jsonrpc is rejected on purpose.

MCP client configuration

{
  "mcpServers": {
    "aria2": {
      "command": "npx",
      "args": ["-y", "github:iavjkae/aria2-mcp"],
      "env": {
        "ARIA2_RPC_URL": "http://127.0.0.1:6800/jsonrpc",
        "ARIA2_RPC_SECRET": "your_secret"
      }
    }
  }
}

Tools

Tool

Description

aria2_add_uri

Queue one or more URIs and return the new GID

aria2_list

List active, waiting or stopped downloads

aria2_status

Return the full status record for a GID

aria2_pause

Pause a download

aria2_unpause

Resume a paused download

aria2_remove

Remove a download and purge its result

aria2_global_stat

Aggregate speeds and queue counters

aria2_get_version

aria2 version and compiled features

Detailed schemas live in docs/tools.md.

Security

  • Credentials come from the environment only; nothing is committed or logged.

  • The RPC secret is sent as the standard token:<secret> parameter and is never echoed back in tool output or error messages.

  • URLs containing embedded credentials are rejected at startup.

  • test/no-secrets.test.ts fails the build if an endpoint or secret is ever committed.

Development

npm install
npm run lint        # ESLint (type-aware)
npm run format      # Prettier
npm run typecheck   # tsc --noEmit
npm run test        # Vitest
npm run test:coverage
npm run build       # emits dist/

An opt-in integration test runs against a real instance:

ARIA2_RPC_URL=http://127.0.0.1:6800/jsonrpc npm test

License

MIT

Available Tools

8 tools
aria2_add_uriAdd URI downloadA

Queue one or more download URIs (HTTP, HTTPS, FTP, SFTP or magnet links) and return the new GID.

NameRequiredDescriptionDefault
dirNoAbsolute target directory
outNoOutput file name
urisYesDownload URIs to queue
headerNoExtra HTTP headers, for example "Cookie: session=abc"

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses that multiple URIs are accepted and that a GID is returned, but omits key behavior for a queueing tool: whether the download starts immediately or is merely registered, whether duplicate URIs/exit-on-error apply, and what happens to existing jobs.

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?

A single front-loaded sentence that names the action, its inputs, and its result with zero filler. Nothing needs trimming and nothing is buried.

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?

The mention of the returned GID compensates for the absence of an output schema, but with no annotations and no output schema the description should say more about async/blocking behavior and defaults for dir/out before an agent can call it confidently.

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 the schema already documents dir, out, header and uris. The description only adds the cardinality note (one or more) and the protocol list, which is baseline-level value over structured fields.

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?

States a specific verb (queue) plus resource (download URIs) and enumerates the supported protocols (HTTP, HTTPS, FTP, SFTP, magnet). It also names the primary side effect/return (new GID), so it is immediately distinguishable from sibling tools like aria2_list or aria2_remove.

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?

There is no when-to-use guidance, no mention of prerequisites, and no reference to alternatives (e.g., adding via torrent file or metalink). The agent must infer that this is the entry point for starting a download; nothing routes it explicitly.

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

aria2_get_versionaria2 versionA

Return the aria2 version and the features it was built with.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden, and it does disclose what the call returns (version string and compiled-in features). It does not explicitly state that it is a side-effect-free read, though that is unambiguous for a version query. Good but not exhaustive.

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?

A single front-loaded sentence with no filler whatsoever; every word adds information.

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?

There is no output schema and no annotations, so the description must stand alone, and it sufficiently names both returned items (version and build features). The exact return shape/format is not spelled out, which is a minor gap for such a simple tool.

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?

The tool takes zero parameters, so per the rubric the baseline is 4. There is no parameter surface for the description to illuminate or for the schema to omit.

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?

States a specific verb (Return) plus the exact resource (aria2 version and build features). This is clearly distinct from the sibling tools, all of which manage downloads or query status rather than report build/version metadata.

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 alternative guidance, but for a zero-argument version-reporting tool the appropriate usage context is self-evident. Implied usage is the most that can reasonably be expected here.

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

aria2_global_statGlobal statisticsB

Return aggregate download and upload speeds plus queue counters.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden, and it does disclose the kind of data returned (speeds and queue counters) plus implicitly that this is a non-mutating read. It says nothing about rate limiting, freshness/refresh semantics, error behavior, or permission requirements, which would be expected given the absence of annotations.

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?

A single front-loaded sentence with no filler or redundancy. Every clause (speeds, queue counters) conveys distinct information about the payload.

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?

With no output schema, the description is the only source of return-value information, and it only names broad categories rather than the actual counters or fields returned. For a simple zero-argument read tool this is workable but not complete enough to tell the agent exactly what it will receive.

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?

The tool takes zero parameters, so there is nothing for the description to clarify beyond confirming that it needs no input; the baseline for a parameterless tool is 4. The schema is an empty object, which is consistent with the description.

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?

States a specific verb (Return) and resource (aggregate download/upload speeds plus queue counters), which is concrete and immediately actionable. It does not, however, differentiate itself from the sibling aria2_status or aria2_list, leaving some ambiguity about which statistics source to pick.

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?

There is no when-to-use guidance, no prerequisite context, and no mention of alternatives such as aria2_status or aria2_list despite several overlapping-looking siblings. The agent must infer that this is the global/session-wide stats call from the name alone.

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

aria2_listList downloadsA

List downloads by state. all returns active, waiting and stopped lists in one response.

NameRequiredDescriptionDefault
stateNoWhich download queue to inspectactive

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses that `all` merges active, waiting, and stopped lists into one response, but says nothing about return format beyond that, side effects, or operational constraints.

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 short sentences with the core action front-loaded and the `all` nuance immediately after. No filler.

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 single-parameter read/list tool with full schema coverage and no annotations, the description covers the action and the key enum behavior. It could mention what a list entry contains, but no output schema exists and the complexity is low.

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 schema already defines the `state` enum and default. The description adds meaning only for the `all` value (merging three queues), which is marginal added value over the schema's 'Which download queue to inspect'.

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 states a specific verb and resource ('List downloads') scoped by state, which is immediately actionable. It does not explicitly distinguish itself from siblings like aria2_status or aria2_global_stat, so it falls short of a 5.

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?

Usage is implied by 'List downloads by state' and the default state is inferable from the schema, but there is no explicit guidance on when to use this versus aria2_status or aria2_global_stat, and no exclusions or prerequisites.

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

aria2_pausePause downloadB

Pause an active or waiting download.

NameRequiredDescriptionDefault
gidYesDownload GID returned by aria2_add_uri or aria2_list

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It discloses the state precondition but not the reversibility of the operation, whether the partial file is preserved, whether a paused download can be resumed via aria2_unpause, or what is returned on success/failure.

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?

A single front-loaded sentence with zero waste that states the action and its scope immediately.

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?

For a one-parameter state-mutation tool with no output schema and no annotations, the description is minimally viable. It says what it does to which downloads but omits the recovery path and any mention of the resume counterpart.

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% and the gid parameter is documented in the schema with a pointer to aria2_add_uri/aria2_list. The description adds no parameter-level detail beyond the schema, so the baseline 3 applies.

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?

States a specific verb (pause) and resource (download), plus the applicable scope states ('active or waiting'). An agent can distinguish it from aria2_unpause and aria2_remove, though the description never names those siblings explicitly.

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?

'Active or waiting' implies the precondition for use, which is useful context. However, it gives no explicit routing versus aria2_unpause (resume), aria2_remove (cancel), or guidance on what to do if the download already is paused.

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

aria2_removeRemove downloadB

Remove a download and purge its result entry. Set force to interrupt checksum verification.

NameRequiredDescriptionDefault
gidYesDownload GID returned by aria2_add_uri or aria2_list
forceNoUse aria2.forceRemove instead of aria2.remove

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses a real behavioral consequence beyond the name: the result entry is purged, and force interrupts checksum verification. However, it does not state whether the download must be inactive, whether downloaded files on disk are deleted, or what error occurs on an active GID.

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 short sentences, front-loaded with the primary action and its side effect, with the parameter tip appended last. No filler or redundant restatement of the title.

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?

No output schema and no annotations, so the description must cover behavior; it covers the primary effect and the force semantics but omits the on-disk file outcome and any removal preconditions. Adequate for a two-parameter mutation tool, but there are clear gaps for a destructive operation.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine semantic meaning over the schema for force: the schema only says 'use aria2.forceRemove instead of aria2.remove', while the description explains the practical effect (interrupting checksum verification). gid is left entirely to the schema, but the schema documents it adequately.

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?

States a specific verb and resource ('Remove a download') plus an additional effect ('purge its result entry'), which distinguishes it from read-oriented siblings like aria2_status or aria2_list. It stops short of naming pause/unpause as the non-destructive alternatives, so no explicit sibling routing.

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?

There is no guidance on when to remove versus pause or unpause a download, nor any precondition (e.g., whether the download must be stopped first). The only usage hint — 'Set force to interrupt checksum verification' — is parameter-level, not tool-selection guidance.

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

aria2_statusDownload statusA

Return the full status record of a single download.

NameRequiredDescriptionDefault
gidYesDownload GID returned by aria2_add_uri or aria2_list

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and 'Return' plus 'full status record' does convey a non-mutating, complete-payload read. However, it says nothing about behavior on an invalid or expired GID, nor about any side effects or constraints, so coverage is only minimal.

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?

A single front-loaded sentence with no filler; the key action and scope come first and every word earns its place.

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?

For a one-parameter read tool with no output schema, the description does not indicate what the status record contains or how errors surface. It is adequate to call the tool correctly but leaves an agent guessing about the returned fields.

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%, and the gid parameter is already well documented as coming from aria2_add_uri or aria2_list. The description adds no further meaning about the parameter, so the baseline 3 applies.

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?

States a specific verb (Return) and resource (the full status record of a single download), which implicitly distinguishes it from aria2_list and aria2_global_stat by scoping to one download. It stops short of naming a sibling explicitly, so it is clear but not maximally differentiated.

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?

Usage is only implied: an agent can infer this is the tool for checking one download's state, contrasting with the list/global siblings. There is no explicit when-to-use statement, no prerequisites, and no named alternative.

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

aria2_unpauseResume downloadC

Resume a paused download.

NameRequiredDescriptionDefault
gidYesDownload GID returned by aria2_add_uri or aria2_list

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden but discloses almost nothing beyond the basic action. It does not say what happens if the GID is not paused, whether the operation is idempotent, what errors surface, or what the response contains.

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?

A single short sentence with zero filler, front-loading the action and object. It earns its place but is so terse that brevity shades into under-specification.

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?

For a one-parameter tool with a fully documented schema and no output schema, the description is minimally adequate. It is thin on what actually happens during resume and any failure modes, but nothing structurally required to call it is missing.

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% for the single gid parameter, which the schema already documents as the GID returned by aria2_add_uri or aria2_list. The description adds no further parameter meaning, so the baseline of 3 applies.

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?

States a specific verb and resource (resume a download), which is unambiguous on its own. It does not explicitly name its counterpart aria2_pause among siblings, though the phrase 'paused download' implies the pairing.

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 when-to-use or when-not-to-use guidance, and no explicit reference to alternatives such as aria2_pause or aria2_list. Usage is only implied by the word 'paused'.

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. 8 tool updatesv0.1.0
    • First observedaria2_add_uri
    • First observedaria2_get_version
    • First observedaria2_global_stat
    • First observedaria2_list
    • First observedaria2_pause
    • First observedaria2_remove
    • First observedaria2_status
    • First observedaria2_unpause

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct aria2 operation: add, remove, pause, unpause, list, status, global_stat, and get_version. Collection vs. single-download vs. aggregate reporting tools are clearly separated by their descriptions.

Naming Consistency4/5

All tools share the aria2_ prefix and snake_case formatting, which is highly consistent. However, the verb/noun pattern is mixed: some are verbs (remove, pause, unpause, list), some are noun-only (status, global_stat), and some are verb_noun (add_uri, get_version).

Tool Count5/5

Eight tools is well-scoped for an aria2 download management server. Each tool covers a core, non-redundant operation without excessive surface area.

Completeness4/5

The surface covers the core download lifecycle: add, pause, resume, remove, and query status/list/aggregate stats. Minor gaps exist for update/configuration operations (e.g., changing download or global options, session management) that agents could work around or that may be out of scope.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    A download tool for AI agents that wraps aria2 with safety rules and MCP server support, enabling reliable downloads without false positives.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides 20 essential tools including HTTP requests, web search, file I/O, shell commands, and persistent memory for any MCP client, with zero configuration required.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server exposing qBittorrent's WebUI API v2 as tools, enabling LLMs to manage torrents, categories, tags, RSS feeds, search plugins, and application settings.
    90
    3
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents and CLI tools to dispatch downloads through Chrome's native download engine over the MCP protocol, automatically inheriting browser cookies, login sessions, and proxy settings. Supports submitting, monitoring, pausing, resuming, and cancelling download tasks locally without manual server setup.
    8
    MIT