kakao-mcp
Provides integration with Kakao's Local (Map), Search, and Vision APIs, enabling address-to-coordinate conversion, keyword place search, category-based place search, coordinate-to-address, coordinate-to-region, web/blog/cafe/image/video/book search, and OCR text extraction.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@kakao-mcp판교역로 235 좌표 알려줘"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
kakao-mcp
카카오 API를 AI 에이전트에 연결하는 MCP 서버. 지도/로컬, 다음 검색, 비전 OCR을 REST API 키 하나로 바로 사용.
Kakao's Local (Map), Search, and Vision APIs as a Model Context Protocol server — Korea's location & content stack for Claude, Cursor, and any MCP client.
왜?
한국 앱·마케팅 개발에서 매일 필요한데(주소→좌표, 주변 장소, 국내 검색, 이미지 OCR) 깔끔한 MCP가 없었어요. 유저 OAuth 없이 REST 키 하나로 즉시 돌아갑니다.
Related MCP server: Naver Search MCP Server
설치
npx kakao-mcpREST API 키는 developers.kakao.com → 내 애플리케이션 → 앱 키 → REST API 키.
Claude Code / Claude Desktop
claude_desktop_config.json (또는 .mcp.json):
{
"mcpServers": {
"kakao": {
"command": "npx",
"args": ["-y", "kakao-mcp"],
"env": { "KAKAO_REST_API_KEY": "your_rest_api_key" }
}
}
}툴 (v0.1 · T1)
툴 | 설명 |
| 주소 → 위경도 좌표 + 정규화 주소 |
| 키워드 장소 검색 (좌표+반경 주변검색 지원) |
| 카테고리별 주변 장소 (카페·음식점·병원 등) |
| 좌표 → 도로명/지번 주소 |
| 좌표 → 행정동/법정동 |
| 다음 검색: 웹/블로그/카페/이미지/동영상/책 |
| 이미지 URL에서 텍스트 추출 (OCR) |
써보기
"판교역로 235 좌표 알려줘" "강남역 반경 500m 카페 5개 찾아줘" "이 좌표(127.02, 37.5) 무슨 동이야?" "블로그에서 '분당 브런치' 검색해줘"
로드맵
v0.2 (T2) — 카카오 로그인(OAuth) · 나에게 메시지 보내기(알림 훅)
v0.3 (T3) — 카카오톡 채널 · 알림톡/친구톡 · 카카오모먼트 광고
개발
npm install
npm run build
KAKAO_REST_API_KEY=... npm start라이선스
MIT © Kioko Lab
Available Tools
6 toolskakao_address_to_coordA
주소(도로명/지번)를 위경도 좌표로 변환하고 정규화된 주소를 반환. 예: '경기도 성남시 분당구 판교역로 235'.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 검색할 주소 문자열 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of disclosing behavior. It does mention that the tool returns a normalized address, which is an additional behavior beyond the name's implication. However, it does not disclose potential errors, rate limits, authentication requirements, or the exact response format, which are relevant for an external API tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: two sentences that state the core behavior and provide an example. There is no redundant information or filler. Every sentence earns its place, making it easy for an agent to quickly grasp the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a single parameter, no output schema, and no annotations. The description covers the main purpose, the input format via the example, and the output (coordinates and normalized address). It lacks an example of the output structure, which would be useful since no output schema is available, but it is sufficient for a straightforward conversion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the 'query' parameter as the address string to search (100% coverage). The description adds value by providing a concrete example of a valid address format, including Korean road address syntax. This helps the agent understand what kind of string is expected beyond the generic schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts addresses (both road name and lot number) to latitude/longitude coordinates and returns a normalized address. The provided example '경기도 성남시 분당구 판교역로 235' further clarifies the expected input. This distinguishes it from sibling tools like kakao_coord_to_address, which perform the reverse operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear that this tool should be used when you have an address and need to obtain geographic coordinates. While it does not explicitly list alternative tools or exclusion criteria, the purpose is specific enough to infer when to use it over siblings. The lack of explicit alternatives is a minor gap, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kakao_coord_to_addressB
위경도 좌표를 도로명/지번 주소로 역변환. 예: x=127.1086, y=37.4012.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | 경도(longitude) | |
| y | Yes | 위도(latitude) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits on its own. It only states the core reverse-geocoding function and gives an example, but it omits important details such as return format, whether both road and lot addresses are returned, coordinate system, error handling, or rate limits. This leaves the agent without critical information about what to expect from the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the primary function, followed by a helpful example. Every element serves a purpose, with no filler or redundant information. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's apparent simplicity, the description is incomplete because there is no output schema and no annotations. It does not describe the return structure, address type behavior, or failure modes. An agent would not know whether to expect a single string or structured fields, or how invalid coordinates are handled. This is a significant gap for a tool that produces complex address data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents x as longitude and y as latitude with 100% coverage. The description's example (x=127.1086, y=37.4012) provides a concrete illustration of expected values and confirms the order, but it does not add deeper semantics such as value ranges, coordinate format requirements, or units. This is a marginal addition, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's function: converting latitude/longitude coordinates to road name and land lot addresses ('도로명/지번 주소로 역변환'). The verb '역변환' (reverse convert) is specific and the concrete example with x and y values reinforces the input format. It implicitly distinguishes itself from sibling tools like kakao_address_to_coord (forward conversion) and kakao_coord_to_region (region-level) by focusing on full addresses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus the siblings. It does not mention that kakao_coord_to_region is appropriate for administrative region lookups or state any exclusions. The only usage cue is the basic operation itself, which is trivial and not helpful for selecting between alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kakao_coord_to_regionB
위경도 좌표를 행정동/법정동 행정구역 정보로 변환.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | 경도(longitude) | |
| y | Yes | 위도(latitude) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only states the conversion action without detailing coordinate system assumptions, error handling, or any operational constraints. An agent gets no additional behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, compact Korean sentence that is front-loaded and directly states the tool's purpose. It contains zero unnecessary words and achieves high information density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter conversion tool, this description is adequate for understanding the core purpose. However, without an output schema or explanation of the exact fields in '행정동/법정동 행정구역 정보', an agent may lack enough context to parse the returned response fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes x as longitude and y as latitude with 100% coverage. The description's mention of '위경도 좌표' adds minimal extra meaning beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a conversion action ('위경도 좌표를 ... 변환') with a specific resource type (행정동/법정동 행정구역 정보). It doesn't explicitly differentiate from the sibling 'kakao_coord_to_address', but the output specificity makes it distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a use case for converting coordinates to administrative region info but provides no explicit guidance on when to use this tool versus the sibling 'kakao_coord_to_address'. No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kakao_place_by_categoryA
특정 카테고리의 장소를 좌표 주변에서 검색. 카테고리 코드 필수. MT1 대형마트, CS2 편의점, PS3 어린이집·유치원, SC4 학교, AC5 학원, PK6 주차장, OL7 주유소·충전소, SW8 지하철역, BK9 은행, CT1 문화시설, AG2 중개업소, PO3 공공기관, AT4 관광명소, AD5 숙박, FD6 음식점, CE7 카페, HP8 병원, PM9 약국
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | 중심 경도(longitude) | |
| y | Yes | 중심 위도(latitude) | |
| size | No | 결과 개수(1~15) | |
| sort | No | 정렬 기준 | |
| radius | Yes | 반경(m), 최대 20000 | |
| category_group_code | Yes | 카테고리 그룹 코드 (예: CE7=카페, FD6=음식점) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavior. It accurately describes the search operation but adds minimal context beyond that—no mention of API key requirements, rate limits, or error conditions. The category code list is helpful but does not fully address operational traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by a required-parameter note and a compact mapping table. There is no irrelevant detail, and the long code list is necessary. The structure is clean and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool, the description is fairly complete: it covers the primary action, required input, and category codes. However, it does not mention the return format or output structure, which is notable given the absence of an output schema, though this is somewhat expected for a list-returning search function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptions and examples for all parameters, but the description goes further by enumerating every valid category_group_code (MT1, CS2, etc.) with meanings. This is essential for correct usage and far exceeds the schema's two examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for places of a specific category around given coordinates. It lists all category codes, making the scope unambiguous. This distinguishes it from sibling tools like kakao_search_place (general search) and coordinate conversion utilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use this tool (when you need places by category near coordinates) and explicitly notes that a category code is required. However, it does not mention alternatives or exclusions, such as using a general place search instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kakao_searchB
다음(Daum) 검색으로 웹/블로그/카페/이미지/동영상/책을 검색. 국내 콘텐츠·SEO 리서치에 유용.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | 결과 개수(기본 10) | |
| sort | No | 정렬(정확도/최신순) | |
| type | Yes | 검색 대상 종류 | |
| query | Yes | 검색어 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the search function and adds the scope 'domestic content,' but it does not mention whether results are read-only, any pagination or rate limits, or what the output contains. This falls short of the transparency burden given no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences efficiently state the tool's function and a primary use case with no redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the agent needs more context about return behavior, pagination, and limitations. The description provides only the function and a use case, leaving significant gaps for a 4-parameter search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters (type, query, size, sort) are already documented. The description adds no additional parameter-specific semantics beyond enumerating the type values, which are already in the enum. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a Daum search across multiple content types (web, blog, cafe, image, video, book). It distinguishes from sibling tools like kakao_search_place by focusing on general content search rather than places, though it does not explicitly name the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'useful for domestic content and SEO research' gives an intended use case, but it does not provide explicit when-to-use/when-not-to-use guidance or mention alternative tools such as kakao_search_place. The usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kakao_search_placeA
키워드로 장소를 검색. 좌표(x,y)+반경을 주면 주변 검색. 예: '강남역 카페', '판교 맛집'.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | 중심 경도(longitude). 주변검색 시 | |
| y | No | 중심 위도(latitude). 주변검색 시 | |
| size | No | 결과 개수(1~15, 기본 15) | |
| sort | No | 정렬(distance는 좌표 필요) | |
| query | Yes | 검색 키워드 | |
| radius | No | 중심 좌표로부터 반경(m), 최대 20000 | |
| category_group_code | No | 카테고리 필터 코드. MT1 대형마트, CS2 편의점, PS3 어린이집·유치원, SC4 학교, AC5 학원, PK6 주차장, OL7 주유소·충전소, SW8 지하철역, BK9 은행, CT1 문화시설, AG2 중개업소, PO3 공공기관, AT4 관광명소, AD5 숙박, FD6 음식점, CE7 카페, HP8 병원, PM9 약국 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses a key behavioral trait: adding x,y and radius enables a surrounding search. However, it doesn't mention other behavioral aspects like result limits, sorting behavior, or whether the query must be a place name. This is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with useful examples. It conveys the core functionality without unnecessary words, making it highly scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 7 parameters and no output schema, the description covers the primary usage and gives examples that anchor parameter semantics. It doesn't detail return values, but the core purpose and trigger for coordinate-based search are clear. Given the straightforward nature of the tool, this is sufficient, though not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds marginal value by explicitly linking x,y and radius to the surrounding search use case, but it doesn't explain parameter syntax or formats beyond the schema. It neither compensates nor contradicts, so a baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for places by keyword, and optionally performs a surrounding search using coordinates and radius. It includes concrete examples ('강남역 카페', '판교 맛집') that illustrate typical queries, effectively distinguishing it from geocoding and category-based sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: keyword search, and when coordinates (x,y) and radius are supplied, a nearby search. It doesn't explicitly name alternatives or exclusions, but the examples and wording imply when this tool is appropriate relative to siblings like kakao_place_by_category or kakao_coord_to_address.
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.
6 tool updates
v0.1.0- First observed
kakao_address_to_coord - First observed
kakao_coord_to_address - First observed
kakao_coord_to_region - First observed
kakao_place_by_category - First observed
kakao_search - First observed
kakao_search_place
TDQS
Scored across 6 tools
The coordinate conversion tools (address_to_coord, coord_to_region, coord_to_address) have clear but slightly overlapping purposes, while the place search tools are distinguished by keyword vs category. The general search tool is clearly separate from local services. Only coord_to_region and coord_to_address could occasionally be confused.
All tools share the 'kakao_' prefix, and most follow a noun_to_noun or verb_noun pattern. However, 'place_by_category' and 'search' deviate from the conversion-oriented naming, making the set slightly inconsistent.
With 6 tools, the server covers both local API operations (address/coord conversions, place search) and a general search API. This is a well-scoped set for a Kakao API wrapper, with no redundant or missing obvious tools.
The tool surface covers the primary Kakao Local API functions: forward/reverse geocoding, region lookup, and two types of place search. The general search tool handles web, blog, cafe, image, video, and book searches. Minor gaps exist (e.g., no direct region-to-coordinates lookup) but are workarounds.
Maintenance
Related MCP Connectors
Korean fact-verification tools for AI agents: business registration, address, DART, apt prices, laws
- mcpweaveOAuthcom.mcpweave
Korea-native MCP gateway: Korean commerce, payments, messaging, gov & finance APIs for AI agents.
PDF, image, video, OCR, screenshot, SQL, QR and text tools for agents. No API key, no signup.
Discover, inspect and run 63,000+ agent tools from one balance. Pay per call, no subscriptions.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to access South Korean tourism information via the official Korea Tourism Organization API, providing comprehensive search for attractions, events, food, and accommodations with multilingual support.89MIT
- AlicenseAqualityDmaintenanceProvides access to Naver Search APIs, allowing AI agents to search across multiple categories (blogs, news, books, images, shopping items, etc.) with structured responses optimized for LLM consumption.134Apache 2.0
- AlicenseBqualityDmaintenanceConnects to Kakao Local API and Kakao Maps, enabling access to location-based services and map functionality in Korea.4MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to discover and invoke KakaoCloud OpenAPI endpoints for managing cloud resources like VMs, VPCs, load balancers, and databases.51MIT