Skip to main content
Glama
montyanderson

transmission-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TRANSMISSION_URLNoBase URL of Transmission RPChttp://localhost:9091
TRANSMISSION_PASSWORDNoPassword for authentication
TRANSMISSION_USERNAMENoUsername for authentication

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
transmission_add_torrentA

Add a new torrent to Transmission from a magnet URI, HTTP(S) URL, or base64-encoded .torrent file.

This tool adds torrents to the Transmission download queue. It supports multiple input formats and allows configuration of download location, initial state, and labels.

Args:

  • torrent (string): Magnet URI (magnet:?...), HTTP(S) URL to .torrent file, or base64-encoded .torrent file content

  • download_dir (string, optional): Destination directory for downloaded files

  • paused (boolean, optional): If true, add torrent in paused state (default: false)

  • labels (string[], optional): Array of labels to apply to the torrent

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: For JSON format: { id: number, name: string, hashString: string } For Markdown format: Human-readable confirmation with torrent details

Examples:

  • Use when: "Add this magnet link to downloads" -> params with magnet URI

  • Use when: "Download torrent from URL and label it 'movies'" -> params with URL and labels

  • Don't use when: You need to search for torrents (this only adds existing torrent files/magnets)

Error Handling:

  • Returns "Error: Could not connect to Transmission daemon" if connection fails

  • Returns "Torrent added successfully" on success with torrent details

transmission_list_torrentsA

List all torrents in Transmission with their current status and statistics.

This tool retrieves a list of all torrents with detailed information including download progress, speeds, ratios, and peer connections. Supports pagination for large torrent lists.

Args:

  • limit (number): Maximum torrents to return, between 1-100 (default: 20)

  • offset (number): Number of torrents to skip for pagination (default: 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: For JSON format: { total: number, count: number, offset: number, torrents: [...], has_more: boolean, next_offset?: number } For Markdown format: Human-readable list with status, progress, speeds, and statistics

Examples:

  • Use when: "Show me all my torrents"

  • Use when: "List the next 50 torrents" -> params with limit=50, offset=50

  • Use when: "What's downloading right now?"

Error Handling:

  • Returns "No torrents found" if list is empty

  • Handles pagination automatically with has_more indicator

transmission_get_torrentA

Get detailed information about specific torrent(s) by ID.

This tool retrieves comprehensive information about one or more torrents, including status, progress, files, trackers, and peer information.

Args:

  • ids (number | number[] | 'all'): Torrent ID(s) - single ID, array of IDs, or 'all' for all torrents

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Detailed torrent information including:

  • Name, status, and progress

  • Size and download/upload statistics

  • Speed and ETA

  • Peer connections

  • Labels and error messages (if any)

Examples:

  • Use when: "Show me details for torrent ID 5" -> params with ids=5

  • Use when: "Get info for torrents 1, 2, and 3" -> params with ids=[1, 2, 3]

  • Use when: "Show all torrent details" -> params with ids='all'

Error Handling:

  • Returns "No torrents found matching the specified IDs" if IDs don't exist

  • Returns error message if connection fails

transmission_remove_torrentA

Remove torrent(s) from Transmission, with optional deletion of downloaded files.

This tool removes torrents from the Transmission queue. By default, it only removes the torrent from the queue and keeps the downloaded files on disk. Set delete_local_data=true to also delete the files.

Args:

  • ids (number | number[] | 'all'): Torrent ID(s) to remove

  • delete_local_data (boolean): If true, delete downloaded files from disk (default: false)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Confirmation message indicating which torrents were removed

Examples:

  • Use when: "Remove torrent 5 but keep the files" -> params with ids=5, delete_local_data=false

  • Use when: "Delete torrent 3 and all its files" -> params with ids=3, delete_local_data=true

  • Use when: "Remove all torrents" -> params with ids='all'

  • Don't use when: You want to pause a torrent (use transmission_pause_torrent instead)

Error Handling:

  • Returns error if torrent IDs don't exist

  • Confirms successful removal with file deletion status

transmission_pause_torrentA

Pause active torrent(s) to stop downloading/uploading.

This tool pauses torrents, stopping all download and upload activity. Paused torrents can be resumed later without losing progress.

Args:

  • ids (number | number[] | 'all'): Torrent ID(s) to pause

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Confirmation message indicating which torrents were paused

Examples:

  • Use when: "Pause torrent 5"

  • Use when: "Pause all torrents" -> params with ids='all'

  • Don't use when: You want to remove a torrent (use transmission_remove_torrent instead)

Error Handling:

  • Returns error if torrent IDs don't exist

  • Succeeds even if torrents are already paused (idempotent)

transmission_resume_torrentA

Resume paused torrent(s) to restart downloading/uploading.

This tool resumes paused torrents, restarting download and upload activity from where they left off.

Args:

  • ids (number | number[] | 'all'): Torrent ID(s) to resume

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Confirmation message indicating which torrents were resumed

Examples:

  • Use when: "Resume torrent 5"

  • Use when: "Resume all torrents" -> params with ids='all'

  • Use when: "Start downloading again"

Error Handling:

  • Returns error if torrent IDs don't exist

  • Succeeds even if torrents are already active (idempotent)

transmission_verify_torrentA

Verify the integrity of downloaded torrent data.

This tool triggers a verification check of torrent files against their checksums. Use this to ensure downloaded data is correct and complete, or to recheck files after moving them.

Args:

  • ids (number | number[] | 'all'): Torrent ID(s) to verify

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Confirmation that verification has been started

Examples:

  • Use when: "Verify torrent 5"

  • Use when: "Check if my download is corrupted"

  • Use when: "Recheck all torrents" -> params with ids='all'

Error Handling:

  • Returns error if torrent IDs don't exist

  • Verification runs in background; check torrent status to see results

transmission_reannounce_torrentA

Force torrent(s) to reannounce to their trackers.

This tool forces an immediate announcement to trackers, which can help update peer lists or fix connection issues. Normally, Transmission announces automatically at regular intervals.

Args:

  • ids (number | number[] | 'all'): Torrent ID(s) to reannounce

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Confirmation that reannounce request was sent

Examples:

  • Use when: "Update tracker for torrent 5"

  • Use when: "Not getting any peers, force an announce"

  • Use when: "Reannounce all torrents" -> params with ids='all'

Error Handling:

  • Returns error if torrent IDs don't exist

  • Success doesn't guarantee tracker response (depends on tracker availability)

transmission_move_torrentA

Move torrent data files to a new location on disk.

This tool relocates torrent files to a different directory. By default, it moves the files physically. Set move=false to just update the path if files are already at the new location.

Args:

  • ids (number | number[] | 'all'): Torrent ID(s) to move

  • location (string): Destination directory path

  • move (boolean): If true, move files; if false, just update location (default: true)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Confirmation that move operation was initiated

Examples:

  • Use when: "Move torrent 5 to /downloads/completed"

  • Use when: "Change location of all torrents to /media/storage" -> params with ids='all'

  • Use when: "Update path for torrent 3 (files already moved)" -> params with move=false

Error Handling:

  • Returns error if destination path doesn't exist

  • Returns error if insufficient permissions

  • Move operation may take time for large files

transmission_set_torrentA

Update settings for specific torrent(s) including labels, speed limits, and seed ratios.

This tool modifies torrent-specific settings. You can update labels, bandwidth priorities, speed limits, and seeding behavior.

Args:

  • ids (number | number[] | 'all'): Torrent ID(s) to update

  • labels (string[], optional): Labels to apply

  • bandwidthPriority (number, optional): Priority: -1 (low), 0 (normal), 1 (high)

  • downloadLimit (number, optional): Download speed limit in KB/s

  • downloadLimited (boolean, optional): Enable download speed limit

  • uploadLimit (number, optional): Upload speed limit in KB/s

  • uploadLimited (boolean, optional): Enable upload speed limit

  • seedRatioLimit (number, optional): Torrent-specific seed ratio limit

  • seedRatioMode (number, optional): 0 (use global), 1 (use torrent), 2 (unlimited)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Confirmation of updated settings

Examples:

  • Use when: "Set torrent 5 label to 'movies'"

  • Use when: "Limit download speed to 500 KB/s for torrent 3"

  • Use when: "Set high priority for torrents 1 and 2"

Error Handling:

  • Returns error if torrent IDs don't exist

  • Validates numeric ranges for limits and priorities

transmission_queue_moveA

Move torrent(s) to a different position in the download queue.

This tool reorders torrents in the download queue. Use this to prioritize certain downloads by moving them to the top or adjusting their position.

Args:

  • ids (number | number[] | 'all'): Torrent ID(s) to move

  • direction ('top' | 'up' | 'down' | 'bottom'): Where to move the torrent(s)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Confirmation of queue position change

Examples:

  • Use when: "Move torrent 5 to top of queue" -> params with direction='top'

  • Use when: "Move torrent 3 down in the queue" -> params with direction='down'

  • Use when: "Prioritize torrents 1 and 2" -> params with ids=[1, 2], direction='top'

Error Handling:

  • Returns error if torrent IDs don't exist

  • Moving to top/bottom is idempotent

transmission_get_sessionA

Get Transmission daemon configuration and settings.

This tool retrieves the current configuration of the Transmission daemon, including speed limits, download directory, and seeding settings.

Args:

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Complete session configuration including:

  • Version information

  • Download directory

  • Speed limits (regular and alternative)

  • Seed ratio settings

  • Port and network configuration

Examples:

  • Use when: "Show Transmission settings"

  • Use when: "What's my download directory?"

  • Use when: "Check current speed limits"

Error Handling:

  • Returns error if cannot connect to Transmission daemon

transmission_set_sessionA

Update Transmission daemon configuration and settings.

This tool modifies the configuration of the Transmission daemon. You can update speed limits, download directory, seeding settings, and more.

Args:

  • alt_speed_down (number, optional): Alternative download speed limit in KB/s

  • alt_speed_up (number, optional): Alternative upload speed limit in KB/s

  • alt_speed_enabled (boolean, optional): Enable alternative speed limits

  • download_dir (string, optional): Default download directory

  • speed_limit_down (number, optional): Regular download speed limit in KB/s

  • speed_limit_down_enabled (boolean, optional): Enable download speed limit

  • speed_limit_up (number, optional): Regular upload speed limit in KB/s

  • speed_limit_up_enabled (boolean, optional): Enable upload speed limit

  • seedRatioLimit (number, optional): Global seed ratio limit

  • seedRatioLimited (boolean, optional): Enable global seed ratio limit

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Confirmation of updated settings

Examples:

  • Use when: "Set download speed limit to 1000 KB/s"

  • Use when: "Change download directory to /downloads"

  • Use when: "Enable alternative speed limits"

Error Handling:

  • Returns error if invalid settings provided

  • Changes take effect immediately

transmission_get_statsA

Get Transmission session statistics including current and cumulative data.

This tool retrieves statistics about the current and all-time Transmission usage, including download/upload totals, active torrents, and speeds.

Args:

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Statistics including:

  • Current session: Active/paused torrents, current speeds

  • Session totals: Downloaded/uploaded bytes, files added, duration

  • All-time totals: Cumulative statistics across all sessions

Examples:

  • Use when: "Show me download statistics"

  • Use when: "How much have I downloaded total?"

  • Use when: "What's my current upload speed?"

Error Handling:

  • Returns error if cannot connect to Transmission daemon

transmission_free_spaceA

Check available disk space at a given path.

This tool checks how much free space is available at the specified path. If no path is provided, it checks the default download directory.

Args:

  • path (string, optional): Path to check (defaults to download directory)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Available free space in bytes and human-readable format

Examples:

  • Use when: "How much disk space is available?"

  • Use when: "Check free space in /downloads" -> params with path="/downloads"

  • Use when: "Do I have enough space for more downloads?"

Error Handling:

  • Returns error if path doesn't exist or is not accessible

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/montyanderson/transmission-mcp'

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