Skip to main content
Glama
aserper

NZBGet MCP Server

by aserper

NZBGet MCP Server

An MCP (Model Context Protocol) server for NZBGet that exposes NZBGet API functionality as MCP tools usable by LLM clients.

Control your Usenet downloads with natural language through Claude and other MCP-compatible clients.

Features

  • 15 MCP tools for complete NZBGet control

  • Queue management: list, add, pause, resume, delete downloads

  • History tracking: view completed and failed downloads

  • Speed control: set download rate limits

  • Status monitoring: real-time server status, disk space, queue info

  • Logging: access and write to NZBGet logs

  • TypeScript implementation with JSON-RPC client

  • Stdio transport compatible with Claude Desktop

Related MCP server: downloader-mcp

Requirements

  • Node.js 18+

  • A running NZBGet instance with RPC enabled

Setup

  1. Clone the repository and install dependencies:

git clone https://github.com/aserper/nzbget-mcp.git
cd nzbget-mcp
npm install
  1. Build the project:

npm run build
  1. Copy .env.example to .env and set your values:

cp .env.example .env

Edit .env:

NZBGET_HOST=localhost
NZBGET_PORT=6789
NZBGET_USERNAME=nzbget
NZBGET_PASSWORD=tegbzn6789
NZBGET_USE_HTTPS=false

Running the MCP Server

npm start

Or directly:

node dist/index.js

Testing

# Run all tests
npm test

# Run with coverage
npm run test:coverage

# Run tests in watch mode
npm run test:ui

Architecture

This MCP server uses a modular architecture:

  • src/tools/*.ts - Individual tool implementations

  • src/tools/index.ts - Tool registry and discovery

  • src/utils/errors.ts - Error handling utilities

  • src/__tests__/mocks/ - Test fixtures and mocks

All 15 tools are self-contained modules that register themselves on import.

Configuration

Variable

Description

Default

NZBGET_HOST

NZBGet hostname

localhost

NZBGET_PORT

NZBGet RPC port

6789

NZBGET_USERNAME

NZBGet username

-

NZBGET_PASSWORD

NZBGet password

-

NZBGET_USE_HTTPS

Use HTTPS

false

Claude Desktop Configuration

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, or equivalent on other platforms):

{
  "mcpServers": {
    "nzbget": {
      "command": "node",
      "args": ["/path/to/nzbget-mcp/dist/index.js"],
      "env": {
        "NZBGET_HOST": "localhost",
        "NZBGET_PORT": "6789",
        "NZBGET_USERNAME": "nzbget",
        "NZBGET_PASSWORD": "tegbzn6789"
      }
    }
  }
}

Docker

Build Locally

docker build -t nzbget-mcp .

Run

docker run --rm -it \
  -e NZBGET_HOST="localhost" \
  -e NZBGET_PORT="6789" \
  -e NZBGET_USERNAME="nzbget" \
  -e NZBGET_PASSWORD="tegbzn6789" \
  nzbget-mcp

Exposed Tools

Status & Information

  • nzbget_status - Get server status (speed, queue size, disk space)

  • nzbget_version - Get NZBGet version

  • nzbget_server_volumes - Get download statistics per server

Download Queue

  • nzbget_list_groups - List all downloads in queue

  • nzbget_append - Add NZB file to queue

  • nzbget_edit_queue - Edit queue (pause, resume, delete, set priority)

History

  • nzbget_history - View download history

Control

  • nzbget_pause_download / nzbget_resume_download

  • nzbget_pause_post / nzbget_resume_post

  • nzbget_rate - Set download speed limit (KB/s)

  • nzbget_scan - Scan for new NZB files

Logging

  • nzbget_log - Get log entries

  • nzbget_write_log - Write custom log message

Usage Examples

"Show me what's currently downloading"
"Pause the download queue"
"Set download speed to 5 MB/s"
"Add an NZB file to the queue"
"Show my recent download history"

Development

# Install dependencies
npm install

# Build
npm run build

# Watch mode
npm run dev

# Lint
npm run lint

# Type check
npm run typecheck

License

MIT

Contributing

Contributions welcome! Feel free to open an issue or submit a PR.

Available Tools

15 tools
nzbget_appendC

Add NZB to queue

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
contentYes
categoryNo
priorityNo
addToTopNo
addPausedNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the action without disclosing behavioral traits like whether it's idempotent, requires authentication, has rate limits, or what happens on failure (e.g., if the NZB is invalid). It mentions adding to a queue but doesn't explain queue behavior or side effects.

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 a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, making it easy to parse quickly without unnecessary elaboration.

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

Completeness2/5

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

Given 6 parameters with 0% schema coverage, no annotations, and no output schema, the description is incomplete. It doesn't explain return values, error conditions, or the tool's role in the broader NZBGet system, making it inadequate for a tool with this complexity.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate but adds no parameter information. It doesn't explain what 'filename', 'content', 'category', 'priority', 'addToTop', or 'addPaused' mean, leaving all 6 parameters undocumented beyond their types in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Add NZB to queue' states the action (add) and resource (NZB), but is vague about what 'NZB' refers to (likely a file format for Usenet downloads) and doesn't distinguish it from siblings like 'nzbget_edit_queue' or 'nzbget_scan'. It provides a basic purpose but lacks specificity.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives like 'nzbget_edit_queue' for modifying existing items or 'nzbget_scan' for scanning. The description implies usage for adding items but doesn't specify prerequisites, exclusions, or context.

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

nzbget_edit_queueD

Edit queue items

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
idsYes
paramNo

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It fails to explain what 'edit' means operationally—such as whether it modifies, deletes, or reorders items; if it requires specific permissions; or what side effects occur. This lack of detail makes the tool's behavior opaque and risky for an agent to invoke.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with just three words, but this brevity leads to under-specification rather than efficiency. While front-loaded, it lacks necessary detail, making it inadequate despite its minimal length. It earns a baseline score for being short but fails to provide useful information.

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

Completeness1/5

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

Given the tool's complexity (3 parameters, no annotations, no output schema, and 0% schema coverage), the description is severely incomplete. It does not compensate for the lack of structured data, leaving the agent without essential information on purpose, usage, behavior, or parameters, making the tool effectively unusable in context.

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

Parameters1/5

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

Schema description coverage is 0%, meaning parameters (command, ids, param) are undocumented in the schema. The description adds no meaning beyond the schema, as it does not explain what these parameters represent, their expected values, or how they interact. For a tool with three parameters, this is a critical gap in understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Edit queue items' is a tautology that essentially restates the tool name 'nzbget_edit_queue'. While it specifies the resource ('queue items'), it lacks a specific verb or details about what editing entails, making the purpose vague and indistinguishable from potential sibling operations like pausing or resuming downloads.

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

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, context, or exclusions, nor does it reference sibling tools like nzbget_pause_download or nzbget_resume_download, which might handle similar queue modifications. This leaves the agent without direction on appropriate usage scenarios.

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

nzbget_historyC

Get download history

ParametersJSON Schema
NameRequiredDescriptionDefault
hiddenNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get download history' implies a read-only operation, but it doesn't specify whether this requires authentication, what format the history is returned in (e.g., list, summary, detailed entries), or if there are any rate limits or side effects. For a tool with zero annotation coverage, this is a significant gap in transparency.

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 extremely concise at three words, with zero wasted language. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place by directly conveying the tool's purpose without redundancy or fluff.

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

Completeness2/5

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

Given the complexity (a read operation with one parameter), lack of annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't explain what 'download history' entails (e.g., recent downloads, all-time history), how results are structured, or the parameter's role. For a tool with minimal structured data, the description should provide more context to be fully helpful.

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

Parameters2/5

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

The input schema has 1 parameter ('hidden' of type boolean) with 0% schema description coverage, meaning the schema provides no documentation for this parameter. The description 'Get download history' adds no meaning about what 'hidden' does—e.g., whether it filters to show hidden items, excludes hidden items, or something else. With low coverage and no compensation in the description, this falls below the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get download history' clearly states the verb ('Get') and resource ('download history'), making the basic purpose understandable. However, it doesn't differentiate this tool from potential sibling tools like 'nzbget_log' or 'nzbget_list_groups', which might also retrieve historical data. The purpose is stated but lacks specificity about what makes this history retrieval unique.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'nzbget_log' (which might retrieve log history) and 'nzbget_list_groups' (which might list current/downloaded groups), there's no indication of whether this tool is for completed downloads, all historical data, or something else. No context, exclusions, or alternatives are mentioned.

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

nzbget_list_groupsB

List download queue groups

ParametersJSON Schema
NameRequiredDescriptionDefault
logEntriesNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation ('List'), but doesn't specify if it requires authentication, has rate limits, returns paginated results, or what the output format is. This is inadequate for a tool with zero annotation coverage.

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 a single, efficient sentence with no wasted words. It's front-loaded and gets straight to the point, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given the complexity (a list operation with no output schema and no annotations), the description is insufficient. It doesn't explain what 'download queue groups' are, how the output is structured, or any behavioral traits. For a tool with such sparse structured data, more context is needed.

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 description mentions no parameters, and with only one parameter ('logEntries') at 0% schema coverage, it doesn't add any semantic information. However, since there's only one parameter and the tool likely functions without it (0 required parameters), the baseline is high. The description doesn't compensate for the coverage gap but doesn't need to heavily for a single optional parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('download queue groups'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'nzbget_history' or 'nzbget_status' that might also list information, so it misses the highest score.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'nzbget_history' or 'nzbget_status'. The description only states what it does, not when it's appropriate, leaving the agent to guess based on tool names alone.

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

nzbget_logD

Get log entries

ParametersJSON Schema
NameRequiredDescriptionDefault
idFromNo
numberOfEntriesNo

TDQS

D1.7/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action 'Get log entries' without any details on permissions, rate limits, side effects, or response format, making it insufficient for a tool with parameters.

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 extremely concise with a single three-word phrase, 'Get log entries', which is front-loaded and has no wasted words. However, this brevity comes at the cost of under-specification.

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

Completeness1/5

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

Given the complexity of having two parameters, no annotations, and no output schema, the description is incomplete. It does not provide enough information for an agent to understand how to use the tool effectively or what to expect in return.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not mention or explain the two parameters (idFrom and numberOfEntries). This leaves the parameters completely undocumented, failing to compensate for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get log entries' restates the tool name 'nzbget_log' in a slightly different phrasing, making it tautological. It specifies the verb 'Get' and resource 'log entries', but lacks specificity about what kind of log entries or how they differ from other logging-related tools like 'nzbget_write_log'.

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

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or comparisons with sibling tools like 'nzbget_history' or 'nzbget_write_log', leaving the agent with no usage direction.

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

nzbget_pause_downloadB

Pause downloads

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the action without behavioral details. It doesn't disclose effects (e.g., whether downloads stop immediately, if progress is saved), permissions needed, or error conditions, which are critical for a control operation like pausing.

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 extremely concise with just two words, front-loading the core action without any wasted text. It's appropriately sized for a simple, parameter-less tool, making it easy to parse quickly.

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

Completeness2/5

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

For a tool that performs a control action (pausing downloads) with no annotations and no output schema, the description is incomplete. It lacks details on behavior, outcomes, or error handling, which are essential for an agent to use it effectively in context with siblings like resume tools.

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 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param info, but this is acceptable as there are no parameters to describe, aligning with the baseline for zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Pause downloads' clearly states the action (pause) and target resource (downloads) with a specific verb. It distinguishes from siblings like 'nzbget_pause_post' (pauses post-processing) and 'nzbget_resume_download' (resumes downloads), though it doesn't explicitly mention these distinctions in the text.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., active downloads), exclusions, or related tools like 'nzbget_resume_download' for resuming, leaving the agent to infer usage from context alone.

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

nzbget_pause_postB

Pause post-processing

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('pause') but doesn't explain what post-processing entails, whether the pause is reversible, if it requires specific permissions, or what the expected outcome is. This leaves significant gaps in understanding the tool's behavior beyond the basic action.

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 'Pause post-processing' is extremely concise—a single phrase with no wasted words. It front-loads the core action and target efficiently, making it easy to grasp immediately without unnecessary elaboration.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for a tool that performs an action like pausing. It doesn't cover behavioral aspects (e.g., reversibility, effects) or usage context, which are crucial for an agent to invoke it correctly in a real-world scenario.

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 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't add parameter details, as there are none to explain, aligning with the baseline for zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Pause post-processing' clearly states the action (pause) and the target (post-processing), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from its sibling 'nzbget_pause_download', which suggests a similar pause action but on a different resource, leaving some ambiguity about sibling distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'nzbget_pause_download' or 'nzbget_resume_post'. It lacks context about prerequisites, such as whether post-processing must be active, or exclusions, making it minimally helpful for decision-making.

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

nzbget_rateC

Set download rate limit

ParametersJSON Schema
NameRequiredDescriptionDefault
limitYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Set download rate limit' implies a configuration change, it doesn't disclose important behavioral traits like whether this is a persistent setting, whether it requires specific permissions, what units the rate limit uses (KB/s, MB/s), or what happens when invalid values are provided. The description is too minimal for a mutation tool with zero annotation coverage.

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 extremely concise at just three words, with zero wasted language. It's front-loaded with the essential action and target. While it may be too brief for completeness, as a standalone statement it's efficiently structured.

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

Completeness2/5

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

Given this is a mutation tool with no annotations, no output schema, and a parameter with 0% schema coverage, the description is incomplete. It doesn't explain what happens after setting the rate limit, what the response looks like, what side effects might occur, or provide enough context for safe and effective use. The extreme brevity leaves too many unanswered questions.

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

Parameters2/5

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

The schema has 0% description coverage, providing no documentation for the 'limit' parameter. The description doesn't compensate for this gap - it doesn't explain what the 'limit' parameter represents, what units it uses, what valid ranges are, or provide any semantic context beyond what's implied by the tool name. For a single required parameter with zero schema documentation, this is inadequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Set download rate limit' clearly states the verb ('Set') and resource ('download rate limit'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like nzbget_pause_download or nzbget_resume_download that also affect download behavior, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There are multiple sibling tools that affect downloads (pause_download, resume_download), but the description doesn't explain when rate limiting is appropriate versus pausing/resuming, or whether this tool should be used before, during, or after downloads.

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

nzbget_resume_downloadC

Resume downloads

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Resume downloads' implies a state change (from paused to active), but it doesn't specify whether this affects all downloads or specific ones, what permissions are required, or any side effects like rate limits. For a mutation tool with zero annotation coverage, this is inadequate.

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 extremely concise with just two words, front-loading the core action ('Resume downloads') without any wasted text. Every word earns its place, making it efficient and easy to parse.

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

Completeness2/5

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

Given the tool's complexity (a mutation operation with no annotations and no output schema), the description is incomplete. It lacks details on what 'resume' entails (e.g., does it resume all downloads or require identifiers?), expected outcomes, or error conditions, leaving significant gaps for an agent to understand the tool fully.

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 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description doesn't add parameter details, which is appropriate since there are none. A baseline of 4 is applied as the description doesn't need to compensate for missing parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Resume downloads' clearly states the action (resume) and target (downloads), which is a specific verb+resource. However, it doesn't distinguish this tool from its sibling 'nzbget_resume_post' which also resumes something (post-processing), so the purpose is clear but lacks sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'nzbget_pause_download' or 'nzbget_resume_post'. It doesn't mention prerequisites (e.g., that downloads must be paused first) or exclusions, leaving the agent to infer usage from context alone.

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

nzbget_resume_postC

Resume post-processing

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states the action ('resume') but lacks details like whether it requires specific permissions, what happens to ongoing processes, or potential side effects. This is inadequate for a mutation tool with zero annotation coverage.

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 extremely concise ('Resume post-processing'), consisting of a single, direct phrase with no wasted words. It's front-loaded and efficiently communicates the core action, though it may be overly brief for clarity.

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

Completeness2/5

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

Given the tool likely performs a mutation (resuming) with no annotations or output schema, the description is incomplete. It lacks essential context such as what 'post-processing' involves, expected outcomes, error conditions, or how it integrates with sibling tools, making it insufficient for safe and effective use.

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 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, but since there are no parameters, this is acceptable, aligning with the baseline for zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Resume post-processing' states the action (resume) and target (post-processing), which is clear but vague. It doesn't specify what 'post-processing' entails or differentiate it from siblings like 'nzbget_resume_download', leaving room for confusion about scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., if post-processing must be paused first), exclusions, or how it relates to siblings such as 'nzbget_pause_post' or 'nzbget_resume_download', offering no usage context.

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

nzbget_scanB

Scan for new NZB files

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. 'Scan for new NZB files' implies a read-only discovery operation, but doesn't specify whether this triggers automatic downloads, how it interacts with the queue, what 'new' means (time-based or status-based), or what happens if no new files are found. For a tool with zero annotation coverage, this is insufficient.

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 extremely concise at just four words ('Scan for new NZB files'), front-loading the core purpose with zero wasted words. Every element earns its place by specifying the action, target, and scope.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description should provide more context about what the scan actually does, what 'new' means operationally, and what the expected output format might be. The current description is too minimal for a tool that presumably interacts with a download queue system and has behavioral implications.

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 tool has zero parameters with 100% schema description coverage, so the baseline is 4. The description doesn't need to explain any parameters, and the schema already fully documents the empty parameter set. No additional parameter information is required or provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Scan for new NZB files' clearly states the action (scan) and target resource (NZB files), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'nzbget_list_groups' or 'nzbget_history' which might also involve file discovery or listing operations.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, timing considerations, or how it differs from related tools like 'nzbget_list_groups' or 'nzbget_history' that might also provide file information.

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

nzbget_server_volumesB

Get download statistics per server

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it 'gets' data, implying a read-only operation, but doesn't specify details like response format, potential errors, or whether it requires authentication. For a tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.

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 a single, clear sentence: 'Get download statistics per server.' It is front-loaded, efficient, and wastes no words, making it easy for an agent to parse and understand quickly without extraneous details.

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

Completeness3/5

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

Given the tool has 0 parameters, no annotations, and no output schema, the description is minimally complete. It states what the tool does but lacks context on output format, error handling, or differentiation from siblings. For a simple read operation, this might be adequate, but it doesn't fully compensate for the missing structured data, leaving room for improvement in guiding the 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?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate, but it could have mentioned if any implicit parameters (like server selection) are involved. Since there are no parameters, a baseline of 4 is applied, as the description adequately covers the tool's function without unnecessary param info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get download statistics per server' clearly states the verb ('Get') and resource ('download statistics per server'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'nzbget_status' or 'nzbget_history', which might also provide statistical information, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'nzbget_status' and 'nzbget_history' that might overlap in providing statistical data, there's no indication of specific contexts, exclusions, or comparisons, leaving the agent to infer usage based on tool names alone.

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

nzbget_statusB

Get current NZBGet server status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a read operation ('Get'), implying it's non-destructive, but doesn't specify authentication requirements, rate limits, error conditions, or what 'status' includes (e.g., uptime, queue state). This is inadequate for a tool with zero annotation coverage.

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 a single, efficient sentence with no wasted words. It's front-loaded with the core action ('Get current NZBGet server status'), making it easy to parse. Every word earns its place by conveying essential information.

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

Completeness3/5

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

Given the tool's low complexity (0 parameters, no output schema, no annotations), the description is minimally complete. It states what the tool does but lacks behavioral details (e.g., response format, error handling). For a simple status-check tool, this is adequate but leaves gaps that could hinder effective use by 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?

The tool has 0 parameters, and schema description coverage is 100% (though trivial since there are no parameters). The description doesn't need to add parameter semantics, so it meets the baseline of 4 for zero-parameter tools. No additional value is required beyond stating the purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('current NZBGet server status'), making the purpose understandable. It distinguishes from siblings like 'nzbget_version' or 'nzbget_log' by focusing on server status rather than version info or logs. However, it doesn't explicitly differentiate from all siblings (e.g., 'nzbget_server_volumes' might also relate to server status), so it's not a perfect 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing (e.g., after certain events), or comparisons to siblings like 'nzbget_version' for version info or 'nzbget_log' for logs. This leaves the agent with minimal context for selection.

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

nzbget_versionB

Get NZBGet version

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It implies a read-only operation ('Get'), but doesn't disclose behavioral traits such as authentication needs, rate limits, or error handling. This is a minimal but adequate disclosure for a simple 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 a single, clear sentence with zero waste. It's front-loaded and appropriately sized for a simple tool, making it highly efficient and easy to parse.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is complete enough to understand the basic purpose. However, it lacks details on output format or behavioral context, which could be helpful but isn't critical for this minimal 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?

The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, earning a baseline score of 4 for not introducing unnecessary complexity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get NZBGet version' clearly states the verb ('Get') and resource ('NZBGet version'), making the purpose specific and understandable. However, it doesn't distinguish this from sibling tools like 'nzbget_status', which might also provide version information, so it's not fully differentiated.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. For example, it doesn't specify if this is for checking software updates or if other tools like 'nzbget_status' might include version data, leaving the agent without usage context.

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

nzbget_write_logD

Write log message

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
textYes

TDQS

D1.8/5.0
Behavior1/5

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

With no annotations provided, the description carries full burden for behavioral disclosure but offers only the basic action. It doesn't specify whether this is a system log, application log, user-facing log, or what happens after writing (e.g., persistence, visibility). No information about permissions, side effects, rate limits, or response behavior is included.

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 extremely concise at just three words, with zero wasted language. It's front-loaded with the core action and resource. While severely under-specified, it achieves maximum efficiency within its limited scope.

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

Completeness1/5

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

For a write operation tool with 2 parameters, 0% schema coverage, no annotations, and no output schema, the description is completely inadequate. It doesn't explain what the tool actually does beyond the basic verb, doesn't clarify parameters, doesn't differentiate from siblings, and provides no behavioral context. This leaves the agent with insufficient information to use the tool effectively.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate but doesn't mention parameters at all. The schema shows two required parameters (kind with enum values, text), but the description provides no context about what these mean, what format 'text' should be, or how 'kind' affects logging behavior. Some minimal value is added by implying a log message is written, but parameter details are completely absent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Write log message' is a tautology that essentially restates the tool name 'nzbget_write_log' with minimal elaboration. While it specifies the action ('write') and resource ('log message'), it doesn't distinguish this tool from its sibling 'nzbget_log' or provide any meaningful context about what type of logging this performs.

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

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. With a sibling tool named 'nzbget_log' that likely reads or displays logs, there's no indication of when to choose write_log over log or other tools. No prerequisites, constraints, or use cases are mentioned.

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 observednzbget_append
    • First observednzbget_edit_queue
    • First observednzbget_history
    • First observednzbget_list_groups
    • First observednzbget_log
    • First observednzbget_pause_download
    • First observednzbget_pause_post
    • First observednzbget_rate
    • First observednzbget_resume_download
    • First observednzbget_resume_post
    • First observednzbget_scan
    • First observednzbget_server_volumes
    • First observednzbget_status
    • First observednzbget_version
    • First observednzbget_write_log

TDQS

C2.9/5.0
Disambiguation4/5

Most tools have clearly distinct purposes targeting different aspects of NZBGet management (queue, history, status, control). There is some potential confusion between pause_download/pause_post and resume_download/resume_post pairs, but the descriptions clarify the download vs. post-processing distinction.

Naming Consistency5/5

All tools follow a consistent 'nzbget_verb_noun' pattern with snake_case throughout. The naming convention is predictable and systematic, making it easy to understand each tool's function at a glance.

Tool Count5/5

15 tools is well-scoped for an NZBGet management server. This provides comprehensive coverage of queue management, status monitoring, control operations, and logging without being overwhelming or sparse.

Completeness4/5

The toolset covers most essential NZBGet operations including queue management (append, edit, list groups), status monitoring (status, version, server volumes), control (pause/resume, rate limiting), and logging. Minor gaps might include more granular queue item manipulation or configuration management, but core workflows are well-covered.

Maintenance

ActivityInactive
ResponsivenessSyncing

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
    A
    quality
    A
    maintenance
    Enables interaction with SABnzbd (usenet) and qBittorrent (torrent) download clients through their APIs. Each client is optional and only tools for configured clients are registered.
    10
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables interaction with the *arr media management suite (Sonarr, Radarr, Lidarr, Prowlarr, SABnzbd) and TRaSH Guides through MCP tools, allowing media library management, searching, and configuration via natural language.
    70
    13
    1
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    Enables managing a SABnzbd Usenet downloader through natural language, including queue control, history browsing, adding downloads, and speed adjustment.
    21
    2
    -

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/aserper/nzbget-mcp'

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