Skip to main content
Glama
07freedom

M-Team MCP Server

by 07freedom

search_torrents

Search torrents on M-Team private tracker using keywords with configurable modes, page numbers, and result sizes to find specific content.

Instructions

Search torrents on M-Team by keyword.

Args: keyword: Search keyword (supports Chinese / English). mode: Search mode. One of: normal, adult, movie, music, tvshow, waterfall, rss, rankings, all. Defaults to "normal". page_number: Page number (1-based). Defaults to 1. page_size: Number of results per page (max 100). Defaults to 20.

Returns: A formatted string listing matching torrents with their IDs, names, sizes, seeder/leecher counts, labels, ratings, and discount info.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keywordYes
modeNonormal
page_numberNo
page_sizeNo

Implementation Reference

  • Implementation of the search_torrents tool handler.
    @mcp.tool
    def search_torrents(
        keyword: str,
        mode: str = "normal",
        page_number: int = 1,
        page_size: int = 20,
    ) -> str:
        """Search torrents on M-Team by keyword.
    
        Args:
            keyword: Search keyword (supports Chinese / English).
            mode: Search mode. One of: normal, adult, movie, music, tvshow,
                  waterfall, rss, rankings, all. Defaults to "normal".
            page_number: Page number (1-based). Defaults to 1.
            page_size: Number of results per page (max 100). Defaults to 20.
    
        Returns:
            A formatted string listing matching torrents with their IDs, names,
            sizes, seeder/leecher counts, labels, ratings, and discount info.
        """
        url = f"{BASE_URL}/torrent/search"
        body = {
            "keyword": keyword,
            "mode": mode,
            "pageNumber": page_number,
            "pageSize": page_size,
        }
        resp = requests.post(url, json=body, headers=_headers(), timeout=30)
        resp.raise_for_status()
        data = resp.json()
    
        code = data.get("code")
        message = data.get("message", "")
        payload = data.get("data")
    
        if str(code) != "0" and message.upper() != "SUCCESS":
            return f"API error {code}: {message}"
    
        if isinstance(payload, dict):
            items: list = (
                payload.get("list")
                or payload.get("data")
                or payload.get("torrents")
                or []
            )
            total = payload.get("total") or payload.get("totalCount") or len(items)
        elif isinstance(payload, list):
            items = payload
            total = len(payload)
        else:
            return f"Unexpected response format:\n{data}"
    
        if not items:
            return f'No results found for "{keyword}" (mode={mode}).'
    
        lines = [
            f'Search results for "{keyword}" (mode={mode})',
            f"Total: {total}  |  Page {page_number}, showing {len(items)} items",
            "-" * 60,
        ]
        for item in items:
            tid = item.get("id", "?")
            name = item.get("name") or item.get("title") or "(no name)"
            size = _format_size(item.get("size"))
            labels = ", ".join(item.get("labelsNew") or []) or "-"
            imdb_rating = item.get("imdbRating") or "-"
            douban_rating = item.get("doubanRating") or "-"
            status = item.get("status") or {}
            seeders = status.get("seeders", "?")
            leechers = status.get("leechers", "?")
            discount = status.get("discount", "-")
            lines.append(
                f"[{tid}] {name}\n"
                f"  Size: {size}  Seeders: {seeders}  Leechers: {leechers}\n"
                f"  Labels: {labels}  Discount: {discount}\n"
                f"  IMDB: {imdb_rating}  Douban: {douban_rating}"
            )
    
        return "\n".join(lines)

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/07freedom/mteam-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server