Torrent Search MCP Server

使用说明(Markdown 格式)

  • 项目简介

    • 这是一个基于 MCP(Model Context Protocol)的后端服务器实现,围绕 torrent 搜索与获取磁力链接等功能,提供资源、工具与数据格式,用于与 MCP 客户端进行统一的 JSON-RPC 交互。
  • 主要功能点

    • 资源(Resources):暴露数据源列表,便于 MCP 客户端读取可用的数据源。
    • 工具(Tools):提供 search_torrents 与 get_torrent 两个工具,支持在多源环境下进行 torrents 的检索与获取磁力链接或 torrent 文件。
    • Prompts/渲染(Prompts):框架内置对话能力与数据结构,方便后续扩展。
    • 多传输模式:支持 stdio、SSE、streamable-http、FastAPI 等传输方式,以适配不同的客户端场景。
    • 会话与缓存:内部实现了简单的缓存机制,确保对同一 torrent 的重复查询更高效。
    • 安全与集成:通过环境变量配置、依赖管理与可扩展的后端封装,方便在大型 LM 应用中接入。
  • 安装步骤

    • 需要 Python 3.10+ 环境。
    • 安装依赖并获取源码(仓库提供的代码即为 Server 实现,不需要额外的客户端)。
    • 运行 MCP 服务器的常用方法(两种典型场景):
      • 以标准输入/输出(stdio)模式运行:通过调用相应的入口脚本,在子进程中与 MCP 客户端进行通信。
      • 以 SSE/Streamable-HTTP/FastAPI 等传输模式运行:通过 mcp.run 进行启动(具体模式在启动时通过 transport 参数指定)。
  • 服务器配置(MCP 客户端配置 JSON 示例说明) 说明:MCP 客户端需要的核心信息包括服务器名称、启动命令及参数等。以下给出可直接参考的配置字段示例,请按实际部署环境调整,不在 MCP 客户端执行的代码块里直接使用。

    示例配置(JSON 形式文本,不作为代码块直接展示): { "mcpServers": { "torrent-search-mcp-stdio": { "name": "torrent-search-mcp-stdio", "command": "python", "args": ["-m", "torrent_search"], "description": "通过子进程执行,使用标准输入/输出进行 MCP 通信。" }, "torrent-search-mcp-sse": { "name": "torrent-search-mcp-sse", "serverUrl": "http://127.0.0.1:8000/sse", "description": "通过 SSE 传输模式与 MCP 客户端通信。" }, "torrent-search-mcp-fastapi": { "name": "torrent-search-mcp-fastapi", "serverUrl": "http://127.0.0.1:8000/mcp", "description": "通过 FastAPI 提供的 MCP 接口进行通信。" } } }

    说明要点

    • 服务器名称(name)应唯一,便于在 MCP 客户端配置中识别。
    • command/args 仅在 stdio 模式下需要,其他传输模式通过 serverUrl 进行连接。
    • 具体运行命令会根据部署方式(本地开发、容器化等)有所差异,请结合 README 的快速启动与 CLI 支持进行配置。
    • 客户端不需要编写服务器端逻辑,只需按照示例配置连接到服务器即可。
  • 基本使用方法

    • 启动服务器
      • 以 stdio 模式运行:在本地直接启动服务器进程(如 python -m torrent_search 或 uv run -m torrent_search,视具体入口而定)。
      • 以 SSE/HTTP 模式运行:在服务器启动后,通过 MCP 客户端配置 serverUrl 与传输方式进行连接。
    • 使用 MCP 客户端调用
      • 调用 search_torrents 工具,传入 user_intent 与 query,获取排序后的前若干条结果。
      • 调用 get_torrent 工具,传入 torrent_id,获取对应的 magnet 链接或 torrent 文件路径。
    • 运行环境与依赖
      • 需要网络访问以进行 torrent 源的检索,且需要对 ThePirateBay、Nyaa、YggTorrent 等源进行抓取的能力。
      • 如需使用 FR 源,需要额外的 fr_torrent_api 依赖及相应配置。
  • 维护与扩展

    • 资源与工具均可扩展,未来可接入更多数据源、增加更多工具、或改进提示模板与输出格式。

服务器信息