Skip to main content
Glama

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-mcp

REST 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)

설명

kakao_address_to_coord

주소 → 위경도 좌표 + 정규화 주소

kakao_search_place

키워드 장소 검색 (좌표+반경 주변검색 지원)

kakao_place_by_category

카테고리별 주변 장소 (카페·음식점·병원 등)

kakao_coord_to_address

좌표 → 도로명/지번 주소

kakao_coord_to_region

좌표 → 행정동/법정동

kakao_search

다음 검색: 웹/블로그/카페/이미지/동영상/책

kakao_ocr

이미지 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 tools
kakao_address_to_coordA

주소(도로명/지번)를 위경도 좌표로 변환하고 정규화된 주소를 반환. 예: '경기도 성남시 분당구 판교역로 235'.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes검색할 주소 문자열

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes경도(longitude)
yYes위도(latitude)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

위경도 좌표를 행정동/법정동 행정구역 정보로 변환.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes경도(longitude)
yYes위도(latitude)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 약국

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes중심 경도(longitude)
yYes중심 위도(latitude)
sizeNo결과 개수(1~15)
sortNo정렬 기준
radiusYes반경(m), 최대 20000
category_group_codeYes카테고리 그룹 코드 (예: CE7=카페, FD6=음식점)

TDQS

A4.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_search_placeA

키워드로 장소를 검색. 좌표(x,y)+반경을 주면 주변 검색. 예: '강남역 카페', '판교 맛집'.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo중심 경도(longitude). 주변검색 시
yNo중심 위도(latitude). 주변검색 시
sizeNo결과 개수(1~15, 기본 15)
sortNo정렬(distance는 좌표 필요)
queryYes검색 키워드
radiusNo중심 좌표로부터 반경(m), 최대 20000
category_group_codeNo카테고리 필터 코드. MT1 대형마트, CS2 편의점, PS3 어린이집·유치원, SC4 학교, AC5 학원, PK6 주차장, OL7 주유소·충전소, SW8 지하철역, BK9 은행, CT1 문화시설, AG2 중개업소, PO3 공공기관, AT4 관광명소, AD5 숙박, FD6 음식점, CE7 카페, HP8 병원, PM9 약국

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 6 tool updatesv0.1.0
    • First observedkakao_address_to_coord
    • First observedkakao_coord_to_address
    • First observedkakao_coord_to_region
    • First observedkakao_place_by_category
    • First observedkakao_search
    • First observedkakao_search_place

TDQS

A3.7/5.0

Scored across 6 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers