Transmission MCP server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TRANSMISSION_URL | No | The URL of the Transmission RPC endpoint. Defaults to http://127.0.0.1:9091/transmission/rpc if not set. | http://127.0.0.1:9091/transmission/rpc |
| TRANSMISSION_PASSWORD | No | Password for Transmission RPC authentication. Only required if rpc-authentication-required is enabled. | |
| TRANSMISSION_USERNAME | No | Username for Transmission RPC authentication. Only required if rpc-authentication-required is enabled. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_torrentsA | List torrents with their state, progress and speeds. Args: ids: Torrent ids or hash strings, or the literal "recently-active" for everything that changed since the last such call. Omit for all torrents. fields: Which fields to return. Omit for every field. Naming a few keeps the response small on a large library. |
| get_torrentA | Get every field for one torrent, including files, peers and trackers. Args: id: A torrent id or hash string. |
| list_torrent_fieldsA | List every field list_torrents can ask for. |
| add_torrentA | Add a torrent from a magnet link, a URL, a local file or raw metainfo. Args: filename: A magnet link or the URL of a .torrent file. torrent_file: Path to a .torrent file on this machine, read and encoded for you. metainfo: Base64 .torrent contents, if you already have them. download_dir: Where to put the data. Defaults to the session setting. paused: Add without starting. labels: Labels to attach. peer_limit: Maximum peers for this torrent. bandwidth_priority: -1 low, 0 normal, 1 high. files_wanted: Indices of files to download. Omit for all. files_unwanted: Indices of files to skip. priority_high: Indices of files to fetch first. priority_low: Indices of files to fetch last. priority_normal: Indices of files at normal priority. cookies: Cookies to send when fetching a .torrent URL. sequential_download: Download pieces in order rather than rarest first. |
| remove_torrentA | Remove torrents, optionally deleting their downloaded files. Args: ids: Torrent ids or hash strings. Required -- this tool never defaults to every torrent. delete_local_data: True also erases the downloaded files from disk. This cannot be undone. |
| start_torrentsA | Start torrents, respecting the download queue. Args: ids: Torrent ids or hash strings. Omit to start every torrent. |
| start_torrents_nowA | Start torrents immediately, jumping the download queue. Args: ids: Torrent ids or hash strings. Omit for every torrent. |
| stop_torrentsA | Stop torrents. Args: ids: Torrent ids or hash strings. Omit to stop every torrent. |
| verify_torrentsA | Re-check torrent data against its hashes. Verification restarts the torrent's progress from zero while it runs. Args: ids: Torrent ids or hash strings. Omit for every torrent. |
| reannounce_torrentsB | Ask the trackers for more peers now. Args: ids: Torrent ids or hash strings. Omit for every torrent. |
| set_torrentA | Change any per-torrent setting. Every mutator the RPC accepts is here. Args: ids: Torrent ids or hash strings. bandwidth_priority: -1 low, 0 normal, 1 high. download_limit: Download cap in kB/s. download_limited: Whether download_limit applies. files_wanted: Indices of files to download. files_unwanted: Indices of files to skip. group: Bandwidth group name. honors_session_limits: Whether session speed limits apply. labels: Replace the torrent's labels. location: New data directory. This only records the path; use move_torrent_data to move the files. peer_limit: Maximum peers. priority_high: File indices to fetch first. priority_low: File indices to fetch last. priority_normal: File indices at normal priority. queue_position: Position in the queue, counting from 0. seed_idle_limit: Minutes of no activity before seeding stops. seed_idle_mode: 0 global setting, 1 seed_idle_limit, 2 unlimited. seed_ratio_limit: Stop seeding at this ratio. seed_ratio_mode: 0 global setting, 1 seed_ratio_limit, 2 unlimited. sequential_download: Download pieces in order. tracker_add: Tracker announce URLs to add. Deprecated by Transmission in favour of tracker_list. tracker_list: The whole tracker list as text: URLs separated by newlines, tiers separated by a blank line. tracker_remove: Tracker ids to remove. Deprecated in favour of tracker_list. tracker_replace: Pairs of tracker id and new URL. Deprecated in favour of tracker_list. upload_limit: Upload cap in kB/s. upload_limited: Whether upload_limit applies. |
| move_torrent_dataA | Move a torrent's data to another directory, or tell it where the data is. Args: ids: Torrent ids or hash strings. location: The target directory. move: True moves the existing files there. False only updates the recorded path, for data you already moved yourself. |
| rename_torrent_pathA | Rename a file or directory inside one torrent. Args: id: A single torrent id or hash string. Renaming is one torrent at a time. path: The current path, relative to the torrent's own root. name: The new name for that one path segment. |
| queue_move_topB | Move torrents to the front of the queue. Args: ids: Torrent ids or hash strings. |
| queue_move_upB | Move torrents one place up the queue. Args: ids: Torrent ids or hash strings. |
| queue_move_downB | Move torrents one place down the queue. Args: ids: Torrent ids or hash strings. |
| queue_move_bottomA | Move torrents to the back of the queue. Args: ids: Torrent ids or hash strings. |
| get_sessionA | Get every session setting and the daemon's version. |
| get_session_statsA | Get transfer totals, active torrent counts and current speeds. |
| set_sessionA | Change session settings. Args: settings: Setting names exactly as get_session reports them, mapped to new values. For example {"speed-limit-down": 5000, "speed-limit-down-enabled": true} or {"download-dir": "/mnt/media"}. Read get_session first to see the current names and values, which differ between Transmission 3 and 4. |
| test_portA | Check whether the peer port is reachable from outside. |
| update_blocklistA | Download a fresh copy of the blocklist and report its size. |
| get_free_spaceA | Get free space in a directory the daemon can see. Args: path: A directory path on the machine running Transmission, not on this one. |
| shutdown_daemonA | Shut the Transmission daemon down. Every torrent stops and the daemon exits. Nothing here can start it again. |
| get_bandwidth_groupsA | Get bandwidth groups and their speed limits. Args: group: One group name. Omit for every group. |
| set_bandwidth_groupA | Create or change a bandwidth group. Args: name: Group name. A name that does not exist yet is created. honors_session_limits: Whether the session's own limits also apply. speed_limit_down: Download cap for the group in kB/s. speed_limit_down_enabled: Whether the download cap applies. speed_limit_up: Upload cap for the group in kB/s. speed_limit_up_enabled: Whether the upload cap applies. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 26 tools
Each tool targets a distinct resource or RPC action: torrent lifecycle, queue position, session settings, bandwidth groups, and daemon admin are cleanly separated. Close pairs like start_torrents vs start_torrents_now and set_torrent location vs move_torrent_data are explicitly differentiated in their descriptions.
Most tools follow a clear verb_noun pattern such as list_torrents, add_torrent, stop_torrents, and set_session. Minor deviations like queue_move_top/up/down/bottom and start_torrents_now break the strict pattern, though all names remain snake_case and readable.
At 26 tools, the set sits just above the 16-25 'heavy' band, although nearly every tool maps to a distinct Transmission RPC operation. The four queue_move_* tools and the two start_torrents variants could be consolidated, making the count feel slightly heavy rather than egregiously bloated.
The surface covers the full torrent lifecycle: add, list, get, set, start, stop, verify, reannounce, remove, move, rename, and queue management. It also includes session settings, stats, bandwidth groups, free space, port testing, blocklist updates, and daemon shutdown, with no obvious dead ends.