Skip to main content
Glama
SavageCore

qbittorrent-mcp

by SavageCore

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
QBITTORRENT_URLYesThe URL of the qBittorrent WebUI (e.g., http://localhost:8080). Required.
QBITTORRENT_API_KEYNoAPI key for qBittorrent >= v5.2.0. One authentication method is required: either this or username/password.
QBITTORRENT_PASSWORDNoPassword for the qBittorrent WebUI login. Use with QBITTORRENT_USERNAME as the alternative authentication method.
QBITTORRENT_USERNAMENoUsername for the qBittorrent WebUI login. Use with QBITTORRENT_PASSWORD as the alternative authentication method.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
qbittorrent_logoutA

Invalidate the current WebUI session. With API-key auth this endpoint is not reachable (API keys cannot interact with /auth/*) and the API will return an error which is surfaced as-is.

qbittorrent_app_versionA

The qBittorrent application version, e.g. v5.0.4.

qbittorrent_app_webapi_versionA

The WebAPI version implemented by this qBittorrent, e.g. 2.14.1.

qbittorrent_app_build_infoA

Build info: Qt, libtorrent, Boost and OpenSSL versions plus app bitness.

qbittorrent_app_shutdownA

Shut down the qBittorrent application. This stops the whole daemon/WebUI -- use sparingly, it cannot be undone from here.

qbittorrent_app_get_preferencesA

All application preferences as a key/value object (locale, limits, paths, WebUI settings, etc). See README for the full field list.

qbittorrent_app_set_preferencesA

Update application preferences. Pass only the keys you want to change, e.g. {"max_active_downloads": 5, "save_path": "/downloads"}. String values must be quoted; integers and booleans must not.

qbittorrent_app_default_save_pathA

The default save path for new torrents, e.g. C:/Users/me/Downloads.

qbittorrent_app_get_cookiesA

The cookies qBittorrent sends when downloading .torrent files. Each entry has name/domain/path/value/expirationDate.

qbittorrent_app_set_cookiesA

Replace the cookies used when downloading .torrent files. cookies is a JSON array of {name, domain, path, value, expirationDate} objects.

qbittorrent_log_mainA

The application log as a JSON array of {id, message, timestamp, type}. Filter message classes with normal/info/warning/critical (default true for all). Pass last_known_id to fetch only messages newer than a given id.

qbittorrent_log_peersA

Peer-block log entries as a JSON array of {id, ip, timestamp, blocked, reason}. Pass last_known_id to fetch only entries newer than a given id.

qbittorrent_sync_maindataA

Differential state snapshot for UI sync. Pass the rid from the previous reply to get only changes; full_update=true means you received everything. Includes torrents, categories, tags and server_state.

qbittorrent_sync_torrent_peersA

Differential peers data for one torrent. Pass the rid from the previous reply to get only changes.

qbittorrent_transfer_infoA

Global transfer info: download/upload rates and totals, rate limits, DHT nodes and connection status.

qbittorrent_transfer_speed_limits_modeA

1 if alternative speed limits are enabled, 0 otherwise.

qbittorrent_transfer_toggle_speed_limitsA

Toggle the alternative speed limits on/off.

qbittorrent_transfer_download_limitA

Global download speed limit in bytes/s (0 if no limit is applied).

qbittorrent_transfer_set_download_limitA

Set the global download speed limit in bytes/s (0 removes the limit).

qbittorrent_transfer_upload_limitA

Global upload speed limit in bytes/s (0 if no limit is applied).

qbittorrent_transfer_set_upload_limitA

Set the global upload speed limit in bytes/s (0 removes the limit).

qbittorrent_transfer_ban_peersA

Ban peers. peers is one or more host:port values separated by a pipe, e.g. "1.2.3.4:6881|5.6.7.8:6882".

qbittorrent_torrents_listA

List torrents matching the given filters. filter is one of all, downloading, seeding, completed, stopped, active, inactive, running, stalled, stalled_uploading, stalled_downloading, errored. category/tag filter by them (empty string = "without category/tag"). sort by any response field; reverse for descending order. limit/offset for paging; hashes (pipe-separated or "all") to select specific torrents.

qbittorrent_torrent_propertiesA

Generic properties of one torrent: save_path, creation/completion dates, total uploaded/downloaded, seeding_time, share_ratio, speeds, peer counts, isPrivate, etc. 404 if the hash is not found.

qbittorrent_torrent_trackersA

Trackers of one torrent: url, status (0 disabled, 1 not contacted yet, 2 working, 3 updating, 4 not working), tier, peer/seed/leech counts, msg.

qbittorrent_torrent_web_seedsB

Web seeds of one torrent (array of {url}).

qbittorrent_torrent_contentsA

Files of one torrent: index, name, size, progress, priority (0 skip, 1 normal, 6 high, 7 maximal), is_seed, piece_range, availability. Pass indexes (pipe-separated) to fetch only those files.

qbittorrent_torrent_piece_statesA

Piece states of one torrent as ints: 0 not downloaded, 1 downloading, 2 downloaded.

qbittorrent_torrent_piece_hashesB

SHA1 hashes of all pieces of one torrent, in order.

qbittorrent_torrents_pauseA

Pause (stop) torrents. hashes is pipe-separated or "all".

qbittorrent_torrents_resumeA

Resume (start) torrents. hashes is pipe-separated or "all".

qbittorrent_torrents_deleteA

Delete torrents. hashes is pipe-separated or "all". With delete_files=true the downloaded data is deleted from disk too -- this is irreversible.

qbittorrent_torrents_recheckA

Force recheck of torrents. hashes is pipe-separated or "all".

qbittorrent_torrents_reannounceA

Reannounce torrents to their trackers. hashes is pipe-separated or "all".

qbittorrent_torrents_addA

Add torrents. urls is one or more http(s)/magnet/bc:// links separated by newlines. Alternatively (or additionally) pass one raw .torrent file base64-encoded in torrent_b64. Optional: save_path, category, tags (comma-separated), skip_checking, paused, root_folder, rename, up_limit / dl_limit (bytes/s), ratio_limit, seeding_time_limit (minutes), auto_tmm, sequential_download, first_last_piece_prio.

qbittorrent_torrents_add_trackersA

Add trackers to a torrent. urls is one or more tracker URLs separated by newlines.

qbittorrent_torrents_edit_trackerA

Replace a tracker URL on a torrent with new_url.

qbittorrent_torrents_remove_trackersA

Remove trackers from a torrent. urls is one or more URLs separated by a pipe.

qbittorrent_torrents_add_peersA

Add peers to torrents. hashes is pipe-separated or "all"; peers is one or more host:port values separated by a pipe.

qbittorrent_torrents_increase_priorityA

Increase queue priority of torrents. hashes is pipe-separated or "all".

qbittorrent_torrents_decrease_priorityA

Decrease queue priority of torrents. hashes is pipe-separated or "all".

qbittorrent_torrents_top_priorityA

Move torrents to the top of the queue. hashes is pipe-separated or "all".

qbittorrent_torrents_bottom_priorityA

Move torrents to the bottom of the queue. hashes is pipe-separated or "all".

qbittorrent_torrents_file_priorityA

Set file priority for a torrent. id is one or more file ids (from qbittorrent_torrent_contents) separated by a pipe; priority is 0 (skip), 1 (normal), 6 (high) or 7 (maximal).

qbittorrent_torrents_download_limitA

Per-torrent download speed limits (bytes/s), keyed by hash. hashes is pipe-separated or "all".

qbittorrent_torrents_set_download_limitA

Set download speed limit (bytes/s) for torrents. hashes is pipe-separated or "all"; limit 0 means no limit.

qbittorrent_torrents_set_share_limitsA

Set share limits for torrents (hashes pipe-separated or "all"). ratio_limit (share ratio), seeding_time_limit and inactive_seeding_time_limit (minutes). -2 = use global limit, -1 = no limit.

qbittorrent_torrents_upload_limitA

Per-torrent upload speed limits (bytes/s), keyed by hash. hashes is pipe-separated or "all".

qbittorrent_torrents_set_upload_limitA

Set upload speed limit (bytes/s) for torrents. hashes is pipe-separated or "all"; limit 0 means no limit.

qbittorrent_torrents_set_locationA

Move torrents to a new download location on disk. hashes is pipe-separated or "all"; location is the destination directory.

qbittorrent_torrents_set_nameA

Rename a torrent (display name only, does not touch files on disk).

qbittorrent_torrents_set_categoryA

Set the category of torrents. hashes is pipe-separated or "all"; pass an empty category to remove the current category.

qbittorrent_torrents_categoriesA

All categories as {name: {name, savePath}}.

qbittorrent_torrents_create_categoryB

Create a category with an optional save_path.

qbittorrent_torrents_edit_categoryB

Change the save_path of an existing category.

qbittorrent_torrents_remove_categoriesA

Remove categories. categories is one or more names separated by newlines. Torrents in a removed category become uncategorized.

qbittorrent_torrents_add_tagsA

Add tags (comma-separated) to torrents (hashes pipe-separated or "all").

qbittorrent_torrents_remove_tagsA

Remove tags (comma-separated) from torrents (hashes pipe-separated or "all"). An empty tags value removes all tags from the torrents.

qbittorrent_torrents_tagsA

All tags as a JSON array of strings.

qbittorrent_torrents_create_tagsB

Create tags. tags is one or more names separated by commas.

qbittorrent_torrents_delete_tagsA

Delete tags. tags is one or more names separated by commas. Torrents keep their data but lose the deleted tags.

qbittorrent_torrents_set_auto_managementA

Enable/disable Automatic Torrent Management for torrents (hashes pipe-separated or "all").

qbittorrent_torrents_toggle_sequential_downloadA

Toggle sequential download mode for torrents (hashes pipe-separated or "all").

qbittorrent_torrents_toggle_first_last_piece_priorityA

Toggle first/last piece priority for torrents (hashes pipe-separated or "all").

qbittorrent_torrents_set_force_startA

Force-start or un-force-start torrents (hashes pipe-separated or "all").

qbittorrent_torrents_set_super_seedingA

Enable/disable super seeding for torrents (hashes pipe-separated or "all").

qbittorrent_torrents_rename_fileA

Rename a file inside a torrent (relative paths from the torrent root).

qbittorrent_torrents_rename_folderA

Rename a folder inside a torrent (relative paths from the torrent root).

qbittorrent_rss_add_folderA

Create an RSS folder, e.g. "The Pirate Bay\Top100".

qbittorrent_rss_add_feedA

Add an RSS feed by URL, optionally into a folder path.

qbittorrent_rss_remove_itemA

Remove an RSS folder or feed, e.g. "The Pirate Bay\Top100".

qbittorrent_rss_move_itemA

Move or rename an RSS folder/feed from item_path to dest_path.

qbittorrent_rss_itemsA

All RSS items as a nested object of folder -> feed -> URL. Set with_data to also include current feed articles.

qbittorrent_rss_mark_as_readA

Mark an RSS feed as read; pass article_id to mark only one article.

qbittorrent_rss_refresh_itemA

Force-refresh an RSS folder or feed.

qbittorrent_rss_set_ruleA

Create or replace an auto-downloading RSS rule. rule_def keys: enabled, mustContain, mustNotContain, useRegex, episodeFilter, smartFilter, previouslyMatchedEpisodes, affectedFeeds, ignoreDays, lastMatch, addPaused, assignedCategory, savePath. e.g. {"enabled": true, "mustContain": "Ubuntu", "affectedFeeds": ["https://example.com/rss"]}

qbittorrent_rss_rename_ruleB

Rename an auto-downloading rule.

qbittorrent_rss_remove_ruleB

Remove an auto-downloading rule.

qbittorrent_rss_rulesB

All auto-downloading rules as {name: rule definition}.

qbittorrent_rss_matching_articlesA

All feed articles matching a rule, as {feed name: [article titles]}.

qbittorrent_search_startA

Start a search job across the configured plugins and return its id. plugins is plugin names separated by |, or "all"/"enabled". category limits the search (depends on the plugin), or "all".

qbittorrent_search_stopA

Stop a running search job by id.

qbittorrent_search_statusA

Status of one search job (id) or all jobs: {id, status: Running|Stopped, total}.

qbittorrent_search_resultsB

Results of a search job: {results: [{descrLink, fileName, fileSize, fileUrl, nbLeechers, nbSeeders, siteUrl}], status, total}. limit caps the count (0/negative = no limit); negative offset counts back from the end.

qbittorrent_search_deleteA

Delete a search job and free its results.

qbittorrent_search_pluginsB

Installed search plugins: enabled, fullName, name, supportedCategories, url, version.

qbittorrent_search_install_pluginA

Install search plugins. sources is one or more URLs or file paths separated by a pipe.

qbittorrent_search_uninstall_pluginA

Uninstall search plugins. names is one or more names separated by a pipe.

qbittorrent_search_enable_pluginA

Enable or disable search plugins. names is one or more names separated by a pipe.

qbittorrent_search_update_pluginsA

Update all installed search plugins to their latest versions.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SavageCore/qbittorrent-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server