Skip to main content
Glama
C411 MCP Server

C411 MCP Server

by julien-nc

C411 MCP 서버

c411.org에서 토렌트를 검색하고, 토렌트 메타데이터와 댓글을 가져오며, .torrent 파일을 다운로드하기 위한 MCP(Model Context Protocol) 서버입니다.

목차

Related MCP server: RuTracker MCP Server

기능

  • c411.org에서 토렌트 검색

  • infoHash를 통한 상세 토렌트 메타데이터 가져오기

  • infoHash를 통한 페이지 단위 토렌트 댓글 가져오기

  • infoHash를 통한 .torrent 파일 다운로드

  • 인증된 세션 자동 재사용

  • 짧은 지연 시간과 제한된 재시도 횟수로 만료된 인증 재시도

  • 누락된 자격 증명, 잘못된 자격 증명, 유지보수 모드 오류 구분

  • 제목, 크기, 시더 수, 사용 가능한 경우 infoHash를 포함한 구조화된 검색 결과 반환

설치

npm install

사용법

서버 실행

서버는 기본적으로 stdio 전송을 사용합니다:

npm run dev

또는 빌드 후 실행:

npm run build
npm start

인증

c411.org는 토렌트 목록에 액세스하기 위해 인증이 필요합니다. 로그인을 활성화하려면:

  1. 다음 환경 변수를 설정하세요:

    • C411_USERNAME: c411.org 사용자 이름

    • C411_PASSWORD: c411.org 비밀번호

  2. 서버가 자동으로 로그인하고 세션을 유지합니다.

자격 증명이 없으면 서버가 검색 결과를 가져오지 못할 수 있습니다.

인증 실패 시 동작

서버는 인증 실패 시 더 구체적인 오류를 반환하려고 시도합니다:

  • 자격 증명 누락: C411_USERNAME 및 C411_PASSWORD 요청

  • 잘못된 자격 증명: 사용자 이름/비밀번호가 거부되었음을 보고

  • 유지보수 모드: c411.org를 일시적으로 사용할 수 없음을 보고

  • 네트워크 또는 시간 초과 문제: 자격 증명을 기록하지 않고 정리된 전송 오류 반환

HTTP 요청은 10초 후에 시간 초과됩니다.

MCP 클라이언트 설정

MCP 클라이언트(예: Claude Desktop)와 함께 이 서버를 사용하려면 클라이언트 설정에 다음을 추가하세요:

{
  "mcpServers": {
    "c411": {
      "command": "node",
      "args": ["/path/to/c411-mcp-server/build/index.js"],
      "env": {
        "C411_USERNAME": "your_username",
        "C411_PASSWORD": "your_password"
      }
    }
  }
}

OpenCode의 경우, 로컬 MCP 항목을 사용하여 mcp 아래의 OpenCode 설정에서 서버를 구성하세요:

