Korea MCP Server: Naver, Kakao Map for Claude, ChatGPT, Cursor avatar

Korea MCP Server: Naver, Kakao Map for Claude, ChatGPT, Cursor

Pricing

from $4.00 / 1,000 tool calls

Go to Apify Store
Korea MCP Server: Naver, Kakao Map for Claude, ChatGPT, Cursor

Korea MCP Server: Naver, Kakao Map for Claude, ChatGPT, Cursor

MCP server that lets AI agents search Korean places on Naver Map and Kakao Map and read Naver Place visitor reviews. Give a keyword such as 성수 카페 (Seongsu cafes) or a place ID and get flat JSON. No login, no API key for Naver or Kakao.

Pricing

from $4.00 / 1,000 tool calls

Rating

0.0

(0)

Developer

SUNGHWAN CHO

SUNGHWAN CHO

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 hours ago

Last modified

Features

Limited permissionsSingle-tenantServer interface

Share

Korea Local Data MCP Server (Naver Map, Kakao Map · 네이버 지도 · 카카오맵)

An MCP server that gives AI agents live Korean local business data: give it a keyword such as 성수 카페 (Seongsu cafes) and it returns places from Naver Map or Kakao Map as flat JSON; give it a Naver place ID and it returns the newest Naver Place visitor reviews. Developers building agents with Claude, ChatGPT, Cursor or any MCP client use it to answer questions like "find the top cafes in Seongsu and summarise what reviewers say" without scraping Naver or Kakao themselves — a Naver Map MCP server and Kakao Map MCP server in one (네이버 지도 MCP, 카카오맵 MCP, AI 에이전트용 한국 지역 데이터).

Google Maps coverage of South Korea is thin. Naver Map and Kakao Map are what people in Korea actually use, so this is where the complete listings, ratings and reviews are. No Naver or Kakao login or API key is needed; you only need an Apify account.

What you get

Three tools. Every result has status (completed, partial or budgetLimited), a message explaining anything unusual, reportedTotal (how many the site says exist) and returnedCount. Every field is always present; a value the site does not show is null; numbers are numbers.

ToolInputReturns
search_naver_placesquery (Korean keyword), maxPlaces 1–100 (default 20)places[] in Naver's ranking order
search_kakao_placesquery, maxPlaces 1–100 (default 15)places[] from Kakao Map with the same field names
get_naver_place_reviewsplace (Naver place ID or Naver Map URL), maxReviews 1–100 (default 20)placeName, placeRating, placeReviewCount and reviews[], newest visit first

Place fields (places[], identical for Naver and Kakao):

FieldTypeDescription
sourcestringnaver or kakao.
query, rankstring / numberThe keyword and the organic position in the site's list.
idstringPlace ID on that site. Naver IDs work with get_naver_place_reviews; Naver and Kakao IDs are separate systems.
name, category, businessTypestringListing name, category and type (English code on Naver, Korean top-level category on Kakao).
roadAddress, address, districtstringRoad-name address, lot-number address, district.
phonestringBusiness phone; null when not published.
latitude, longitudenumberWGS84 coordinates.
visitorReviewScore, visitorReviewCount, blogCafeReviewCountnumberStar rating (null when nobody has rated), rating/visitor review count, blog review count.
hasBookingbooleanBooking available.
amenitiesarray of stringsAmenities as shown on the site (포장, 예약, 주차, …).
homepagestringWebsite; filled on Kakao only, null on Naver.
url, scrapedAtstringPlace page on Naver Map or Kakao Map, timestamp.

Review fields (reviews[]): source, placeId, placeName, reviewId, rating, text, visitedAt, createdAt (UTC ISO), visitCount, verificationType (receipt, payment, booking), menuItem, keywords (Korean tags), keywordCodes (English codes such as coffee_good), hasOwnerReply, ownerReply, url, scrapedAt.

Reviewer names, profile pictures and user IDs are never requested or returned. The place field names are the same as in our batch Actors, so data from both can be merged.

Sample output

search_naver_places with {"query": "성수 카페", "maxPlaces": 1}, from a real call:

{
"source": "naver",
"query": "성수 카페",
"status": "completed",
"message": null,
"reportedTotal": 2346,
"returnedCount": 1,
"places": [
{
"source": "naver",
"query": "성수 카페",
"rank": 1,
"id": "1922651675",
"name": "노틀던",
"category": "카페,디저트",
"businessType": "cafe",
"roadAddress": "서울숲2길 11 1층",
"address": "서울특별시 성동구 성수동1가 685-501 1층",
"district": "서울 성동구 성수동1가",
"phone": null,
"latitude": 37.5473614,
"longitude": 127.0400154,
"visitorReviewScore": 4.97,
"visitorReviewCount": 1160,
"blogCafeReviewCount": 1463,
"hasBooking": true,
"amenities": ["포장", "예약", "단체 이용 가능", "간편결제", "제로페이"],
"homepage": null,
"url": "https://map.naver.com/p/entry/place/1922651675",
"scrapedAt": "2026-10-02T17:35:22.080Z"
}
]
}

One row of get_naver_place_reviews (reviews[]) for the same place, next to the top-level placeName, placeRating and placeReviewCount:

{
"source": "naver",
"placeId": "1922651675",
"placeName": "노틀던",
"reviewId": "6abf33448f9dd532461b9928",
"rating": 5,
"text": "디저트도 예쁘고 맛있어요!! 다른메뉴도 먹으러 또오고싶어요",
"visitedAt": "2026-10-02T04:23:12.000Z",
"createdAt": "2026-10-02T04:29:56.000Z",
"visitCount": 1,
"verificationType": "receipt",
"menuItem": "노틀던 누아",
"keywords": ["커피가 맛있어요", "디저트가 맛있어요", "아늑해요", "음악이 좋아요"],
"keywordCodes": ["coffee_good", "dessert_good", "cozy", "music_good"],
"hasOwnerReply": false,
"ownerReply": null,
"url": "https://map.naver.com/p/entry/place/1922651675?placePath=/review",
"scrapedAt": "2026-10-02T17:35:26.980Z"
}

Use cases

  • Travel and concierge agents. "Find the top 20 cafes in Seongsu on Naver Map and summarise what reviewers say about the top 3" — one search call, three review calls, all Korean-aware.
  • Sales assistants for the Korean market. "List dermatology clinics near Gangnam Station with phone numbers" from a chat, then push them into a CRM.
  • Market research copilots. "Compare the Naver and Kakao ratings of restaurants in Euljiro" — the two search tools return the same fields, so an agent can join them by phone and address.
  • Customer-experience bots for Korean businesses. Read the newest reviews of your own place, with English keyword codes, and draft owner replies.
  • RAG and evaluation pipelines. Fresh, structured Korean place data as a tool instead of a static dump.

How to use

Connect an MCP client

The MCP endpoint (Streamable HTTP) is:

https://magenta-courser--korea-local-data-mcp.apify.actor/mcp

Authenticate with your Apify API token as a Bearer token.

Claude Code

$claude mcp add --transport http korea-local-data https://magenta-courser--korea-local-data-mcp.apify.actor/mcp --header "Authorization: Bearer YOUR_APIFY_TOKEN"

Any client that takes a JSON config (Claude Desktop, Cursor, Windsurf, …)

