lutris-source-mcp
Provides a pipeline to search for game sources, download them via Prowlarr and qBittorrent, and prepare them for installation into Lutris, supporting game installation workflows.
Provides tools to interact with qBittorrent for managing torrent downloads, including adding torrents, monitoring download progress, and stopping seeding after installation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@lutris-source-mcpfind and prepare Cyberpunk 2077 for installation"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
lutris-source-mcp
Source pipeline MCP for lutris-mcp.
Closes the find -> download -> install loop: searches Prowlarr, hands off
to qBittorrent, polls until done, classifies the resulting tree, returns a
path that lutris-mcp's install_from_yaml or install_from_directory
consumes directly.
Tools
Tool | What it does |
| The composite. Search → grab → poll → classify → return path. mutates: true |
| Abort an in-flight grab. mutates: true |
| Remove from qBittorrent without deleting on-disk files. mutates: true |
| Verify Prowlarr + qBittorrent reachable; surface configured indexers. mutates: false |
| Write |
Multi-tracker ranking
Prowlarr aggregates public (1337x, TPB, etc.) and private (Gazelle: RED, OPS, GGn) trackers in one search. The composite ranks across them with this key:
(indexer_priority, # 1 = highest, 50 = lowest
freeleech_first if freeleech_only else 0,
-seeders,
size_bytes) # smaller wins as tiebreakindexer_priority comes from the Prowlarr indexer's priority field — set
it in Prowlarr's UI per tracker (e.g. private = 1, public = 25). The MCP
respects it rather than inventing a separate trust ranking.
Gazelle hygiene
Pass freeleech_only=True (or set policy.freeleech_only = true in TOML)
to drop non-freeleech results from Gazelle indexers before ranking. Public
results pass through unchanged (freeleech is meaningless there). Auth
itself stays in Prowlarr's UI; the MCP never sees Gazelle credentials.
Stall detection
Each poll prints a stdout heartbeat:
[prepare_install_source] deadbeef dl=12345/100000 (12.3%) peers=8 rate=215.4KiB/s elapsed=14sIf downloaded doesn't increase for stall_timeout_seconds (default 5min),
the tool returns {ok: false, reason: "stalled"} so the agent can pick
another candidate.
Config
~/.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 = 1Every key has a LUTRIS_SOURCE_MCP_<SECTION>_<KEY> env override
(e.g. LUTRIS_SOURCE_MCP_PROWLARR_API_KEY, LUTRIS_SOURCE_MCP_POLICY_FREELEECH_ONLY).
Companions
For read-only Prowlarr/qBittorrent inspection, install
jmagar/prowlarr-mcp and
pickpppcc/qbittorrent-mcp
alongside. Three small focused servers, no overlap.
License
MIT.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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