transmission-mcp
Provides tools to manage the Transmission BitTorrent client, including adding, removing, pausing, resuming torrents, managing queue order, configuring session settings, and monitoring statistics.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@transmission-mcpwhat torrents are currently downloading"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 buildConfiguration
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 startAvailable Tools
Torrent Management
transmission_add_torrent- Add torrent from magnet URI, URL, or base64-encoded .torrent filetransmission_list_torrents- List all torrents with optional filteringtransmission_get_torrent- Get detailed information about specific torrent(s)transmission_remove_torrent- Remove torrent with option to delete local filestransmission_pause_torrent- Pause active torrent(s)transmission_resume_torrent- Resume paused torrent(s)transmission_verify_torrent- Verify torrent data integritytransmission_reannounce_torrent- Force tracker reannouncetransmission_move_torrent- Move torrent to new locationtransmission_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 configurationtransmission_set_session- Update daemon settingstransmission_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 cleanLicense
MIT
Available Tools
15 toolstransmission_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
| Name | Required | Description | Default |
|---|---|---|---|
| labels | No | Labels to apply to the torrent | |
| paused | No | If true, torrent will be added in paused state | |
| torrent | Yes | Magnet URI, URL to .torrent file, or base64-encoded .torrent file content | |
| download_dir | No | Destination path for downloaded files | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
TDQS
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.
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.
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.
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.
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.
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 SpaceARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Path to check free space for (defaults to download directory) | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
TDQS
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.
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.
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.
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.
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.
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 ConfigurationARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
TDQS
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.
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.
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.
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.
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.
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 StatisticsARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
TDQS
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.
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.
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.
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.
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.
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 DetailsARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Torrent ID(s) to operate on - can be a single ID, array of IDs, or 'all' | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
TDQS
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.
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.
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.
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.
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.
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 TorrentsARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results to return (1-100) | |
| offset | No | Number of results to skip for pagination | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Torrent ID(s) to operate on - can be a single ID, array of IDs, or 'all' | |
| move | No | If true, move from previous location; if false, search new location for files | |
| location | Yes | New location path for the torrent data | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
TDQS
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.
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.
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.
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.
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.
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 TorrentAIdempotent
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)
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Torrent ID(s) to operate on - can be a single ID, array of IDs, or 'all' | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Torrent ID(s) to operate on - can be a single ID, array of IDs, or 'all' | |
| direction | Yes | Direction to move: 'top', 'up', 'down', or 'bottom' | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Torrent ID(s) to operate on - can be a single ID, array of IDs, or 'all' | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
TDQS
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.
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.
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.
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.
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.
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 TorrentADestructiveIdempotent
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
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Torrent ID(s) to operate on - can be a single ID, array of IDs, or 'all' | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
| delete_local_data | No | If true, downloaded files will be deleted from disk |
TDQS
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.
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.
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.
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.
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.
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 TorrentAIdempotent
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)
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Torrent ID(s) to operate on - can be a single ID, array of IDs, or 'all' | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
TDQS
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.
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.
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.
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.
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.
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 ConfigurationAIdempotent
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
| Name | Required | Description | Default |
|---|---|---|---|
| alt_speed_up | No | Alternative upload speed limit in KB/s | |
| download_dir | No | Default download directory | |
| alt_speed_down | No | Alternative download speed limit in KB/s | |
| seedRatioLimit | No | Global seed ratio limit | |
| speed_limit_up | No | Regular upload speed limit in KB/s | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
| seedRatioLimited | No | Enable global seed ratio limit | |
| speed_limit_down | No | Regular download speed limit in KB/s | |
| alt_speed_enabled | No | Enable alternative speed limits | |
| speed_limit_up_enabled | No | Enable upload speed limit | |
| speed_limit_down_enabled | No | Enable download speed limit |
TDQS
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.
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.
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.
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.
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.
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 SettingsAIdempotent
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
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Torrent ID(s) to operate on - can be a single ID, array of IDs, or 'all' | |
| labels | No | Labels for the torrent | |
| uploadLimit | No | Maximum upload speed in KB/s | |
| downloadLimit | No | Maximum download speed in KB/s | |
| seedRatioMode | No | Seed ratio mode: 0 (global), 1 (torrent), 2 (unlimited) | |
| uploadLimited | No | Enable upload speed limit | |
| seedRatioLimit | No | Torrent-specific seed ratio limit | |
| downloadLimited | No | Enable download speed limit | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
| bandwidthPriority | No | Priority: -1 (low), 0 (normal), 1 (high) |
TDQS
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.
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.
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.
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.
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.
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 DataAIdempotent
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
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Torrent ID(s) to operate on - can be a single ID, array of IDs, or 'all' | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
TDQS
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.
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.
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.
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.
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.
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.
15 tool updates
v1.0.0- First observed
transmission_add_torrent - First observed
transmission_free_space - First observed
transmission_get_session - First observed
transmission_get_stats - First observed
transmission_get_torrent - First observed
transmission_list_torrents - First observed
transmission_move_torrent - First observed
transmission_pause_torrent - First observed
transmission_queue_move - First observed
transmission_reannounce_torrent - First observed
transmission_remove_torrent - First observed
transmission_resume_torrent - First observed
transmission_set_session - First observed
transmission_set_torrent - First observed
transmission_verify_torrent
TDQS
Scored across 15 tools
Each tool has a clearly distinct purpose covering all core operations on torrents and session. No two tools overlap confusingly.
All tools use 'transmission_' prefix with a verb_noun pattern, except 'queue_move' which deviates slightly from the pattern, but overall consistency is high.
15 tools is well-scoped for a torrent client MCP server, covering all essential operations without excess.
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
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
MCP server for the FFmpeg Micro video transcoding API — create, monitor, download transcodes.
MCP server for manus documentation, generated by doc2mcp.
MCP server for tabletopsimulator documentation, generated by doc2mcp.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides tools for interacting with the Transmission BitTorrent client via natural language, enabling users to manage torrents, configure download settings, and monitor download activity.2MIT
- AlicenseBqualityBmaintenancePython wrapper & MCP server for transmission195MIT
- AlicenseCqualityDmaintenanceMCP server for interacting with Tdarr, a distributed transcoding system. Provides 21 tools for monitoring workers, managing flows, and controlling transcoding libraries.1001MIT
- FlicenseNot gradedqualityDmaintenanceEnables 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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