{
"mcpServers": {
"korea-local-data": {
"type": "http",
"url": "https://magenta-courser--korea-local-data-mcp.apify.actor/mcp",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}

Then ask in plain language. Korean keywords that combine an area and a category work best (강남 맛집, 홍대 미용실, 부산 해운대 호텔); agents usually translate an English request into such a keyword on their own. Minimal tool arguments:

{ "query": "성수 카페", "maxPlaces": 10 }
{ "place": "1922651675", "maxReviews": 20 }

Through the Apify MCP server

If you already use https://mcp.apify.com, you can call this Actor there as a tool instead of connecting to its own endpoint: add ?tools=magenta_courser/korea-local-data-mcp and pass the standalone input below (tool, query or place, maxItems).

Apify Console or API (one tool call per run)

Press Start in the console, or call the Actor through the API, to make one tool call. The items go to the run's dataset and a short summary to the key-value store record RUN_SUMMARY.

InputMeaning
toolsearch_naver_places (default), search_kakao_places or get_naver_place_reviews.
querySearch keyword for the two search tools, e.g. 성수 카페.
placeNaver place ID or Naver Map URL for get_naver_place_reviews, e.g. 1922651675.
maxItems1–100 places or reviews. If empty, the tool default is used (20 for Naver, 15 for Kakao).
curl -X POST "https://api.apify.com/v2/acts/magenta_courser~korea-local-data-mcp/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "search_naver_places", "query": "성수 카페", "maxItems": 10}'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("magenta_courser/korea-local-data-mcp").call(run_input={
"tool": "get_naver_place_reviews",
"place": "1922651675",
"maxItems": 20,
})
for review in client.dataset(run["defaultDatasetId"]).iterate_items():
print(review["rating"], review["visitedAt"], review["keywordCodes"], review["text"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('magenta_courser/korea-local-data-mcp').call({
tool: 'search_kakao_places',
query: '을지로 맛집',
maxItems: 15,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((p) => [p.rank, p.name, p.visitorReviewScore, p.phone]));

Pricing

Pay per event, no subscription:

EventPrice (Free plan)Notes
tool-call — one tool call that returns at least one item$0.005Bronze $0.00475, Silver $0.0045, Gold and above $0.004.
place — one place returned by a search tool$0.002Bronze $0.0019, Silver $0.0018, Gold and above $0.0016.
review — one review returned by the reviews tool$0.001Bronze $0.00095, Silver $0.0009, Gold and above $0.0008.
Actor start$0.00005Per standby container start.

Not charged: a tool call that fails (blocked request, wrong place ID, invalid arguments) or returns nothing; connecting, initialize and tools/list; items you did not receive. If the run's spending limit cannot pay for everything you asked for, the result is cut to what was charged with status: "budgetLimited"; if only part of the pages could be read, you get and pay for that part (status: "partial"). Examples at the Free-plan price:

  • One search of 20 places = $0.005 + 20 × $0.002 = $0.045.
  • Reviews of one place, 20 newest = $0.005 + 20 × $0.001 = $0.025.
  • An agent session that searches once (20 places) and reads reviews of 3 places (20 each) = $0.12.
  • 100 agent sessions a month like that = about $12 per month.

As with any Actor in Standby mode, the small container that serves your requests runs in your Apify account (256 MB, stops 60 seconds after your last request); in our tests one session cost about $0.001 of platform usage for a single call and about $0.002 for ten calls.

FAQ

Do I need a Naver or Kakao API key? No. The server reads public Naver Map, Kakao Map and Naver Place review pages without logging in. You only need an Apify API token.

Which MCP clients work? Any client that supports Streamable HTTP with a Bearer header: Claude Code, Claude Desktop, Cursor, Windsurf, custom LangGraph or OpenAI Agents tools. The endpoint is /mcp on the Actor's standby URL.

What happens when Naver or Kakao blocks a request? The server retries with a new proxy IP and gives up after about 45 seconds per tool call with a clear error; that call is free. If some pages were read, you get and pay for that part with status: "partial".

How fresh is the data? Every call reads the site live. The first request after a pause takes 2–4 seconds longer while the standby container starts.

Is this the right tool for bulk exports? No. It is built for quick agent lookups (up to 100 items per call, answers in a few seconds). For large exports, scheduled monitoring, opening hours, menus, photos and full review histories, use the batch Actors — they cost less per item: Naver Place Search Scraper, Naver Place Reviews Scraper, Kakao Map Place Search Scraper.

Can I get reviews for a Kakao place? No. Reviews come from Naver Place only; use the id from search_naver_places. Short naver.me links are not supported as place; use the full Naver Map URL or the numeric ID.

AI 에이전트가 네이버 지도·카카오맵을 직접 검색하게 할 수 있나요? 네. MCP 엔드포인트를 Claude·Cursor 등에 등록하면 에이전트가 성수 카페 같은 키워드로 업체를 찾고, 네이버 플레이스 ID로 최신 방문자 리뷰를 읽습니다. 네이버·카카오 로그인이나 API 키는 필요 없습니다.

요금은 어떻게 계산되나요? 결과가 있는 도구 호출 1회 $0.005에, 반환된 업체 1곳당 $0.002 또는 리뷰 1건당 $0.001이 더해집니다. 실패하거나 결과가 없는 호출은 무료입니다.

한국어 안내

AI 에이전트용 MCP 서버입니다. 키워드(예: 성수 카페, 강남 맛집)를 주면 네이버 지도 또는 카카오맵의 업체 목록(업체명·카테고리·주소·전화번호·좌표·평점·리뷰 수·편의시설·링크)을, 네이버 플레이스 ID를 주면 최신 방문자 리뷰(별점·본문·방문일·키워드 태그와 영어 코드·주문 메뉴·사장님 답글)를 평평한 JSON으로 돌려줍니다. Claude Code, Claude Desktop, Cursor 등 Streamable HTTP를 지원하는 MCP 클라이언트에 Apify 토큰으로 연결하면 됩니다. 요금은 결과가 있는 호출당 $0.005 + 업체 1곳당 $0.002 또는 리뷰 1건당 $0.001이며, 업체 20곳 검색은 약 $0.045, 리뷰 20건은 약 $0.025입니다. 호출당 최대 100건이므로 대량 수집이나 정기 모니터링은 배치 Actor(네이버 플레이스 검색·리뷰, 카카오맵 검색)를 쓰는 편이 저렴합니다. 리뷰어 닉네임·프로필 등 개인정보는 요청하지 않으며, 로그인 없이 공개 데이터만 읽습니다.

Notes

  • Names, categories, addresses and review text are returned in Korean, as shown on Naver and Kakao.
  • To decide that two rows from Naver and Kakao are the same business, compare phone, address and coordinates; ratings on the two sites come from different reviewers and are not directly comparable.

This server reads publicly visible listing and review content only, requests no reviewer personal data and does not log in to any account. Reviewing Naver's and Kakao's terms of service and your local law for your intended use is your responsibility.

Need another field or feature?

Tell us in the Issues tab: a missing field, another input mode, a different output format. We aim to ship requested fields and features within a week, and we answer every issue.