{
  "$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는 mcp 키 아래에 MCP 서버를 문서화하며, 로컬 서버는 type: "local", command 배열, 환경 변수를 위한 environment를 사용합니다.

OpenCode CLI에서 추가할 수도 있습니다:

opencode mcp add

그런 다음 로컬 MCP 서버를 선택하고 다음 값을 입력하세요:

  • name: c411

  • type: local

  • command: node /path/to/c411-mcp-server/build/index.js

  • environment:

    • C411_USERNAME=your_username

    • C411_PASSWORD=your_password

그 후 다음 명령어로 추가되었는지 확인할 수 있습니다:

opencode mcp list

도구

c411.org에서 토렌트를 검색합니다.

매개변수:

  • query (string, 필수): 검색어, 공백 제거, 1~200자

  • category (string, 선택): 카테고리 필터. 1, 2, 3, 4, 5, 6, 7, 10 중 하나.

  • subcat (string, 선택): 하위 카테고리 필터. category가 1일 때만 유효.

  • sortBy (string, 선택): 정렬 기준. relevance, seeders, leechers, size, createdAt, name, completions, comments, category 중 하나. 기본값은 relevance.

  • sortOrder (string, 선택): 정렬 순서. asc, desc 중 하나. 기본값은 desc.

  • page (number, 선택): 결과 페이지 번호. 기본값은 1.

  • perPage (number, 선택): 페이지당 결과 수. 기본값은 25, 최대 100.

반환값: 제목, 크기, 시더 수, 사용 가능한 경우 infoHash를 포함한 토렌트 결과 목록.

list_my_c411_uploads

현재 인증된 c411.org 사용자가 업로드한 토렌트 목록을 가져옵니다.

매개변수:

  • query (string, 선택): 검색어, 공백 제거, 1~200자.

  • category (string, 선택): 카테고리 필터. 1, 2, 3, 4, 5, 6, 7, 10 중 하나.

  • subcat (string, 선택): 하위 카테고리 필터. category가 1일 때만 유효.

  • sortBy (string, 선택): 정렬 기준. relevance, seeders, leechers, size, createdAt, name, completions, comments, category 중 하나. 기본값은 relevance.

  • sortOrder (string, 선택): 정렬 순서. asc, desc 중 하나. 기본값은 desc.

  • page (number, 선택): 결과 페이지 번호. 기본값은 1.

  • perPage (number, 선택): 페이지당 결과 수. 기본값은 100, 최대 100.

반환값: search_c411과 동일한 구조를 사용하는 현재 사용자의 업로드 토렌트 결과 목록.

get_c411_torrent_info

c411.org의 토렌트에 대한 상세 메타데이터를 가져옵니다.

매개변수:

  • infoHash (string, 필수): 토렌트의 40자 16진수 infoHash

반환값: 제목, 카테고리, 크기, 시더 및 리처 수, 완료 횟수, 업로더, 생성 날짜, 파일 목록, 사용 가능한 경우 TMDB 데이터, 신뢰 정보를 포함한 구조화된 토렌트 메타데이터.

get_c411_torrent_comments

c411.org의 토렌트에 대한 페이지 단위 댓글을 가져옵니다.

매개변수:

  • infoHash (string, 필수): 토렌트의 40자 16진수 infoHash

  • page (number, 선택): 댓글 페이지 번호. 기본값은 1.

  • limit (number, 선택): 페이지당 댓글 수. 기본값은 20, 최대 100.

반환값: 페이지 매김 메타데이터와 정규화된 댓글 항목(HTML 콘텐츠, 일반 텍스트 콘텐츠, 작성자 정보, 타임스탬프, 답글 대상 포함)을 포함한 구조화된 댓글 결과.

download_c411_torrent

c411.org에서 .torrent 파일을 다운로드하여 디스크에 저장합니다.

매개변수:

  • infoHash (string, 필수): 토렌트의 40자 16진수 infoHash

  • outputDir (string, 선택): .torrent 파일이 저장될 디렉터리. 기본값은 /tmp.

반환값: 저장된 .torrent 파일의 전체 경로.

예시:

infoHash: "178a3516f248e45f9857abbc2cbc8a8b20f29815"
outputDir: "/tmp"

프로젝트 구조

  • src/index.ts: 부트스트랩 전용; MCP 서버를 생성하고 stdio 시작

  • src/c411-client.ts: c411 인증, 재시도, 검색, 토렌트 정보, 댓글 및 다운로드 로직

  • src/register-tools.ts: MCP 도구 등록

  • src/formatters.ts: 검색, 토렌트 정보 및 댓글을 위한 포맷팅 및 정규화 도우미

  • src/http-response-utils.ts: 응답 파싱 및 유지보수 감지 도우미

  • src/http-client.ts: 격리된 Axios + cookie-jar 설정

  • src/schemas.ts: Zod 도구 스키마

  • src/types.ts: 공유 TypeScript 타입

개발

  • npm run dev: 핫 리로드와 함께 개발 모드로 실행

  • npm run build: TypeScript를 JavaScript로 컴파일

  • npm start: 컴파일된 서버 실행

참고 사항

  • 이 서버는 개인용입니다

  • c411.org의 서비스 약관을 준수하세요

  • 자격 증명을 안전하게 보관하세요

  • 웹사이트 구조가 변경되면 스크레이퍼 업데이트가 필요할 수 있습니다

Available Tools

4 tools
download_c411_torrentA

Download a .torrent file from c411.org by its infoHash and save it to disk.

NameRequiredDescriptionDefault
infoHashYesThe 40-character hex infoHash of the torrent
outputDirNoDirectory where the .torrent file should be saved. Defaults to /tmp.

Output Schema

NameRequiredDescription
errorNo
successYes
filenameNo
savedPathNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full disclosure burden. Successfully discloses the side effect ('save to disk'), indicating filesystem mutation. However, lacks details on idempotency, network requirements, error handling (e.g., invalid hash), or output structure despite having an output schema available.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, dense sentence with zero waste. Front-loaded with the action verb, immediately communicating purpose. Every clause earns its place: source domain, identification method, and persistence mechanism are all efficiently packed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Appropriate for a 2-parameter tool with full schema coverage and existing output schema. Covers the essential 'what' and 'where to' aspects. Minor gap: could briefly mention the return value indicates success/failure or file path since annotations are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, establishing a baseline of 3. Description adds value by clarifying the infoHash's role in identifying the specific torrent to retrieve ('by its infoHash'), and implicitly connects the outputDir to the 'save to disk' action. Could mention the default /tmp behavior explicitly, but overall adds meaningful usage context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Excellent specificity: states the verb ('Download'), resource ('.torrent file'), source ('c411.org'), identifier ('by its infoHash'), and side effect ('save to disk'). Clearly distinguishes from siblings 'get_c411_torrent_info' and 'search_c411' through the explicit action of downloading vs retrieving metadata or searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides implied usage context through the specific action ('download... save to disk'), but lacks explicit when-to-use guidance contrasting with siblings. Does not state prerequisites (e.g., valid c411.org infoHash) or error conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_c411_torrent_commentsA

Get comments for a c411.org torrent by its infoHash.

NameRequiredDescriptionDefault
infoHashYesThe 40-character hex infoHash of the torrent
pageNoComment page number. Defaults to 1.
limitNoNumber of comments per page. Defaults to 20.

Output Schema

NameRequiredDescription
pageYes
errorNo
limitYes
totalNo
commentsYes
infoHashYes
totalPagesNo
resultCountYes

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, yet description fails to disclose behavioral traits: no mention of pagination behavior (despite page/limit params), rate limits, authentication requirements for c411.org, or handling of empty comment sets. 'Get' implies read-only but does not confirm it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single efficient sentence of 9 words. Front-loaded with verb, zero redundancy, every token carries meaning (domain, resource, identifier).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a read operation given 100% schema coverage and existence of output schema (which handles return value documentation). Could be improved by mentioning pagination or empty state handling, but functional for tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, establishing baseline 3. Description adds minimal semantics beyond schema—only linking infoHash to the retrieval operation via 'by its infoHash'. Schema already documents the 40-character hex pattern and pagination defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb 'Get' + resource 'comments for a c411.org torrent' clearly identifies the operation. Explicitly distinguishes from siblings: targets comments (not download, info metadata, or search index) and specifies the external domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context by identifying the specific resource (comments) and required identifier (infoHash), implicitly distinguishing from sibling torrent operations. However, lacks explicit workflow guidance (e.g., 'use after search_c411 to retrieve infoHash').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_c411_torrent_infoA

Get detailed metadata for a c411.org torrent by its infoHash.

NameRequiredDescriptionDefault
infoHashYesThe 40-character hex infoHash of the torrent

Output Schema

NameRequiredDescription
sizeNo
tmdbNo
errorNo
filesNo
titleNo
trustNo
statusNo
seedersNo
successNo
categoryNo
infoHashYes
leechersNo
uploaderNo
createdAtNo
fileCountNo
sizeBytesNo
completionsNo
isExclusiveNo
isFreeleechNo
subcategoryNo
descriptionHtmlNo
lowBitrateWarningNo

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full disclosure burden but only states it's a read operation ('Get') targeting metadata. It fails to disclose what 'detailed metadata' specifically includes, error conditions for invalid hashes, rate limits, or caching behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence of 10 words with zero waste. Front-loaded with action verb 'Get', immediately identifies the resource (c411.org torrent metadata), and specifies the lookup key (infoHash). Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Appropriate for a simple 1-parameter tool with output schema present (no need to describe return values). Sufficient for invocation but could be improved by explicitly mentioning the sibling workflow (obtain hash via search_c411 first).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the infoHash parameter fully documented including pattern validation. The description mentions 'by its infoHash' but adds no semantic meaning beyond the schema's existing '40-character hex infoHash' description, meeting the baseline for high-coverage schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'Get' with clear resource 'detailed metadata for a c411.org torrent' and scope identifier 'by its infoHash'. This clearly distinguishes from sibling download_c411_torrent (content vs metadata), get_c411_torrent_comments (metadata vs comments), and search_c411 (specific hash lookup vs broad search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'by its infoHash' implicitly signals you must already possess the hash to use this tool, distinguishing it from search_c411. However, it lacks explicit guidance on the prerequisite workflow (search first, then this tool) or when to prefer alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_c411B

Search for torrents on c411.org

NameRequiredDescriptionDefault
queryYesSearch query for torrents
sortByNoSort criteria for the search results. Defaults to relevance.relevance
sortOrderNoSort order for the search results. Defaults to desc.desc
pageNoResult page number. Defaults to 1.
perPageNoNumber of results per page. Defaults to 25.

Output Schema

NameRequiredDescription
pageYes
errorNo
queryYes
totalNo
perPageYes
resultsYes
totalPagesNo
resultCountYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It states nothing about network requirements, rate limits, authentication, idempotency, or whether results are cached. The minimal description offers no behavioral context beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence 'Search for torrents on c411.org' is appropriately sized with zero redundancy. It is front-loaded with the action and contains no filler text, making it efficiently scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 100% parameter schema coverage and presence of an output schema, the description does not need to elaborate on return values or parameter details. However, it lacks mention of the typical workflow (search → download/info) that would complete the context for an agent selecting among the four related tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the input schema fully documents all 5 parameters (query, sortBy, sortOrder, page, perPage). The description adds no additional semantic information beyond what the schema provides, which warrants the baseline score for high-coverage schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Search') and resource ('torrents on c411.org'), clearly identifying the tool's function. However, it does not explicitly differentiate from siblings like 'get_c411_torrent_info' (which retrieves specific torrent details by ID rather than searching).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It fails to mention that search results are typically prerequisite for using sibling tools like 'download_c411_torrent' or 'get_c411_torrent_info', or that this is the entry point for discovery.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.0.0
    • First observeddownload_c411_torrent
    • First observedget_c411_torrent_comments
    • First observedget_c411_torrent_info
    • First observedsearch_c411

TDQS

A3.8/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: downloading torrent files, retrieving comments, getting metadata, and searching. The descriptions specify unique actions on the same domain (c411.org torrents), with no overlap that would cause misselection.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with 'c411' as a prefix (e.g., download_c411_torrent, search_c411). The naming is uniform, using snake_case throughout and clear action descriptors.

Tool Count5/5

With 4 tools, the server is well-scoped for interacting with a torrent search site. Each tool serves a distinct function (search, info, comments, download), making the count appropriate and efficient for the domain.

Completeness4/5

The toolset covers core operations for torrent discovery and retrieval (search, get info, get comments, download), with no obvious dead ends. A minor gap might be the lack of upload or management tools, but for a client-focused server, this is reasonable.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables interaction with qBittorrent through its Web API to search for torrents using search plugins and manage downloads. Supports torrent searching, downloading via URLs/magnet links, and torrent management operations like pause, resume, and delete.
    7
    3
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    Allows users to search and browse torrents on rutracker.org, retrieving detailed metadata including magnet links and file lists. It automatically handles authentication by extracting session cookies from the Brave browser on macOS.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to interact with the M-Team private torrent tracker API for searching resources, retrieving torrent details, and downloading torrent files. It provides a bridge for Model Context Protocol clients to manage and access private tracker content through natural language.
    3
    11
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables searching and downloading torrents from iptorrents.com using browser cookie-based authentication, with features like filtering, sorting, and freeleech detection.
    -