C411 MCP Server
An MCP (Model Context Protocol) server for searching torrents on c411.org, fetching torrent metadata and comments, and downloading .torrent files.
Table of Contents
Features
- Search torrents on c411.org
- Get detailed torrent metadata by
infoHash - Get paginated torrent comments by
infoHash - Download
.torrentfiles byinfoHash - Reuse authenticated sessions automatically
- Retry expired auth with a small delay and bounded retry count
- Distinguish missing credentials, invalid credentials, and maintenance-mode failures
- Return structured search results with titles, sizes, seed counts, and
infoHashwhen available
Installation
npm install
Usage
Running the server
The server uses stdio transport by default:
npm run dev
Or build and run:
npm run build
npm start
Authentication
C411.org requires authentication to access torrent listings. To enable login:
-
Set the following environment variables:
C411_USERNAME: Your c411.org usernameC411_PASSWORD: Your c411.org password
-
The server will automatically log in and maintain the session.
Without credentials, the server may not be able to retrieve search results.
Auth failure behavior
The server tries to return a more specific error when authentication fails:
- Missing credentials: asks for
C411_USERNAMEandC411_PASSWORD - Invalid credentials: reports that the username/password were rejected
- Maintenance mode: reports that c411.org is temporarily unavailable
- Network or timeout issues: returns a sanitized transport error without logging credentials
HTTP requests time out after 10 seconds.
MCP Client Configuration
To use this server with an MCP client (like Claude Desktop), add to your client configuration:
{
"mcpServers": {
"c411": {
"command": "node",
"args": ["/path/to/c411-mcp-server/build/index.js"],
"env": {
"C411_USERNAME": "your_username",
"C411_PASSWORD": "your_password"
}
}
}
}
For OpenCode, configure the server in your OpenCode config under mcp using a local MCP entry:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"c411": {
"type": "local",
"command": ["node", "/path/to/c411-mcp-server/build/index.js"],
"enabled": true,
"environment": {
"C411_USERNAME": "your_username",
"C411_PASSWORD": "your_password"
}
}
}
}
OpenCode documents MCP servers under the mcp key, with local servers using type: "local", a command array, and environment for env vars.
You can also add it from the OpenCode CLI:
opencode mcp add
Then choose a local MCP server and enter the equivalent values:
- name:
c411 - type:
local - command:
node /path/to/c411-mcp-server/build/index.js - environment:
C411_USERNAME=your_usernameC411_PASSWORD=your_password
Afterward, you can verify it was added with:
opencode mcp list
Tools
search_c411
Search for torrents on c411.org.
Parameters:
query(string, required): Search query, trimmed, 1 to 200 characterssortBy(string, optional): Sort criteria. One ofrelevance,seeders,leechers,size,createdAt,name,completions,comments,category. Defaults torelevance.sortOrder(string, optional): Sort order. One ofasc,desc. Defaults todesc.page(number, optional): Result page number. Defaults to1.perPage(number, optional): Number of results per page. Defaults to25, maximum100.
Returns: List of torrent results with titles, sizes, seed counts, and infoHash when available.
get_c411_torrent_info
Get detailed metadata for a torrent on c411.org.
Parameters:
infoHash(string, required): The 40-character hexinfoHashof the torrent
Returns: Structured torrent metadata including title, category, size, seeder and leecher counts, completion count, uploader, creation date, file list, TMDB data when available, and trust information.
get_c411_torrent_comments
Get paginated comments for a torrent on c411.org.
Parameters:
infoHash(string, required): The 40-character hexinfoHashof the torrentpage(number, optional): Comment page number. Defaults to1.limit(number, optional): Number of comments per page. Defaults to20, maximum100.
Returns: Structured comment results with pagination metadata and normalized comment entries, including HTML content, plain-text content, author info, timestamps, and reply targets when present.
download_c411_torrent
Download a .torrent file from c411.org and save it to disk.
Parameters:
infoHash(string, required): The 40-character hex infoHash of the torrentoutputDir(string, optional): Directory where the.torrentfile should be saved. Defaults to/tmp.
Returns: The full path of the saved .torrent file.
Example:
infoHash: "178a3516f248e45f9857abbc2cbc8a8b20f29815"
outputDir: "/tmp"
Project structure
src/index.ts: bootstrap only; creates the MCP server and starts stdiosrc/c411-client.ts: c411 auth, retries, search, torrent info, comments, and download logicsrc/register-tools.ts: MCP tool registrationsrc/formatters.ts: formatting and normalization helpers for search, torrent info, and commentssrc/http-response-utils.ts: response parsing and maintenance detection helperssrc/http-client.ts: isolated Axios + cookie-jar setupsrc/schemas.ts: Zod tool schemassrc/types.ts: shared TypeScript types
Development
npm run dev: Run in development mode with hot reloadnpm run build: Compile TypeScript to JavaScriptnpm start: Run the compiled server
Notes
- This server is for personal use only
- Respect c411.org's terms of service
- Keep your credentials secure
- The scraper may need updates if the website structure changes