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 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.
An MCP server for Claude that integrates with the Evolution API for WhatsApp automation.
Send emails via SMTP. Requires SMTP server credentials to be configured through environment variables.
Enhanced MCP server for Twitter/X with OAuth 2.0 support, v2 API media uploads, smart v1.1 fallbacks, and comprehensive rate limiting. Post tweets with text/media, search, and delete tweets programmatically.
Connect your AI agents to Google-Meet, Zoom & Microsoft Teams through tl;dv
A server for interacting with the Beeper communication network.
MCP server acting as an interface to the Facebook Ads, enabling programmatic access to Facebook Ads data and management features.
Create and publish unlimited podcast shows and episodes with ELEMENT.FM
Send push notifications via the Pushinator service. Requires an API token from your Pushinator account.
An open-source messaging server for client-to-client communication using MCP HTTP Streamable messaging.
Sends desktop notifications with sound when agent tasks are completed.