rutracker_mcp
by Lqueed
README.md
# rutracker_mcp
**MCP-сервер для [RuTracker](https://rutracker.org)** — поиск раздач и скачивание `.torrent`-файлов прямо из Claude (Desktop / Code / API) и любых MCP-совместимых клиентов.
> ⚠️ **Это форк.** Основан на [`CarrySauce/rutracker-mcp-server`](https://github.com/carrysauce/rutracker-mcp-server) (который, в свою очередь, форк [`notnooblord/rutracker-mcp-server`](https://github.com/notnooblord/rutracker-mcp-server)), на FastMCP + [`py-rutracker-client`](https://github.com/carrysauce/py_rutracker). Оригинальный MCP-сервер (`server.py`) и набор инструментов сохранены без изменений. Форк добавляет **обход блокировок для доступа из РФ**.
## Зачем форк
Оригинал логинится обычным POST на `login.php`. В российских условиях это не работает:
1. **Cloudflare Managed Challenge.** RuTracker закрыт анти-бот-проверкой Cloudflare; простой HTTP-клиент (`aiohttp`) её не проходит и получает `403`.
2. **Блокировка РКН + привязка `cf_clearance` к IP.** Сайт заблокирован у российских провайдеров, а токен Cloudflare привязан к IP и User-Agent.
### Что добавлено
| Файл | Назначение |
|---|---|
| `cookie_auth.py` | `CookieRuTrackerClient`: логин **по cookie** (обход Cloudflare) + **бинд сокета к VPN-адаптеру** (принудительный выход через VPN, а не через РФ-провайдера) |
| `get_cookies_pr.py` | Добыча cookie (`bb_session` + `cf_clearance`) через **настоящий Chrome под [patchright](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright)** — стелс-браузер проходит Cloudflare на чистом VPN-IP |
| `test_cookie.py` | Проверка «логин по cookie + поиск» |
Подробнее — в [docs/USER_GUIDE_RU.md](docs/USER_GUIDE_RU.md) (для людей) и [AGENTS.md](AGENTS.md) (для AI-агентов).
## Как это работает
```
get_cookies_pr.py --(patchright + настоящий Chrome через VPN)--> проходит Cloudflare, логинится
--> cookies.json (bb_session, cf_clearance, User-Agent)
server.py (MCP) --> CookieRuTrackerClient:
• вливает cookies.json в aiohttp-сессию (без login.php)
• биндит сокет к IP TAP-адаптера VPN (тот же IP, что у Chrome)
• тот же User-Agent -> cf_clearance валиден
```
## Требования
- **Python 3.13+**
- **Аккаунт RuTracker**
- **VPN с TAP-адаптером** (протестировано на **ZoogVPN**). Из РФ — обязательно.
- **Google Chrome** (для добычи cookie через patchright)
## Быстрый старт
```bash
git clone https://github.com/Lqueed/rutracker_mcp.git
cd rutracker_mcp
python -m venv .venv
.venv/Scripts/python -m pip install -r requirements.txt
.venv/Scripts/python -m pip install patchright psutil
.venv/Scripts/python -m patchright install chromium
cp .env.example .env # вписать RUTRACKER_LOGIN и RUTRACKER_PASSWORD
# включить VPN, затем добыть cookie:
.venv/Scripts/python get_cookies_pr.py
# проверить:
.venv/Scripts/python test_cookie.py # -> "УСПЕХ: получено результатов: N"
```
### Подключение к Claude Code
```bash
claude mcp add rutracker --scope user \
--env HTTP_PROXY= --env HTTPS_PROXY= \
-- /abs/path/.venv/Scripts/python.exe /abs/path/server.py --transport stdio
```
Пустые `HTTP_PROXY/HTTPS_PROXY` — чтобы python не ходил через возможный системный прокси.
## Инструменты MCP
| Инструмент | Описание |
|---|---|
| `search_torrents` | Поиск по ключевым словам на странице (50 результатов), с magnet-ссылками |
| `search_all_pages` | Параллельный поиск по нескольким страницам |
| `get_torrent_info` | Полное описание раздачи (качество, кодек, текст поста, magnet) |
| `download_torrent` | Скачать `.torrent` по `topic_id` (MCP-вложение) |
| `get_topic_url` | URL темы и прямой URL скачивания по `topic_id` |
Сервер отдаёт **только `.torrent` и magnet-ссылки**, не сам контент — для загрузки используйте BitTorrent-клиент (qBittorrent, Transmission).
## Настройка VPN-бинда
Клиент автоматически ищет адаптер, чьё имя содержит `zoog`. Переопределить:
- `RUTRACKER_VPN_ADAPTER` — подстрока имени адаптера (по умолчанию `zoog`);
- `RUTRACKER_BIND_IP` — явный IP для привязки сокета.
Если оба не заданы и адаптер не найден — бинд отключается (python пойдёт обычным маршрутом).
## Безопасность
`.env`, `cookies.json`, `.chrome-profile/` содержат креды/сессию и **исключены из git** (`.gitignore`). Не коммитьте их.
## Благодарности / лицензия
Оригинальные MCP-сервер и библиотека — [CarrySauce](https://github.com/carrysauce), [notnooblord](https://github.com/notnooblord). Лицензия наследуется от оригинального проекта.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues