项目简介
'turtle_app' 仓库是一个AI驱动的家庭影院助手,其核心之一是 qBittorrent MCP 服务器。该服务器作为中间件,将流行的BT下载客户端qBittorrent的Web API功能封装成符合 Model Context Protocol (MCP) 标准的工具。这使得大型语言模型(LLM)客户端(例如 'turtle_app' 中的下载管理器代理)能够以标准化、可扩展的方式与qBittorrent进行交互,从而实现电影下载、状态查询、文件管理等功能,而无需LLM直接了解qBittorrent的底层API细节。
主要功能点
- 托管qBittorrent功能为MCP工具: 将qBittorrent的各种API(如列出下载、搜索资源、添加下载、暂停/恢复/删除下载、获取详情、获取配置)封装为标准化的MCP工具(例如 'qb_list_torrents', 'qb_search_torrents' 等)。
- 标准化数据交互: 使用Pydantic模型清晰定义了每个MCP工具的输入参数和输出结果,确保了数据格式的统一性和可预测性,便于LLM客户端理解和使用。
- HTTP传输协议支持: MCP服务器通过HTTP协议与客户端通信,提供了广泛的兼容性。
- 安全认证: 支持与qBittorrent Web API的用户名/密码认证,确保对下载客户端操作的安全性。
安装步骤
此qBittorrent MCP服务器通常作为 'turtle_app' 整体部署的一部分,通过Docker Compose进行部署,从而简化了依赖管理。
-
克隆仓库:
git clone https://github.com/elisarchod/turtle_app.git cd turtle_app -
配置环境变量: 复制 '.env.example' 文件到项目根目录并重命名为 '.env'。编辑 '.env' 文件,务必配置以下用于MCP服务器连接实际qBittorrent实例的凭证:
- 'TURTLEAPP_QB_QBITTORRENT_URL': qBittorrent Web API的实际URL(例如 'http://qbittorrent:8080' 如果在Docker Compose内部,或 'http://localhost:8080' 如果本地运行)。
- 'TURTLEAPP_QB_QBITTORRENT_USERNAME': qBittorrent Web UI的用户名。
- 'TURTLEAPP_QB_QBITTORRENT_PASSWORD': qBittorrent Web UI的密码。
'.env' 示例 (仅MCP相关部分):
# ... 其他API Keys ... # qBittorrent MCP Server connects to THIS qBittorrent instance TURTLEAPP_QB_QBITTORRENT_URL=http://qbittorrent:8080 TURTLEAPP_QB_QBITTORRENT_USERNAME=admin TURTLEAPP_QB_QBITTORRENT_PASSWORD=adminadmin # ... 其他设置 ... -
使用Docker Compose启动 (推荐): 进入 'build' 目录并运行 Docker Compose 命令。这将启动所有必要的服务,包括 'turtle_app' 主应用、qBittorrent MCP服务器和实际的qBittorrent实例。
cd build docker-compose up -d注意: 此时,qBittorrent MCP服务器将监听在 'http://localhost:8001/mcp' (这是Docker Compose对外暴露的端口)。qBittorrent Web UI将监听在 'http://localhost:15080'。
服务器配置
MCP客户端(如 'turtle_app' 主应用)连接到此qBittorrent MCP服务器所需的JSON格式配置信息如下。此配置通常由客户端应用程序维护,并用于初始化其MCP连接。
{ "server_name": "qbittorrent", "command": "python", "args": [ "mcp-servers/qbittorrent-mcp/src/mcp_qbittorrent/server.py", "--host", "0.0.0.0", "--port", "8000" ], "endpoint": "http://localhost:8001/mcp", "description": "一个提供qBittorrent下载管理功能的MCP服务器。", "transport": "streamable_http" }
配置参数注释:
- 'server_name': MCP服务器的唯一标识名称,客户端通过此名称引用和发现服务器。
- 'command': 启动MCP服务器进程的命令行程序,通常是 'python' 或其他脚本解释器。
- 'args': 传递给 'command' 的参数列表,用于指定服务器脚本路径、监听地址和端口等。这里的 '0.0.0.0' 表示监听所有网络接口,'8000' 是容器内部的监听端口。
- 'endpoint': MCP客户端实际连接到MCP服务器的URL。在Docker Compose部署中,这通常是宿主机映射到容器的公开端口(例如 'http://localhost:8001/mcp')。
- 'description': MCP服务器的简短功能描述,有助于客户端了解其提供的能力。
- 'transport': 客户端与服务器通信使用的传输协议,'streamable_http' 表示基于HTTP的流式传输。
基本使用方法
此qBittorrent MCP服务器本身不提供直接的用户界面,其设计目的是作为后端服务,供LLM客户端调用。LLM客户端会通过JSON-RPC协议发送请求到其 '/mcp' 端点,调用其暴露的MCP工具。
例如,'turtle_app' 中的下载管理器代理会通过调用 'qb_search_torrents' 工具来搜索用户指定的电影,并通过 'qb_list_torrents' 工具来获取当前下载的状态和进度。用户通过 'turtle_app' 的 '/chat' 接口与AI助手交互,AI助手(作为一个MCP客户端)会根据用户需求间接利用此MCP服务器提供的强大功能。
信息
分类
生产力应用