Skip to main content
Glama
revelri

lutris-source-mcp

by revelri

lutris-source-mcp

MCP-конвейер источников для lutris-mcp. Замыкает цикл поиск -> загрузка -> установка: выполняет поиск в Prowlarr, передает задачу в qBittorrent, опрашивает состояние до завершения, классифицирует полученное дерево файлов и возвращает путь, который install_from_yaml или install_from_directory из lutris-mcp используют напрямую.

Инструменты

Инструмент

Что делает

prepare_install_source(query, ...)

Композитный инструмент. Поиск → загрузка → опрос → классификация → возврат пути. mutates: true

cancel_pipeline(infohash)

Прерывает текущую загрузку. mutates: true

stop_seeding(infohash)

Удаляет из qBittorrent без удаления файлов с диска. mutates: true

pipeline_health()

Проверяет доступность Prowlarr + qBittorrent; выводит настроенные индексаторы. mutates: false

setup(...)

Записывает ~/.config/lutris-source-mcp/config.toml (при первом запуске). mutates: true

Ранжирование по нескольким трекерам

Prowlarr объединяет публичные (1337x, TPB и т.д.) и приватные (Gazelle: RED, OPS, GGn) трекеры в одном поиске. Композитный инструмент ранжирует их по следующему ключу:

(indexer_priority,                          # 1 = highest, 50 = lowest
 freeleech_first if freeleech_only else 0,
 -seeders,
 size_bytes)                                # smaller wins as tiebreak

indexer_priority берется из поля priority индексатора Prowlarr — установите его в интерфейсе Prowlarr для каждого трекера (например, приватные = 1, публичные = 25). MCP учитывает это значение, а не создает отдельный рейтинг доверия.

Гигиена Gazelle

Установите freeleech_only=True (или policy.freeleech_only = true в TOML), чтобы отсеивать результаты, не являющиеся freeleech, из индексаторов Gazelle перед ранжированием. Публичные результаты проходят без изменений (там понятие freeleech не имеет смысла). Аутентификация остается в интерфейсе Prowlarr; MCP никогда не видит учетные данные Gazelle.

Обнаружение зависаний

Каждый опрос выводит в stdout сигнал активности:

[prepare_install_source] deadbeef dl=12345/100000 (12.3%) peers=8 rate=215.4KiB/s elapsed=14s

Если объем downloaded не увеличивается в течение stall_timeout_seconds (по умолчанию 5 минут), инструмент возвращает {ok: false, reason: "stalled"}, чтобы агент мог выбрать другого кандидата.

Конфигурация

~/.config/lutris-source-mcp/config.toml:

[prowlarr]
base_url = "http://localhost:9696"
api_key  = "..."

[qbittorrent]
base_url     = "http://localhost:8080"
username     = "admin"
password     = "..."
download_dir = "/mnt/games/Downloads"

[policy]
blocklist      = ["fitgirl"]
allow_indexers = []
max_size_gb    = 50
freeleech_only = false
min_seeders    = 1

Для каждого ключа предусмотрена возможность переопределения через переменную окружения LUTRIS_SOURCE_MCP_<SECTION>_<KEY> (например, LUTRIS_SOURCE_MCP_PROWLARR_API_KEY, LUTRIS_SOURCE_MCP_POLICY_FREELEECH_ONLY).

Сопутствующие инструменты

Для проверки Prowlarr/qBittorrent в режиме только для чтения установите jmagar/prowlarr-mcp и pickpppcc/qbittorrent-mcp. Три небольших специализированных сервера, без дублирования функций.

Лицензия

MIT.

Install Server
A
license - permissive license
B
quality
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Fleet discovery for the cyanheads MCP ecosystem — semantic search + install snippets.

  • Turn a GitHub repo or docs site into agent-ready context: pack it or search it, over MCP.

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/revelri/lutris-source-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server