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实例
设置
- 克隆存储库并安装依赖项:
git clone https://github.com/aserper/nzbget-mcp.git
cd nzbget-mcp
npm install- 构建项目:
npm run build- 复制
.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_downloadnzbget_pause_post/nzbget_resume_postnzbget_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。
