Interact with the rqbit torrent client API. Requires a running rqbit instance.
This repository provides a Python API wrapper and an MCP (Model Context Protocol) server for the rqbit torrent client. It allows for easy integration into other applications or services.
rqbit
torrent client.list_torrents
: List all torrents and their details.download_torrent
: Download a torrent from a magnet link or a file.get_torrent_details
: Get detailed information about a specific torrent.get_torrent_stats
: Get stats/status of a specific torrent.pause_torrent
: Pause a torrent.start_torrent
: Start a torrent.forget_torrent
: Forget a torrent, keeping the files.delete_torrent
: Delete a torrent and its files.uv
(for local development)This application requires the URL of your rqbit
instance.
Set Environment Variable: Copy .env.example
to .env
in your project's root directory and edit it with your settings. The application will automatically load variables from .env
:
RQBIT_URL
: The URL of the rqbit instance (Default: http://localhost:3030
).RQBIT_HTTP_BASIC_AUTH_USERPASS
: If setup in rqbit instance.RQBIT_HTTP_BASIC_AUTH_USERPASS
: The username and password for basic authentication, in the format username:password
.RQBIT_HTTP_API_LISTEN_ADDR
: The listen address for the HTTP API (e.g., 0.0.0.0:3030
).RQBIT_UPNP_SERVER_ENABLE
: Enables or disables the UPnP server (e.g., true
or false
).RQBIT_UPNP_SERVER_FRIENDLY_NAME
: The friendly name for the UPnP server (e.g., rqbit-media
).RQBIT_EXPERIMENTAL_UTP_LISTEN_ENABLE
: Enables or disables the uTP listener (Default: false
).Choose one of the following installation methods.
This method is best for using the package as a library or running the server without modifying the code.
pip install rqbit-mcp
.env
file in the directory where you'll run the application and add your rqbit
URL:RQBIT_URL=http://localhost:3030
python -m rqbit_client
This method is for contributors who want to modify the source code.
Using uv
:
git clone https://github.com/philogicae/rqbit-mcp.git
cd rqbit-mcp
uv
:uv sync --locked
cp .env.example .env
uv run -m rqbit_client
This method uses Docker to run the server in a container. compose.yaml includes rqbit torrent client.
git clone https://github.com/philogicae/rqbit-mcp.git
cd rqbit-mcp
cp .env.example .env
docker compose up --build -d
docker logs rqbit-mcp -f
import asyncio
from rqbit_client.wrapper import RqbitClient
async def main():
# Read the RQBIT_URL from the .env file or fallback to default (http://localhost:3030)
async with RqbitClient() as client:
# Download a torrent
magnet_link = "magnet:?xt=urn:btih:..."
torrent = await client.download_torrent(magnet_link)
print(torrent)
# Check status
status = await client.get_torrent_stats(torrent["id"])
print(status)
# List torrents
torrents = await client.list_torrents()
print(torrents)
if __name__ == "__main__":
asyncio.run(main())
from rqbit_client import RqbitMCP
RqbitMCP.run(transport="sse") # 'stdio', 'sse', or 'streamable-http'
Usable with any MCP-compatible client. Available tools:
list_torrents
: List all torrents.download_torrent
: Download a torrent via magnet link or file path.get_torrent_details
: Get details of a specific torrent.get_torrent_stats
: Get stats/status of a specific torrent.pause_torrent
: Pause a torrent.start_torrent
: Start a torrent.forget_torrent
: Forget a torrent, keeping the files.delete_torrent
: Delete a torrent and its files.Configuration:
{
"mcpServers": {
...
# with stdio (only requires uv)
"rqbit-mcp": {
"command": "uvx",
"args": [ "rqbit-mcp" ],
"env": {
"RQBIT_URL": "http://localhost:3030", # (Optional) Default rqbit instance URL
"RQBIT_HTTP_BASIC_AUTH_USERPASS": "username:password" # (Optional) Only if setup in rqbit instance
}
},
# with docker (only requires docker)
"rqbit-mcp": {
"command": "docker",
"args": [ "run", "-i", "-p", "8000:8000", "-e", "RQBIT_URL=http://localhost:3030", "-e", "RQBIT_HTTP_BASIC_AUTH_USERPASS=username:password", "philogicae/rqbit-mcp:latest", "rqbit-mcp" ]
},
# with sse transport (requires installation)
"rqbit-mcp": {
"serverUrl": "http://127.0.0.1:8000/sse"
},
# with streamable-http transport (requires installation)
"rqbit-mcp": {
"serverUrl": "http://127.0.0.1:8000/mcp"
},
...
}
}
See CHANGELOG.md for a history of changes to this project.
Contributions are welcome! Please open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
Interact with Hacker News through the Model Context Protocol (MCP), designed for Claude Desktop.
Send HTTP requests to webhooks with dynamic parameters.
An ntfy MCP server for sending/fetching ntfy notifications to your self-hosted ntfy server from AI Agents 📤 (supports secure token auth & more - use with npx or docker!)
An AI voice toolkit with TTS, voice cloning, and video translation, now available as an MCP server for smarter agent integration.
Connects AI models to WhatsApp Web using the Model Context Protocol (MCP) to automate and enhance interactions.
Sends emails using the Resend API. Requires a Resend API key.
integrates with Bluesky API to query and search feeds and posts.
Network access with the ability to run commands like ping, traceroute, mtr, http, dns resolve.
Send notifications to Slack channels using webhook URLs.
Connect your AI agents to Google-Meet, Zoom & Microsoft Teams through tl;dv