FR Torrent MCP Server
使用说明(Markdown 格式)
-
项目简介
- 该项目实现了一个 MCP 服务器,暴露以下工具供 MCP 客户端调用:search_torrents、get_torrent、get_magnet_link、download_torrent_file。服务器底层通过 FR Torrent wrapper 与外部提供商接口(如 YggTorrent、LaCale 等)对接,聚合结果并返回给客户端。同时提供 FastAPI 服务器作为替代 HTTP API 的访问方式,并支持多种传输模式(stdio、SSE、streamable-http、fastapi)。
-
主要功能点
- MCP 服务器:定义并暴露工具供 MCP 客户端调用,处理请求并返回标准化的响应。
- 数据聚合与封装:通过 Wrapper 的 FrTorrentApi 聚合多源 Torrents,并将结果整理成 Torrent 模型。
- 多传输模式:支持 stdio、SSE、streamable-http 与 FastAPI HTTP 接入。
- 快速测试:包含针对 MCP 服务器的测试用例,验证常用工具的返回内容。
-
安装步骤
- 先安装 Python 3.10+ 及依赖(推荐使用虚拟环境)。
- 安装包(若发布到 PyPI):
- pip install fr-torrent-search-mcp
- 配置环境变量(示例,需按实际环境设置):
- YGG_ENABLE、YGG_DOMAIN、YGG_LOCAL_API、YGG_USERNAME、YGG_PASSWORD
- FOLDER_TORRENT_FILES 指定默认的 torrent 文件保存目录
- 运行 MCP 服务器(默认模式为 stdio,亦可通过参数选择 SSE、streamable-http、fastapi 等传输模式):
- 直接运行服务器:python -m fr_torrent_search
- 通过本地开发运行(可选,使用 uvicorn 启动 FastAPI 版本):
- uvicorn fr_torrent_search.fastapi_server:app
-
服务器配置(MCP 客户端需要的连接信息示例,JSON 格式,说明如下)
- serverName: 本 MCP 服务器在客户端配置中的名称
- command: 启动服务器的命令(如 Python 解释器及模块)
- args: 启动参数(包含传输模式等设置) 说明:MCP 客户端在连接时通常需要给出服务器的传输方式与入口点信息;本仓库提供了 stdio、sse、streamable-http、fastapi 等模式,客户端可以根据需要选择对应该模式的入口。以下为演示用文本描述,请按实际部署替换为可执行的 JSON 配置。
配置示例(文本描述):
- serverName: "fr-torrent-search-mcp"
- command: "python"
- args: ["-m", "fr_torrent_search"] 以及传输模式的具体入口,例如 "-m fr_torrent_search --mode sse" 或通过 SSE 的 URL 进行连接 说明:该配置用于 MCP 客户端在启动时知道如何启动并连接到 MCP 服务器。实际使用中,客户端的 JSON 配置将包含 serverName、command、args 等字段,以便自动化启动与连接。MCP 客户端并不强制要求读取此配置中的脚本实现细节,更多的是描述服务器的启动命令和参数。
-
基本使用方法
- 通过 MCP 客户端调用工具
- search_torrents: 输入用户意图、关键词与最大返回数量,获取聚合结果的前若干条。
- get_torrent: 通过 torrent_id 获取对应的磁力链接或 .torrent 文件路径。
- get_magnet_link: 通过 torrent_id 获取磁力链接。
- download_torrent_file: 通过 torrent_id 下载并返回 .torrent 文件名或路径。
- 同时可以通过 FastAPI HTTP 接口进行测试与调用(如直接访问 /torrent/search、/torrent/{id} 等端点)。
- 通过 MCP 客户端调用工具
-
运行与测试
- 本仓库包含针对 MCP 服务器的测试,用于验证 search_torrents、get_torrent、get_magnet_link、download_torrent_file 等工具的基本行为。
- 生产环境中请确保 YggTorrent/LACale 等外部服务可用,且环境变量正确设置,以确保 API 请求能够返回有效的种子信息。