NZBGet MCP服务器

为NZBGet提供的MCP服务器,通过自然语言控制Usenet下载,适用于LLM客户端。

  • by aserper
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 aserper/nzbget-mcp

使用说明

NZBGet MCP服务器

MCP(模型上下文协议)服务器 NZBGet 将NZBGet API功能公开为LLM客户端可用的MCP工具。

通过Claude和其他MCP兼容客户端使用自然语言控制Usenet下载。

特性

  • 15个MCP工具 用于完全控制NZBGet
  • 队列管理:列表、添加、暂停、恢复、删除下载
  • 历史跟踪:查看已完成和下载失败
  • 速度控制:设置下载速率限制
  • 状态监控:实时服务器状态、磁盘空间、队列信息
  • 日志记录:访问和写入NZBGet日志
  • JSON-RPC客户端的TypeScript实现
  • Stdio传输与Claude Desktop兼容

需求

  • Node.js 18+
  • 启用RPC的正在运行的NZBGet实例

设置

  1. 克隆存储库并安装依赖项:
git clone https://github.com/aserper/nzbget-mcp.git
cd nzbget-mcp
npm install
  1. 构建项目:
npm run build
  1. 复制 .env.example 到 .env 并设定你的价值观:
cp .env.example .env

编辑 .env:

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

运行MCP服务器

npm start

或者直接:

node dist/index.js

测试

# Run all tests
npm test

# Run with coverage
npm run test:coverage

# Run tests in watch mode
npm run test:ui

建筑

此MCP服务器使用模块化架构:

  • src/tools/*.ts -单个工具实现
  • src/tools/index.ts -工具注册和发现
  • src/utils/errors.ts -错误处理实用程序
  • src/__tests__/mocks/ -测试夹具和模拟件

所有15个工具都是自包含的模块,在导入时进行注册。

配置

变量 描述 默认值
NZBGET_HOST NZBGet主机名 localhost
NZBGET_PORT NZBGet RPC端口 6789
NZBGET_USERNAME NZBGet用户名 -
NZBGET_PASSWORD NZB设置密码 -
NZBGET_USE_HTTPS 使用HTTPS false

Claude桌面配置

添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS或其他平台上的同等平台上):

{
  "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 -t nzbget-mcp .

跑

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

外露工具

状态和信息

  • nzbget_status -获取服务器状态(速度、队列大小、磁盘空间)
  • nzbget_version -获取NZBGet版本
  • nzbget_server_volumes -获取每台服务器的下载统计信息

下载队列

  • nzbget_list_groups -列出队列中的所有下载
  • nzbget_append -将NZB文件添加到队列
  • nzbget_edit_queue -编辑队列(暂停、恢复、删除、设置优先级)

历史

  • nzbget_history -查看下载历史记录

控制

  • nzbget_pause_download / nzbget_resume_download
  • nzbget_pause_post / nzbget_resume_post
  • nzbget_rate -设置下载速度限制(KB/s)
  • nzbget_scan -扫描新的NZB文件

日志记录

  • nzbget_log -获取日志条目
  • nzbget_write_log -编写自定义日志消息

用法示例

"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"

发展

# Install dependencies
npm install

# Build
npm run build

# Watch mode
npm run dev

# Lint
npm run lint

# Type check
npm run typecheck

许可证

麻省理工学院

贡献

欢迎投稿!请随时打开问题或提交PR。