get_naver_place_reviews
Fetch customer reviews from a Naver Place listing by providing its URL. You can optionally set the maximum number of reviews to receive, up to 100.
Instructions
Fetch reviews for a Naver Place (네이버 플레이스) listing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| place_url | Yes | Naver Place URL, e.g. https://map.naver.com/v5/entry/place/1234567890 | |
| max_reviews | No | Maximum number of reviews to return (default 20, max 100) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- src/korean_data_mcp/server.py:64-83 (handler)The get_naver_place_reviews async function is decorated with @mcp.tool(), making it an MCP tool. It accepts a place_url (str) and max_reviews (int, default 20, capped at 100), then delegates to the Apify helper _run_actor with actor ID 'oxygenated_quagmire/naver-place-reviews' and input {'placeUrl': place_url, 'maxReviews': max_reviews}. Returns a list of review dicts.
@mcp.tool() async def get_naver_place_reviews( place_url: str, max_reviews: int = 20, ) -> list[dict]: """ Fetch reviews for a Naver Place (네이버 플레이스) listing. Args: place_url: Naver Place URL, e.g. https://map.naver.com/v5/entry/place/1234567890 max_reviews: Maximum number of reviews to return (default 20, max 100) Returns: List of review objects with author, rating, content, date fields. """ max_reviews = min(max_reviews, 100) return await _run_actor( f"{APIFY_ACCOUNT}/naver-place-reviews", {"placeUrl": place_url, "maxReviews": max_reviews}, ) - src/korean_data_mcp/server.py:64-65 (registration)The tool is registered via the FastMCP decorator @mcp.tool() on the get_naver_place_reviews function. No additional registration code is needed — FastMCP automatically discovers decorated functions.
@mcp.tool() async def get_naver_place_reviews( - src/korean_data_mcp/server.py:34-43 (helper)The _run_actor helper function is the underlying implementation that calls the Apify API. It constructs a URL with actor_id, sends input_data via POST, and returns the dataset items as a list of dicts. It is shared by all tools in the server.
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()