Skip to main content
Glama
montyanderson

transmission-mcp

Transmission MCP Server

Model Context Protocol (MCP) server for the Transmission BitTorrent client. This server provides comprehensive tools to manage torrents, control the Transmission daemon, and monitor downloads through a standardized MCP interface.

Features

  • Torrent Management: Add, remove, pause, resume, and verify torrents

  • Queue Control: Manage download queue order

  • Session Management: Configure Transmission daemon settings

  • Real-time Monitoring: Get torrent status, statistics, and progress

  • File Operations: Move torrents, check free space

  • Flexible Output: Support for both human-readable Markdown and machine-readable JSON formats

Related MCP server: transmission-mcp

Prerequisites

  • Node.js 18 or higher

  • Transmission daemon running locally or remotely

  • Transmission RPC credentials (if authentication is enabled)

Installation

npm install
npm run build

Configuration

The server requires the Transmission daemon connection details via environment variables:

  • TRANSMISSION_URL - Base URL of Transmission RPC (default: http://localhost:9091)

  • TRANSMISSION_USERNAME - Username for authentication (optional)

  • TRANSMISSION_PASSWORD - Password for authentication (optional)

Example:

export TRANSMISSION_URL="http://localhost:9091"
export TRANSMISSION_USERNAME="admin"
export TRANSMISSION_PASSWORD="password"

Usage

With Claude Desktop

Add to your Claude Desktop configuration:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "transmission": {
      "command": "node",
      "args": ["/path/to/transmission-mcp/dist/index.js"],
      "env": {
        "TRANSMISSION_URL": "http://localhost:9091",
        "TRANSMISSION_USERNAME": "your-username",
        "TRANSMISSION_PASSWORD": "your-password"
      }
    }
  }
}

Standalone

npm start

Available Tools

Torrent Management

  • transmission_add_torrent - Add torrent from magnet URI, URL, or base64-encoded .torrent file

  • transmission_list_torrents - List all torrents with optional filtering

  • transmission_get_torrent - Get detailed information about specific torrent(s)

  • transmission_remove_torrent - Remove torrent with option to delete local files

  • transmission_pause_torrent - Pause active torrent(s)

  • transmission_resume_torrent - Resume paused torrent(s)

  • transmission_verify_torrent - Verify torrent data integrity

  • transmission_reannounce_torrent - Force tracker reannounce

  • transmission_move_torrent - Move torrent to new location

  • transmission_set_torrent - Update torrent settings (labels, priorities, limits)

Queue Management

  • transmission_queue_move - Move torrents in download queue (top/up/down/bottom)

Session Management

  • transmission_get_session - Get Transmission daemon configuration

  • transmission_set_session - Update daemon settings

  • transmission_get_stats - Get session statistics (current and cumulative)

Utility

  • transmission_free_space - Check available disk space

Development

# Install dependencies
npm install

# Run in development mode with auto-reload
npm run dev

# Build the project
npm run build

# Clean build artifacts
npm run clean

License

MIT

Available Tools

15 tools
transmission_add_torrentAdd Torrent to TransmissionA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
labelsNoLabels to apply to the torrent
pausedNoIf true, torrent will be added in paused state
torrentYesMagnet URI, URL to .torrent file, or base64-encoded .torrent file content
download_dirNoDestination path for downloaded files
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown

TDQS

A4.6/5.0
Behavior4/5

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

Annotations indicate it's not read-only and not destructive. The description adds error handling details (connection failure) and success response format, providing context beyond annotations. However, it does not discuss idempotency or potential duplicate handling.

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?

Well-structured with sections for args, returns, examples, and error handling. Front-loaded with the main purpose. Slight redundancy in repeating parameter descriptions from the schema, but overall concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all aspects: input formats, all optional parameters, return format (both markdown and JSON), error handling, and examples. For a tool without output schema, it provides sufficient detail for the agent to understand behavior.

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% with good descriptions. The description adds value through usage examples (e.g., 'params with URL and labels') and explains the torrent parameter types in more detail, going beyond the schema.

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?

The description clearly states the verb 'Add' and resource 'new torrent to Transmission', and specifies the input formats (magnet URI, URL, base64). This differentiates it from siblings like transmission_remove_torrent or transmission_list_torrents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Includes explicit 'Use when' and 'Don't use when' examples, such as adding a magnet link versus searching for torrents. This provides clear context for when to invoke this tool vs alternatives.

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

transmission_free_spaceCheck Free Disk SpaceA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to check free space for (defaults to download directory)
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate this is a safe, read-only, idempotent operation. The description adds behavioral context: default download directory behavior and error handling for non-existent/inaccessible paths.

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?

The description is well-structured with sections (Args, Returns, Examples, Error Handling), concise without unnecessary words, and front-loaded with the main purpose.

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 simple read-only tool with two parameters and no output schema, the description covers all essential aspects: purpose, parameters, examples, and error handling. Return value description could be more structured but suffices.

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 schema already documents both parameters. The description adds value by including usage examples and clarifying the 'path' default, going beyond the schema.

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?

The description clearly states the tool's purpose: checking free disk space at a given path. It uses a specific verb and resource, and distinguishes from sibling tools that handle torrent operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage examples ('Use when: ...'), making it clear when to invoke this tool. However, it does not mention when not to use it or suggest alternatives among siblings.

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

transmission_get_sessionGet Session ConfigurationA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows it's a safe read operation. The description adds value by detailing the returned information (version, speed limits, etc.) and mentioning error handling ('Returns error if cannot connect'). This goes beyond annotations, though it does not discuss rate limits or auth requirements, which are less critical for a local daemon tool.

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?

The description is well-structured with clear sections (general, Args, Returns, Examples, Error Handling). Every sentence serves a purpose, and the most critical information (purpose) is front-loaded. There is no fluff or redundancy, making it highly efficient for an AI agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema, comprehensive annotations), the description is complete. It covers functionality, parameters, return values, usage examples, and error handling. No significant gaps are present, and the agent can confidently invoke this tool based on the description alone.

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% with a clear enum and description for the only parameter (response_format). The description repeats essentially the same info ('Output format (default: 'markdown')') without adding new meaning or constraints. Thus, the description adds minimal value beyond the schema, warranting a baseline score of 3.

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?

The description clearly states the tool retrieves Transmission daemon configuration and settings. It uses specific verbs ('Get', 'retrieves') and explicitly lists the resource ('session configuration'). Among siblings (e.g., transmission_set_session, transmission_get_stats, transmission_get_torrent), this tool is uniquely positioned as a read-only session-wide config reader, which is evident from the title and description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides concrete usage examples (e.g., 'Show Transmission settings', 'What's my download directory?') that clarify common scenarios. However, it does not explicitly state when not to use this tool or point to alternatives (e.g., transmission_set_session for modifications). While the sibling context helps, the description could be more explicit about exclusions.

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

transmission_get_statsGet Session StatisticsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's addition of error handling ('Returns error if cannot connect to Transmission daemon') provides useful behavioral context beyond annotations. No contradictions.

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?

The description is well-structured with clear sections: overview, args, returns, examples, error handling. Each sentence adds value with no wasted words. Front-loaded with the main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (1 optional parameter, no output schema), the description covers all necessary aspects: purpose, return structure, usage hints, and error handling. It is complete for effective use.

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?

The input schema has 100% coverage with a single parameter (response_format) fully described. The description restates the parameter in Args but adds no new semantics beyond the schema's enum, default, and description.

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?

The description clearly states the tool retrieves Transmission session statistics, specifying current and cumulative data including download/upload totals, active torrents, and speeds. The verb 'get' and resource 'session statistics' are specific and distinct from sibling tools like transmission_get_session.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides concrete usage examples ('Show me download statistics', 'How much have I downloaded total?', 'What's my current upload speed?'), giving clear context. However, it lacks explicit when-not-to-use guidance or alternative tool references.

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

transmission_get_torrentGet Torrent DetailsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesTorrent ID(s) to operate on - can be a single ID, array of IDs, or 'all'
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value by detailing return information, error messages, and connection failure scenarios, which goes beyond the annotations.

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?

The description is structured with clear sections (Args, Returns, Examples, Error Handling) and is front-loaded with the purpose. Slightly wordy in examples but overall efficient.

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?

Given no output schema, the description provides a return summary covering all key fields. It explains parameters, error handling, and usage examples, leaving no critical gaps for a read-only 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?

Schema coverage is 100%, baseline 3. The description adds examples and explains parameter types and default values, improving meaning beyond the schema alone.

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?

The description clearly states 'Get detailed information about specific torrent(s) by ID,' using a specific verb and resource. It distinguishes itself from sibling tools like transmission_list_torrents by focusing on detailed info for specific IDs rather than a list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides concrete examples of when to use the tool (e.g., 'Show me details for torrent ID 5') and includes error handling. However, it does not explicitly state when not to use or compare with siblings, so it is slightly incomplete.

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

transmission_list_torrentsList All TorrentsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results to return (1-100)
offsetNoNumber of results to skip for pagination
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. Description adds value by detailing return format, pagination with has_more indicator, and error handling ('No torrents found'). No contradiction.

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?

Description is concise with clear sections (intro, Args, Returns, Examples, Error Handling) and front-loads the purpose, with no redundant or extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description fully documents return formats for both JSON and Markdown, explains pagination, and mentions error handling, making it complete for the tool's complexity.

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 has 100% coverage with descriptions for all 3 parameters. Description adds context through Args section and examples (e.g., limit=50, offset=50), slightly improving over baseline 3.

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?

The title and description clearly state the tool lists all torrents with status and statistics, distinguishing it from sibling tools like transmission_add_torrent (write) or transmission_get_torrent (single item).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description includes three use-case examples and implies pagination usage, but does not explicitly contrast with sibling tools like transmission_get_torrent for single torrent queries.

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

transmission_move_torrentMove Torrent to New LocationA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesTorrent ID(s) to operate on - can be a single ID, array of IDs, or 'all'
moveNoIf true, move from previous location; if false, search new location for files
locationYesNew location path for the torrent data
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown

TDQS

A4.7/5.0
Behavior5/5

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

The description adds significant behavioral context beyond annotations: it explains the default behavior (physical move), the option to only update path, and error handling (non-existent path, permissions, time for large files). Annotations indicate readOnlyHint=false and destructiveHint=false, which are consistent and the description elaborates appropriately.

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?

The description is well-structured with sections (overview, args, returns, examples, error handling) and front-loaded with the core purpose. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description adequately states the return format (confirmation). It covers all four parameters, error cases, and provides usage examples. The tool is fully described for an agent to use correctly.

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 input schema has 100% coverage, providing baseline of 3. The description further clarifies the 'move' parameter with examples and default value explanation, adding value beyond the schema. It also lists 'ids' allowed types and 'location' path requirement.

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?

The description clearly states the tool's purpose: 'Move torrent data files to a new location on disk.' The verb 'move' and the object 'torrent data files' are specific and distinct from sibling tools like transmission_add_torrent or transmission_remove_torrent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage context with examples ('Use when: ...') and explains the key parameter 'move' that controls behavior. However, it does not explicitly contrast with sibling tools or state when not to use this tool.

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

transmission_pause_torrentPause TorrentA
Idempotent

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesTorrent ID(s) to operate on - can be a single ID, array of IDs, or 'all'
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown

TDQS

A4.9/5.0
Behavior5/5

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

Discloses that pausing stops all activity, preserves progress for resumption, is idempotent, and returns errors for invalid IDs. These details complement annotations (idempotentHint=true, destructiveHint=false) without contradiction.

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?

Well-organized with clear sections (Description, Args, Returns, Examples, Error Handling). Every sentence serves a purpose; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 2 parameters, no output schema, and rich annotations, the description covers all essential aspects: purpose, usage, return values, error states, and differentiation from siblings. Fully adequate for an agent.

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 baseline is 3. The description reinforces parameter meaning via examples and error handling context, adding value beyond the schema.

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?

The description clearly states it pauses active torrents to stop downloading/uploading. It uses a specific verb+resource and distinguishes from siblings like transmission_remove_torrent and transmission_resume_torrent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit 'Use when' and 'Don't use when' examples, including an alternative tool. Also explains handling of single IDs, arrays, and 'all'. Agents get clear guidance on when to invoke.

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

transmission_queue_moveMove Torrent in QueueA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesTorrent ID(s) to operate on - can be a single ID, array of IDs, or 'all'
directionYesDirection to move: 'top', 'up', 'down', or 'bottom'
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown

TDQS

A3.7/5.0
Behavior1/5

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

The description claims 'Moving to top/bottom is idempotent', but annotations set idempotentHint: false, creating a direct contradiction. Additionally, it fails to disclose other behavioral traits like whether up/down moves are idempotent or any side effects beyond queue reordering.

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?

The description is well-structured with sections (main description, Args, Returns, Examples, Error Handling). It is front-loaded with the key purpose, though there is slight redundancy between the first two sentences.

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 3-parameter tool with no output schema and good annotations, the description covers input parameters thoroughly with examples and error handling. It lacks differentiation from the sibling tool transmission_move_torrent, which could cause confusion.

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 baseline is 3. The description adds value by providing examples for each parameter and clarifying that ids can be a single number, array, or 'all', which goes beyond the schema's enum and type descriptions.

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?

The description clearly states the verb 'move' and the resource 'torrent(s) in the download queue', and explicitly says it reorders torrents to prioritize downloads. This is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides examples and a clear usage context ('Use this to prioritize certain downloads'), but does not explicitly exclude alternatives like transmission_move_torrent (which moves data files), nor state when not to use this tool.

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

transmission_reannounce_torrentReannounce Torrent to TrackersA

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesTorrent ID(s) to operate on - can be a single ID, array of IDs, or 'all'
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown

TDQS

A4.2/5.0
Behavior4/5

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

The description adds value beyond annotations by explaining that success does not guarantee tracker response and that it forces an immediate announcement versus the normal automatic interval. It also covers error handling for invalid torrent IDs. No contradictions with annotations.

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?

The description is well-structured with sections for purpose, args, returns, examples, and error handling. It is front-loaded with the main action and uses bullet points for examples. While slightly longer than necessary, every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 params, no output schema, good annotations), the description covers all necessary aspects: purpose, usage scenarios, parameter details, error handling, and behavioral limitations. It is complete for an AI agent to correctly invoke the tool.

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 description's parameter info (ids and response_format) is redundant but provides useful examples. It adds context for the ids parameter accepting various formats and response_format default. Baseline of 3 is appropriate as the schema already defines the parameters well.

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?

The description clearly states the tool's action: 'Force torrent(s) to reannounce to their trackers.' It uses a specific verb (reannounce) and resource (torrents to trackers), distinguishing it from sibling tools like transmission_add_torrent or transmission_pause_torrent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit use cases such as 'update peer lists', 'fix connection issues', and gives examples like 'Not getting any peers, force an announce'. It does not explicitly state when not to use, but the context is sufficient for an AI agent to understand appropriate scenarios.

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

transmission_remove_torrentRemove TorrentA
DestructiveIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesTorrent ID(s) to operate on - can be a single ID, array of IDs, or 'all'
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown
delete_local_dataNoIf true, downloaded files will be deleted from disk

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already mark destructiveHint=true, but description adds essential behavioral details: default behavior (keep files), deletion option, error handling, and confirmation messages. This adds significant context beyond 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?

Very well-structured: purpose statement, parameter details, examples, error handling. No fluff, every sentence adds value. Front-loaded with critical purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters and no output schema, the description fully covers usage semantics, parameter behavior, return format, and error cases. No gaps identified.

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 covers 100% of parameters, but description enhances understanding with usage examples, default values, and error conditions. The examples bridge the gap between schema and real-world application.

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?

Description clearly states the action (remove torrents) and distinguishes from siblings by mentioning optional deletion of files. It also includes explicit examples that reinforce purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides concrete examples of when to use (e.g., 'Remove torrent 5 but keep the files') and explicitly warns against use for pausing torrents, pointing to the correct sibling tool.

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

transmission_resume_torrentResume TorrentA
Idempotent

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesTorrent ID(s) to operate on - can be a single ID, array of IDs, or 'all'
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown

TDQS

A4.7/5.0
Behavior5/5

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

Annotations provide idempotentHint=true and destructiveHint=false. The description adds that the tool succeeds even if torrents are already active (idempotent behavior) and explains error handling, providing value beyond 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?

The description is well-structured with clear sections (Args, Returns, Examples, Error Handling). It is concise and front-loaded with the main purpose, using minimal but informative sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 2 parameters and no output schema, the description covers purpose, parameter details, return type, examples, and error cases. It is complete and leaves no ambiguity.

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%. The description explains the ids parameter with examples and the response_format enum, but the schema already documents these thoroughly. The description adds practical usage context.

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?

The description clearly states it resumes paused torrents to restart downloading/uploading, using specific verbs and resource. It distinguishes from siblings like pause_torrent and remove_torrent by focusing on the resume action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes explicit 'Use when' examples covering common scenarios like resuming a single torrent or all torrents. It lacks explicit when-not-to-use guidance, but the examples sufficiently cover typical usage.

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

transmission_set_sessionUpdate Session ConfigurationA
Idempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
alt_speed_upNoAlternative upload speed limit in KB/s
download_dirNoDefault download directory
alt_speed_downNoAlternative download speed limit in KB/s
seedRatioLimitNoGlobal seed ratio limit
speed_limit_upNoRegular upload speed limit in KB/s
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown
seedRatioLimitedNoEnable global seed ratio limit
speed_limit_downNoRegular download speed limit in KB/s
alt_speed_enabledNoEnable alternative speed limits
speed_limit_up_enabledNoEnable upload speed limit
speed_limit_down_enabledNoEnable download speed limit

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already indicate mutability (readOnlyHint false) and idempotency (idempotentHint true). The description adds that changes take effect immediately, returns confirmation, and handles errors, offering full behavioral transparency without contradicting annotations.

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?

The description is well-organized with sections for arguments, returns, examples, and error handling. It is slightly longer than necessary but each section contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 11 optional parameters and no output schema, the description covers what the tool does, all parameters, example invocations, and error behavior. It is complete enough for an agent to use effectively.

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 schema already describes all 11 parameters. The description repeats parameter details but adds value through example usage in the 'Examples' section, which help agents understand typical invocations.

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?

The description clearly states it updates Transmission daemon configuration, listing specific settings like speed limits and download directory. It distinguishes itself from siblings such as transmission_get_session (read) and transmission_set_torrent (per-torrent), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes 'Use when' examples for common scenarios (e.g., setting speed limits, changing download directory). However, it lacks explicit guidance on when not to use the tool or alternatives, though the sibling list provides context.

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

transmission_set_torrentUpdate Torrent SettingsA
Idempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesTorrent ID(s) to operate on - can be a single ID, array of IDs, or 'all'
labelsNoLabels for the torrent
uploadLimitNoMaximum upload speed in KB/s
downloadLimitNoMaximum download speed in KB/s
seedRatioModeNoSeed ratio mode: 0 (global), 1 (torrent), 2 (unlimited)
uploadLimitedNoEnable upload speed limit
seedRatioLimitNoTorrent-specific seed ratio limit
downloadLimitedNoEnable download speed limit
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown
bandwidthPriorityNoPriority: -1 (low), 0 (normal), 1 (high)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate the tool is idempotent, non-destructive, and not read-only. The description adds extra behavioral detail: error handling for non-existent IDs, validation of numeric ranges, and explanation of parameter meanings (e.g., seedRatioMode values, bandwidthPriority mapping). No contradiction with 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?

The description is well-structured with clear sections: summary, Args, Returns, Examples, Error Handling. It is concise yet comprehensive, front-loading the purpose and using efficient formatting.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters and no output schema, the description provides sufficient detail: all parameters explained, return value of confirmation stated, error handling documented, and examples given. An agent can correctly invoke the tool based solely on this description.

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 all parameters. The description's Args section mostly restates schema info but adds some extra context (e.g., mapping bandwidthPriority to low/normal/high, seedRatioMode meanings). Since schema covers basics, description adds marginal value beyond the schema.

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?

The description clearly states the tool updates settings for specific torrents including labels, speed limits, and seed ratios, using a specific verb and resource. It distinguishes itself from sibling tools like transmission_add_torrent or transmission_get_torrent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes concrete 'Use when:' examples (e.g., 'Set torrent 5 label to movies') that illustrate appropriate contexts. It does not explicitly exclude cases, but the examples provide clear guidance on typical usage scenarios.

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

transmission_verify_torrentVerify Torrent DataA
Idempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesTorrent ID(s) to operate on - can be a single ID, array of IDs, or 'all'
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown

TDQS

A4.8/5.0
Behavior5/5

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

The description discloses key behaviors: verification runs in background, returns confirmation immediately, errors if IDs don't exist. Annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false) are consistent with the description. No contradictions.

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?

The description is concise and well-structured with clear sections (usage, args, returns, examples, error handling). Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description explains the return value ('Confirmation that verification has been started') and directs the agent to check torrent status for results. All necessary information is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage, but the description adds meaningful context: explains 'ids' can be number, array, or 'all', and shows examples. Also explains the default for response_format. The description complements the schema well.

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?

The description clearly states the tool's purpose: 'Verify the integrity of downloaded torrent data' and 'triggers a verification check of torrent files against their checksums'. It is distinct from sibling tools like transmission_get_torrent (which shows status) or transmission_resume_torrent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit usage guidelines: 'Use this to ensure downloaded data is correct and complete, or to recheck files after moving them.' Examples are provided. However, it could explicitly state when not to use (e.g., for checking status) but that is implicit from context.

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. Dates show when Glama detected each change.

  1. 15 tool updatesv1.0.0
    • First observedtransmission_add_torrent
    • First observedtransmission_free_space
    • First observedtransmission_get_session
    • First observedtransmission_get_stats
    • First observedtransmission_get_torrent
    • First observedtransmission_list_torrents
    • First observedtransmission_move_torrent
    • First observedtransmission_pause_torrent
    • First observedtransmission_queue_move
    • First observedtransmission_reannounce_torrent
    • First observedtransmission_remove_torrent
    • First observedtransmission_resume_torrent
    • First observedtransmission_set_session
    • First observedtransmission_set_torrent
    • First observedtransmission_verify_torrent

TDQS

A4.4/5.0

Scored across 15 tools

Disambiguation5/5

Each tool has a clearly distinct purpose covering all core operations on torrents and session. No two tools overlap confusingly.

Naming Consistency4/5

All tools use 'transmission_' prefix with a verb_noun pattern, except 'queue_move' which deviates slightly from the pattern, but overall consistency is high.

Tool Count5/5

15 tools is well-scoped for a torrent client MCP server, covering all essential operations without excess.

Completeness5/5

The tool set provides complete lifecycle management for torrents (add, remove, pause, resume, verify, move, set/ get settings) and session configuration, leaving no obvious gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides tools for interacting with the Transmission BitTorrent client via natural language, enabling users to manage torrents, configure download settings, and monitor download activity.
    2
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    MCP server for interacting with Tdarr, a distributed transcoding system. Provides 21 tools for monitoring workers, managing flows, and controlling transcoding libraries.
    100
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables controlling a Transmission torrent daemon, allowing adding, listing, controlling torrents and checking free space, with support for SOCKS5 proxy for remote access.
    -

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