get_musinsa_ranking
Fetch Musinsa fashion ranking data by category to track Korea's trends. Choose category slug (e.g., outer, top) and limit items up to 100.
Instructions
Fetch Musinsa (무신사) fashion ranking — Korea's leading fashion platform.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Category slug, e.g. 'all', 'outer', 'top', 'bottom', 'shoes', 'bag' | all |
| max_items | No | Maximum number of items to return (default 50, max 100) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- src/korean_data_mcp/server.py:233-251 (handler)The main handler function for the 'get_musinsa_ranking' tool. Fetches Musinsa (무신사) fashion ranking data by calling the Apify actor 'oxygenated_quagmire/musinsa-ranking-scraper' with a category slug and max_items limit.
async def get_musinsa_ranking( category: str = "all", max_items: int = 50, ) -> list[dict]: """ Fetch Musinsa (무신사) fashion ranking — Korea's leading fashion platform. Args: category: Category slug, e.g. 'all', 'outer', 'top', 'bottom', 'shoes', 'bag' max_items: Maximum number of items to return (default 50, max 100) Returns: List of product objects with rank, name, brand, price, discountRate, url fields. """ max_items = min(max_items, 100) return await _run_actor( f"{APIFY_ACCOUNT}/musinsa-ranking-scraper", {"category": category, "maxItems": max_items}, ) - src/korean_data_mcp/server.py:232-232 (registration)The @mcp.tool() decorator registers the function as an MCP tool on the FastMCP server instance.
@mcp.tool() - src/korean_data_mcp/server.py:34-43 (helper)The _run_actor helper function used by get_musinsa_ranking to execute the Apify actor and return dataset items.
async def _run_actor(actor_id: str, input_data: dict, timeout_secs: int = 60) -> list[dict]: """Run an Apify actor synchronously and return dataset items.""" token = _get_token() url = f"{APIFY_BASE}/acts/{actor_id}/run-sync-get-dataset-items" params = {"token": token} async with httpx.AsyncClient(timeout=timeout_secs + 10) as client: resp = await client.post(url, json=input_data, params=params) resp.raise_for_status() return resp.json() - Input schema: category (string, default 'all') and max_items (int, default 50, max 100). Output schema: list[dict] with rank, name, brand, price, discountRate, url fields.
category: str = "all", max_items: int = 50, ) -> list[dict]: