MCP Kakao Local
MCP カカオローカル
MCP はカカオ ローカル APIとカカオ マップに接続します。 MCP の API をサポートします。
前提条件
始める前に、以下がインストールされていることを確認してください。
Related MCP server: KMA Weather MCP Server
構成
**
.envファイルを作成する:**プロジェクト ルートにファイルを作成します。API 資格情報の追加:
.envファイルを編集し、Kakao REST API 資格情報を追加します。REST_API_KEY="YOUR_REST_API_KEY_HERE"src/mcp_kakao_local/kakao_local_client.pyをチェックして、必要な正確な環境変数名を確認してください。
MCPの実行
**依存関係の同期:**ターミナルでプロジェクトのルートディレクトリに移動し、以下のコマンドを実行します。これにより、仮想環境(存在しない場合)が作成され、
pyproject.tomlで指定されたすべての依存関係がインストールされます。uv sync実行:
uvを使用して MCP サーバーを実行できます。uv run src/mcp_kakao_local開発のために、
source .venv/bin/activate mcp dev src/mcp_kakao_local/server.py
Available Tools
4 toolsfind_coordinatesC
Find coordinates of a given address
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | address to search for | |
| page | No | page number of result |
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 of behavioral disclosure. It states the action ('find coordinates') but doesn't describe traits like whether it's read-only, if it requires authentication, rate limits, error handling, or the format of returned coordinates. This leaves significant gaps for a tool with no structured safety hints.
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, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and appropriately sized, making it easy for an agent to parse quickly.
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?
Given no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., coordinates format, error cases), behavioral traits, or usage context relative to siblings. For a tool with 2 parameters and potential complexity in geocoding, this leaves the agent under-informed.
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 input schema already documents both parameters ('address' and 'page') with descriptions. The description adds minimal value beyond implying the 'address' parameter is used for searching, but doesn't provide additional context like address format examples or pagination behavior, meeting the baseline for high schema coverage.
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's purpose with a specific verb ('find') and resource ('coordinates'), and specifies the input ('address'). However, it doesn't differentiate from sibling tools like 'get_place' or 'search_by_category', which might have overlapping functionality for location-related queries.
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 guidance on when to use this tool versus alternatives like 'get_place' or 'search_by_category'. It lacks context about prerequisites, such as address format expectations, or exclusions, leaving the agent to infer usage based on the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_placeC
Fetches details for a place such as name, address, reviews, photos and etc
| Name | Required | Description | Default |
|---|---|---|---|
| place_id | Yes | ID of a place, which is document ID in location search results |
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 of behavioral disclosure. It states the tool fetches details but doesn't describe the return format, pagination, error handling, rate limits, or authentication needs. For a read operation with zero annotation coverage, this is a significant gap in transparency.
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, efficient sentence that front-loads the key action and resource. It avoids unnecessary words, though it could be slightly more structured (e.g., by listing details more clearly). Every part of the sentence contributes to understanding the tool's purpose.
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?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the return values look like (e.g., structure of details like reviews or photos), error cases, or behavioral traits. For a tool that fetches potentially complex data, this leaves significant gaps for the agent.
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 has 100% coverage, fully documenting the single parameter 'place_id' with its description, type, and constraints. The description adds no additional parameter information beyond what the schema provides, such as examples or context for obtaining the ID. Baseline 3 is appropriate when the schema does the heavy lifting.
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 action ('fetches details') and resource ('a place'), specifying what information is retrieved (name, address, reviews, photos, etc.). It distinguishes from sibling tools like 'find_coordinates' or 'search_by_category' by focusing on retrieving details for a specific place rather than searching or locating. However, it doesn't explicitly differentiate from potential siblings that might also fetch place details, keeping it at 4.
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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a place_id from search results), exclusions, or comparisons to sibling tools like 'search_by_keyword' for initial lookup. This lack of context leaves the agent without clear usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_categoryC
Searches for places with matching category group code
| Name | Required | Description | Default |
|---|---|---|---|
| category_group_code | Yes | category used to search for places (CategoryGroupCode resource) | |
| center_coordinate | Yes | longitude and latitude of a center | |
| radius_from_center | Yes | search radius from the center in meters | |
| page | No | page number of result |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the search action without detailing aspects like whether it's read-only, if it requires authentication, rate limits, pagination behavior, or what the output looks like. This leaves significant gaps for an agent to understand how the tool behaves beyond its basic function.
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, efficient sentence that directly states the tool's purpose without any unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly.
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?
Given the complexity of a search tool with 4 parameters and no output schema or annotations, the description is insufficient. It doesn't explain the return format, error handling, or behavioral traits, leaving the agent with incomplete information to use the tool effectively in context with its siblings.
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 description coverage is 100%, meaning all parameters are documented in the schema itself. The description adds no additional meaning beyond what the schema provides, such as explaining how parameters interact or providing usage examples. However, since the schema is comprehensive, 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 states the verb ('searches for') and resource ('places') with a specific criterion ('matching category group code'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'search_by_keyword' or 'find_coordinates', which might have overlapping use cases, so it doesn't reach a perfect score.
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 guidance on when to use this tool versus alternatives like 'search_by_keyword' or 'find_coordinates'. It lacks context about prerequisites, such as needing a center coordinate and radius, and doesn't mention any exclusions or specific scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_keywordC
Searches for places related to the keyword
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | keyword used to search for places | |
| category_group_code | No | category used for filtering results (CategoryGroupCode resource) | |
| center_coordinate | No | longitude and latitude of a center | |
| radius_from_center | No | search radius from the center in meters | |
| page | No | page number of result |
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 but offers none. It doesn't mention whether this is a read-only operation, what permissions might be required, rate limits, pagination behavior (despite having a 'page' parameter), or what the search results might look like. This leaves the agent with critical gaps in understanding how the tool behaves.
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, efficient sentence with zero wasted words. It's appropriately sized for a search tool and front-loads the core functionality. Every word earns its place by conveying the essential action and target.
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?
Given the complexity (5 parameters, no annotations, no output schema), the description is incomplete. It doesn't address behavioral aspects, result format, or usage context. For a search tool with multiple filtering options and pagination, more guidance is needed to help the agent use it effectively.
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 schema already documents all parameters thoroughly. The description adds no additional meaning beyond implying the 'keyword' parameter is central. It doesn't explain parameter interactions, default behaviors, or practical usage examples, so it meets the baseline but doesn't enhance understanding.
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 'Searches for places related to the keyword' clearly states the verb ('searches') and resource ('places'), but it's vague about scope and doesn't distinguish from sibling tools like 'search_by_category' or 'find_coordinates'. It specifies the search is keyword-based, which helps differentiate from category-based search, but doesn't explain how it differs from coordinate-based finding.
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 guidance on when to use this tool versus alternatives like 'search_by_category' or 'find_coordinates'. There's no mention of prerequisites, typical use cases, or comparative advantages. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: find_coordinates converts addresses to coordinates, get_place retrieves detailed place information, search_by_category filters by category codes, and search_by_keyword searches by text keywords. There is no overlap in functionality, making tool selection unambiguous for an agent.
The tools follow a consistent verb_noun pattern (e.g., find_coordinates, get_place, search_by_category, search_by_keyword) with clear, descriptive names. The minor deviation is that 'find' and 'get' are used as verbs instead of a single verb style, but this does not hinder readability or predictability.
With 4 tools, the server is well-scoped for a local search and mapping service. Each tool serves a specific, essential function (geocoding, place details, category search, keyword search), and there are no extraneous tools, making the count appropriate for the domain.
The toolset covers core functionalities for a local search API: geocoding, place details, and two search methods (category and keyword). A minor gap is the lack of route planning or navigation tools, but the provided tools allow agents to perform key tasks like finding and exploring places effectively.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Korea-native MCP gateway: Korean commerce, payments, messaging, gov & finance APIs for AI agents.
Korean business registry, corporate info, parcel tracking, validation APIs
Korean tax-office and fair-trade registries, HS codes, landed cost. Two tools need no API key.
Korea payments for AI agents — card, KakaoPay/NaverPay, 가상계좌 via Toss Payments. Never holds funds.
Related MCP Servers
- AlicenseBqualityDmaintenanceA server that connects to Naver Maps and Search APIs, enabling geocoding and local search functionality for Korean locations.22MIT
- FlicenseBqualityDmaintenanceConnects to the Korea Meteorological Administration (KMA) Open API to provide short-term and ultra-short-term weather forecasts for South Korea. It enables users to query current weather conditions and future forecasts based on latitude and longitude.2
- AlicenseAqualityDmaintenanceProvides location-based place recommendations in South Korea using the Kakao Map API, optimized for Korean language queries. Supports recommending various places like restaurants, shops, public facilities, and tourist attractions based on user queries.116MIT
- AlicenseNot gradedqualityDmaintenanceIntegrates Korean APIs (Naver, Kakao, TMAP) into LLM applications for search, maps, and directions.10MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/yunkee-lee/mcp-kakao-local'
If you have feedback or need assistance with the MCP directory API, please join our Discord server