inavi-mcp
OfficialThe iNavi MCP server lets AI assistants discover iNavi Maps API specs, retrieve reusable HTML map templates, and look up Web JS SDK references to build location-based features and interactive maps via natural language.
Browse API specifications – List iNavi Maps APIs by category (search, geocoding, routes, matrix, optimization, map matching, what3words, spatial) and get detailed request/response schemas for a given
operationId.Generate correct API call code – Use the retrieved specs so the AI writes accurate TypeScript/JavaScript calls for geocoding, POI search, route finding, distance matrices, TSP optimization, and more.
Create interactive map pages – Retrieve 18 ready-made HTML templates (categories: dynamic-maps, marker, infowindow, shapes) for markers, clusters, polygons, polylines, traffic-colored routes, info windows, and map animations; customize only data values.
Combine API specs with map visualization – Build end-to-end examples like geocode an address and show the result as a marker, or visualize a route as a polyline.
Access SDK reference docs – Look up iNavi Maps Web JS SDK symbols (classes like Map, Marker, Polyline, and their options/types) to confirm exact method signatures and options without guessing.
Filter and discover efficiently – Use
list_*tools to explore categories/symbols, thenget_*tools to fetch full details (HTML, API spec, or SDK doc).
INAVI Maps Docs MCP Server
AI 어시스턴트에 지도 인텔리전스를 부여하는 MCP (Model Context Protocol) 서버입니다.
INAVI Maps Docs MCP Server를 연결하면, AI가 INAVI Maps의 위치 기반 API와 Web JS SDK를 이해하고 인터랙티브 지도를 직접 생성할 수 있게 됩니다. 별도의 문서를 읽거나 코드를 직접 작성할 필요 없이, 자연어로 대화하며 지도 기반 기능을 구현할 수 있습니다.
API 명세 - 지오코딩, POI 검색, 경로 탐색, 맵 매칭 등 30개 이상의 INAVI Maps API 명세(OAS 기반)를 AI에게 제공
지도 SDK 예제 - 마커, 클러스터, 폴리곤, 폴리라인 등 바로 실행되는 18개의 지도 SDK 예제로 인터랙티브 지도 생성
SDK 레퍼런스 - Web JS SDK의 클래스·메서드·옵션·이벤트 정의를 제공해, 예제에 없는 기능도 실제 시그니처대로 작성
이런 분들에게 적합합니다:
빠른 프로토타이핑 - API 문서를 읽지 않고 AI 대화만으로 지도 기반 기능 구현
위치 기반 서비스 개발 - 지오코딩, 경로 탐색, POI 검색 등을 활용한 서비스 구축
데이터 시각화 - 위치 데이터를 인터랙티브 지도 위에 시각화
빠른 시작
방법 1: .mcpb Bundle (Claude Desktop 전용 - 추천)
가장 쉬운 설치 방법입니다. 별도 환경 구성 없이 바로 사용할 수 있습니다.
GitHub Releases에서 최신
.mcpb파일 다운로드다운로드한
.mcpb파일을 Claude Desktop에 드래그 앤 드롭 (또는 더블클릭)Claude Desktop 재시작
완료! 이제 Claude에게 지도 관련 질문을 할 수 있습니다.
방법 2: npx (모든 MCP 호스트)
Cursor, VS Code, Claude Code, Codex, Windsurf 등 다양한 MCP 호스트에서 사용할 수 있습니다.
사전 요구사항: Node.js 22 이상이 설치되어 있어야 합니다.
표준 설정 — 대부분의 MCP 호스트에서 그대로 사용할 수 있습니다.
{
"mcpServers": {
"inavi-maps-mcp": {
"command": "npx",
"args": ["-y", "@inavi-maps/mcp-server"]
}
}
}사용 중인 도구를 펼쳐 설정 위치를 확인하세요.
위 Install in Cursor 버튼을 누르거나, ~/.cursor/mcp.json에 표준 설정을 추가합니다. (공식 가이드)
위 Install in VS Code 버튼을 누르거나, 다음 명령을 실행합니다. (공식 가이드)
code --add-mcp '{"name":"inavi-maps-mcp","command":"npx","args":["-y","@inavi-maps/mcp-server"]}'설정 파일을 직접 편집할 때는 최상위 키가 mcpServers가 아닌 servers입니다.
claude mcp add --transport stdio inavi-maps-mcp -- npx -y @inavi-maps/mcp-server또는 ~/.claude.json에 표준 설정을 추가합니다. (공식 가이드)
claude_desktop_config.json에 표준 설정을 추가합니다. (공식 가이드)
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
codex mcp add inavi-maps-mcp -- npx -y @inavi-maps/mcp-server또는 ~/.codex/config.toml에 추가합니다 (TOML 형식). (공식 가이드)
[mcp_servers.inavi-maps-mcp]
command = "npx"
args = ["-y", "@inavi-maps/mcp-server"]~/.codeium/windsurf/mcp_config.json에 표준 설정을 추가합니다. (공식 가이드)
Related MCP server: OpenStreetMap MCP Server
사용 예시
MCP 서버를 설치한 후, AI에게 자연어로 요청하세요.
API 탐색 & 코드 생성
이 MCP 서버는 INAVI Maps API 명세를 AI에게 제공합니다. AI가 직접 API를 호출하는 것이 아니라, API 명세를 참조하여 올바른 호출 코드를 작성해 줍니다.
INAVI Maps에서 사용할 수 있는 지오코딩 관련 API를 알려줘리버스 지오코딩 API의 요청/응답 명세를 보여줘주소를 좌표로 변환하는 API 호출 코드를 TypeScript로 작성해줘출발지-도착지 경로 탐색 API를 사용하는 예제 코드를 만들어줘N:1 거리 매트릭스 API로 가장 가까운 매장을 찾는 로직을 구현해줘지도 시각화
AI가 지도 SDK 예제로 동작하는 페이지를 먼저 구성하고, 예제에 없는 옵션·메서드·이벤트는 SDK 레퍼런스에서 확인해 반영합니다.
INAVI Maps 지도에 마커를 표시하는 HTML 페이지를 만들어줘여러 지점을 클러스터로 묶어서 지도에 표시하는 페이지를 만들어줘경로를 교통 상황 색상으로 지도에 시각화하는 페이지를 만들어줘서울 주요 관광지를 폴리곤 영역과 마커로 표시하는 지도를 만들어줘클러스터에서 마커를 클릭하면 해당 장소의 정보를 InfoWindow로 보여줘SDK 레퍼런스 조회
Web JS SDK의 클래스·메서드·옵션 정의를 AI가 기억에 의존해 추측하지 않고 확인한 뒤 답변합니다.
Marker에서 사용할 수 있는 이벤트와 옵션을 알려줘Map#fitBounds의 파라미터와 옵션을 알려줘Polyline 선 스타일(LineStyle)로 지정할 수 있는 값을 정리해줘조합 활용
API 명세, 지도 SDK 예제, SDK 레퍼런스를 함께 사용하면 더 복잡한 기능을 구현할 수 있습니다.
지오코딩 API로 주소를 좌표로 변환하고, 그 결과를 지도에 마커로 표시하는 페이지를 만들어줘경로 탐색 API 호출 결과를 지도 위에 폴리라인으로 그리고, 지도 범위를 경로 전체에 맞춰줘사용 가능한 도구
이 MCP 서버는 세 종류, 총 6개의 도구를 제공합니다. 각 도구 쌍은 탐색 → 상세 조회의 2단계 워크플로우로 설계되어 있습니다.
API 명세 도구
INAVI Maps API 명세(OAS 기반)를 AI에게 제공하여, API 문서를 직접 읽지 않고도 AI가 올바른 API 호출 코드를 작성할 수 있도록 합니다.
도구 | 설명 | 주요 입력 |
| API 명세 목록 조회 |
|
| 특정 API 상세 명세 조회 |
|
워크플로우: list_api_specs로 사용 가능한 API를 탐색한 후, get_api_spec에 operationId를 전달하여 파라미터, 요청/응답 스키마 등 상세 명세를 조회합니다.
카테고리 | 설명 | 포함 API |
| 장소/주소 검색 | 통합 검색, 다국어 통합 검색, 장소 상세 조회, 시설물 정보 조회, 검색어 추천, 주변 카테고리 검색, 최적 지점 검색 |
| 지오코딩 | 지오코딩, 리버스 지오코딩 |
| 공간 검색 | 공간 검색, 행정/법정동 영역 검색, 좌표(계) 변환 |
| what3words | W3W 검색어 추천, W3W 리버스 지오코딩, W3W 최적 지점 검색 |
| 경로 탐색 | 경로 탐색, 경로 탐색 요약, 경로 예측 탐색, 다중 경유지 탐색 100, 도보/PM 경로 탐색 |
| 경유지 최적화 | TSP 10, TSP 30, TSP 50, TSP 100 (다중 경유지 최적화) |
| 맵 매칭 | Special Map Matching, MTR 100, MTR 1000 |
| 거리/시간 매트릭스 | N:1, 1:N, M:N 매트릭스 |
지도 SDK 예제 도구
SDK 로더부터 지도 초기화까지 포함된, 바로 실행되는 지도 SDK 예제(HTML)를 제공합니다. AI가 예제의 데이터 값(좌표, 레이블 등)을 커스터마이징하여 맞춤형 지도 페이지를 생성합니다.
도구 | 설명 | 주요 입력 |
| 지도 SDK 예제 목록 조회 |
|
| 특정 지도 SDK 예제의 HTML 코드 조회 |
|
워크플로우: list_map_examples로 사용 가능한 예제를 탐색한 후, get_map_example에 id를 전달하여 완전한 HTML 코드를 조회합니다.
카테고리 | 예제 수 | 포함 예제 |
| 5 | 기본 지도, 지도 정보 표시, 거리 계산, 지도 타입 전환, FlyTo 애니메이션 |
| 6 | 기본 마커, 이동 가능 마커, 클러스터, 클러스터 격자 크기, 넘버링, 컬러 마커 |
| 2 | 기본 InfoWindow, 클러스터 마커 InfoWindow |
| 5 | 원, 폴리곤, 멀티 폴리곤, 스타일 변경, 폴리라인 (교통 색상) |
SDK 레퍼런스 도구
INAVI Maps Web JS SDK의 클래스와 옵션/타입 정의를 제공합니다. 지도 SDK 예제에 없는 옵션·메서드·이벤트를 AI가 기억에 의존해 추측하지 않고, 실제 시그니처를 확인한 뒤 작성하도록 합니다.
도구 | 설명 | 주요 입력 |
| SDK 레퍼런스 심볼 목록 조회 (클래스는 메서드명 포함) |
|
| 특정 심볼 또는 단일 메서드의 SDK 레퍼런스 조회 |
|
워크플로우: 지도를 만들 때는 list_map_examples로 실행 가능한 지도 SDK 예제를 먼저 확보하고, 예제에 없는 기능이 필요할 때 list_sdk_docs → get_sdk_doc으로 정확한 시그니처를 확인합니다. SDK 로더 스크립트는 예제에만 있으므로 레퍼런스만으로는 동작하는 페이지를 만들 수 없습니다.
docId는 클래스/타입 id(inavi.maps.Map, MapOptions)와 메서드 롱네임(inavi.maps.Map#fitBounds)을 모두 받습니다.
카테고리 | 심볼 수 | 포함 심볼 |
| 2 | Map, EventPayload |
| 8 | Circle, CustomInfoWindow, InfoWindow, Label, Marker, MarkerClusterer, Polygon, Polyline |
| 3 | CompassControl, LogoScaleControl, ZoomControl |
| 12 | LngLat, LngLatBounds, Pixel, PixelBounds, TWLngLat, TWLngLatBounds 및 각 |
| 15 | MapOptions, MarkerOptions, CircleOptions 등 |
| 5 | ClusterStyle, Color, FillStyle, LabelStyle, LineStyle |
Tools
총 6개 도구를 탐색 → 상세 조회 3쌍으로 제공합니다.
list_api_specs— INAVI Maps API 명세를 카테고리별로 탐색합니다.get_api_spec—operationId로 특정 API의 상세 명세를 조회합니다.list_map_examples— 지도 SDK 예제 목록을 카테고리별로 탐색합니다.get_map_example—id로 특정 지도 SDK 예제의 HTML 코드를 조회합니다.list_sdk_docs— Web JS SDK 심볼(클래스, 옵션/타입 정의)을 카테고리별로 탐색합니다.get_sdk_doc—docId로 SDK 심볼 하나 또는 단일 메서드의 SDK 레퍼런스를 조회합니다.
문제 해결
MCP 서버가 연결되지 않을 때
Node.js 버전 확인: Node.js 22 이상이 필요합니다 (
node -v로 확인)MCP Host 재시작: 설정 변경 후 반드시 재시작
설정 파일 확인: JSON 문법 오류가 없는지 확인
JSON 파싱 에러
Unexpected token...is not valid JSON해결 방법:
최신 버전으로 업데이트 (이미 수정된 이슈)
로컬 개발 시
console.log대신 MCP Logging 사용 (stdout 오염 방지)
더 자세한 문제 해결 방법은 Troubleshooting Guide를 참고하세요.
문서
문서 | 설명 |
모든 도구의 상세 입출력 문서 | |
Claude Desktop 설치 및 설정 가이드 | |
Cursor IDE 설정 가이드 | |
소스 코드에서 직접 빌드 및 실행 | |
상세 문제 해결 가이드 |
라이선스
MIT License - 자유롭게 사용, 수정, 배포할 수 있습니다. 자세한 내용은 LICENSE 파일을 참조하세요.
참고 자료
Model Context Protocol - MCP 공식 문서
Claude Desktop - Claude Desktop 다운로드
INAVI Maps API - INAVI Maps API 공식 문서
Available Tools
6 toolsget_api_specGet INAVI Maps API SpecificationA
Retrieves detailed specification of a specific API (including request/response schemas). PREREQUISITE: First use list_api_specs to browse available APIs and obtain the operationId. USAGE: Provide an operationId to get the complete API specification including parameters, request body, and response schemas. NOTE: All $ref references have already been dereferenced to actual schema contents.
| Name | Required | Description | Default |
|---|---|---|---|
| operationId | Yes | Unique identifier of the API to retrieve (e.g., getRouteTimeResult) |
Output Schema
| Name | Required | Description |
|---|---|---|
| path | Yes | API path |
| tags | Yes | API category tags |
| method | Yes | HTTP method |
| baseUrl | Yes | Base URL |
| summary | Yes | Brief API description |
| category | Yes | API category (route, search) |
| responses | Yes | Response schemas by status code |
| deprecated | No | Whether the API is deprecated |
| parameters | No | List of API parameters |
| description | Yes | Detailed API description |
| operationId | Yes | Unique API identifier |
| requestBody | No | Request body schema |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and clearly implies a read-only retrieval. It usefully discloses that all $ref references have already been dereferenced and that the full specification includes parameters, request body, and response schemas, though it does not discuss error behavior or permissions.
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 and structured with PREREQUISITE, USAGE, and NOTE sections. Every sentence adds actionable information without repetition.
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 a single required parameter, full schema coverage, and an output schema, the description is complete enough for correct invocation. It covers the prerequisite, the input semantics, and the important dereferencing detail.
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 coverage is 100%, so the operationId parameter is already fully documented with an example. The description reinforces that operationId identifies the API but does not add format or syntax details beyond the schema.
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 states a specific verb and resource: retrieves the detailed specification of a specific API, including request/response schemas. It clearly distinguishes itself from the sibling list_api_specs by focusing on one API identified by operationId.
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?
It gives an explicit prerequisite to first use list_api_specs to browse APIs and obtain the operationId, and then states the usage pattern for retrieval. The alternative workflow is named directly, leaving little inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_map_exampleGet INAVI Maps Example HTMLA
Retrieve one INAVI Maps HTML example by id, with its full metadata (description, keywords, use cases, features) and the complete HTML template. PREREQUISITE: Use list_map_examples to find the id. LOADER: The template ends with the SDK loader script. Its domain is filled in, but {appKey} is left as a placeholder — substitute a real application key before the page will run. CUSTOMIZING: Data values (coordinates, zoom, labels, colors) can be replaced freely. Options, methods, events or styles the template does not show may be added, but verify each one with get_sdk_doc first — never invent API from memory or another provider, as INAVI Maps and Google Maps differ in syntax.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Example ID to retrieve (e.g., "marker-basic", "shapes-polyline"). Use list_map_examples tool first to see available IDs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| metadata | Yes | Complete metadata for the selected example |
| htmlContent | Yes | Complete HTML template code with INAVI Maps API integration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: it discloses the {appKey} placeholder gotcha that prevents the template from running, notes the loader script at the end, and warns that INAVI and Google Maps syntax differ so API must not be invented. It omits return size or pagination expectations, keeping it short of a 5.
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?
Front-loads the core action, then uses bolded labels (PREREQUISITE, LOADER, CUSTOMIZING) to segment secondary guidance so an agent can scan it. Slightly dense, but each labeled block conveys a distinct, actionable fact.
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?
An output schema exists, so return structure need not be spelled out, yet the description still previews the payload (metadata plus template). Combined with the prerequisite, the placeholder warning, and the customization rules, nothing needed to call it correctly is missing.
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 single id parameter is already fully documented in the schema (100% coverage), including example values and the pointer to list_map_examples. The description only restates that lookup is by id, adding no format or constraint detail beyond the schema.
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?
States a specific verb and resource ("Retrieve one INAVI Maps HTML example by id") plus exactly what is returned (metadata and complete HTML template). This clearly distinguishes it from the sibling list_map_examples, which only enumerates ids.
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?
Gives an explicit prerequisite ("Use list_map_examples to find the id") and a clear routing rule for related work (verify any extra API surface with get_sdk_doc first). It does not state when to avoid this tool, but the retrieve-by-id scope makes misuse unlikely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sdk_docGet INAVI Maps SDK DocumentationA
Retrieves SDK documentation for one symbol as Markdown. Pass a class/type id for the whole symbol (description, constructor, method signatures, parameters, return types, events, referenced value types), or a method longname (e.g., inavi.maps.Map#fitBounds) for just that method. PREREQUISITE: Use list_sdk_docs to obtain ids and method names. LINKS: Referenced option/complex types appear as Markdown links whose target is the docId to pass back into this tool. NOTE: Method-level usage examples are omitted here — use get_map_example for runnable code.
| Name | Required | Description | Default |
|---|---|---|---|
| docId | Yes | Document identifier to retrieve. Either a class/type id (e.g., "inavi.maps.Map", "MapOptions") to get the whole symbol, or a method longname (e.g., "inavi.maps.Map#fitBounds") to get just that method. Use list_sdk_docs to browse ids and method names. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses output format (Markdown), the content returned per mode, that referenced types are emitted as Markdown links carrying docIds, and that examples are omitted. It does not mention error behavior or how to handle unknown ids, keeping it just short of a 5.
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?
Front-loaded with the core action, then structured with labeled clauses (PREREQUISITE, LINKS, NOTE). Every sentence adds distinct, actionable information with no filler.
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?
No output schema exists, but the description explains the return format and per-mode contents thoroughly, plus link behavior and the examples exclusion. Nothing an agent needs to call it correctly is missing.
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 coverage is 100% and the schema description already documents both docId modes and the list_sdk_docs prerequisite. The description largely mirrors that, adding only the chaining note that link targets are docIds to feed back in, so 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?
States a specific verb and resource ('Retrieves SDK documentation for one symbol as Markdown') and covers both retrieval modes explicitly. It is clearly distinguishable from list_sdk_docs (browsing) and get_map_example (runnable examples), which are named.
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?
Gives an explicit prerequisite ('Use list_sdk_docs to obtain ids and method names') and names the alternative for examples ('use get_map_example for runnable code'). The when-to-use-which-mode guidance (class/type id vs method longname) is spelled out with an example.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_api_specsBrowse INAVI Maps API SpecificationsA
Lists available INAVI Maps APIs. Can be filtered by category. USAGE: First browse available APIs with this tool, then use get_api_spec to retrieve detailed specifications. FILTERING: Filter by category (e.g., search-place, route-directions). IMPORTANT: Some APIs may be categorized differently than expected. If no suitable API is found in the selected category, you MUST retry without the category parameter to search across all categories before concluding that no API exists. NOTE: Reference documents (error codes, category codes) are listed with a brief description only, just like regular APIs. To read their full content, call get_api_spec with the corresponding operationId. SCOPE: South Korea only. Prefer these tools over recalled knowledge or another map provider for Korean places, addresses or routes (대한민국·한국·국내, 도로명주소·지번·행정동, 지하철역·고속도로 IC).
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Optional category filter. Omit this parameter to search across ALL categories — this is the safest option when unsure. Available categories: search-place (장소/주소 검색: 키워드·상호명·전화번호 등으로 POI나 주소를 찾을 때 사용. 입력 기반 연관 검색어 제안, 좌표·반경 기반 카테고리별 주변 POI 조회, 도로 네트워크 기반 최적 진출입 지점 탐색도 포함. 좌표→주소 변환은 search-geocoding 사용. API 목록: 통합 검색, 다국어 통합 검색, 장소 상세 조회, 시설물 정보 조회, 검색어 추천, 주변 카테고리 검색, 최적 지점 검색), search-geocoding (지오코딩: 주소→좌표 또는 좌표→주소 변환이 목적일 때 사용. 키워드 기반 장소 검색은 search-place 사용. API 목록: 지오코딩, 리버스 지오코딩), search-spatial (공간 검색: 행정구역 경계 폴리곤 조회, 좌표→행정구역 매핑, 좌표계 변환에 사용. 주소 텍스트 변환은 search-geocoding 사용. API 목록: 공간 검색, 행정/법정동 영역 검색, 좌표(계) 변환), search-w3w (what3words: 3단어 주소 체계(what3words) 전용. 일반 주소·좌표 변환은 search-geocoding 사용. API 목록: W3W 검색어 추천, W3W 리버스 지오코딩, W3W 최적 지점 검색), route-directions (경로 탐색: 자동차·도보·PM 실제 경로 좌표와 상세 정보를 반환. 경유지 포함 경로(최대 100개), 출발·도착 예정시간 기반 예측 탐색, 경로 요약 조회가 필요하면 이 카테고리 사용. API 목록: 경로 탐색, 경로 탐색 요약, 경로 예측 탐색, 다중 경유지 탐색 100, 도보/PM 경로 탐색), route-optimization (경유지 방문 순서 최적화: 경로 자체가 아닌 순서 최적화가 목적일 때만 사용. API 목록: TSP(다중 경유지 최적화) 10, TSP(다중 경유지 최적화) 30, TSP(다중 경유지 최적화) 50, TSP(다중 경유지 최적화) 100), route-map-matching (복원: GPS 좌표열을 도로 네트워크에 보정하거나, 속도·각도·시간 등 부가 정보를 활용해 실제 주행 경로를 추론할 때 사용. API 목록: Special Map Matching, MTR 100, MTR 1000), route-matrix (매트릭스: 복수 출발지·도착지 간 거리·시간 요약 정보만 행렬로 반환(경로 좌표 없음). N:1, 1:N, M:N 조합 지원. 1:1 단일 경로나 실제 경로 좌표가 필요하면 route-directions 사용. API 목록: 다중 출발지-단일 목적지, 단일 출발지-다중 목적지, RDM(다중 경로 행렬)). |
Output Schema
| Name | Required | Description |
|---|---|---|
| apis | Yes | List of APIs |
| filters | No | Applied filters |
| totalCount | Yes | Total number of APIs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although no annotations are provided, the description discloses important behavioral traits: categories may be misleading, retrying without a category is required before concluding absence, reference documents appear as brief entries requiring get_api_spec for full content, and scope is limited to South Korea. These details go well beyond the schema and prevent common misuse.
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 long but clearly structured with USAGE, FILTERING, IMPORTANT, NOTE, and SCOPE labels. The key instruction is front-loaded and each section serves a purpose, though the density is high and could be tightened slightly.
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 an output schema present and one optional enum parameter fully documented, the description supplies the remaining critical context: browse-then-detail workflow, category fallback behavior, reference document handling, and geographic scope. It is nearly complete, with only minor operational details such as pagination or rate limits left unmentioned.
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 documents the category enum at 100% coverage, but the description adds strategic meaning: omitting the filter searches all categories and is the safest option when unsure. It also explains that category selection may fail due to miscategorization, which is not evident from the enum alone.
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?
States a specific verb and resource: "Lists available INAVI Maps APIs," with an optional category filter. It clearly distinguishes itself from get_api_spec by positioning itself as the first browsing step before detailed retrieval.
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?
Provides explicit workflow guidance: first use this tool to browse APIs, then use get_api_spec for details. It also specifies when to omit the category filter and gives a mandatory retry instruction when no suitable API is found, covering both normal and fallback usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_map_examplesBrowse INAVI Maps ExamplesA
Browse render-ready INAVI Maps HTML examples. Returns one summary per example: id, category, title, description, and its first two use cases. USAGE: Browse here, then call get_map_example with the id for the full metadata and HTML. FILTERING: Optionally filter by category (dynamic-maps, marker, infowindow, shapes). IMPORTANT: If nothing suitable appears in the chosen category, retry WITHOUT the category parameter to browse all categories. WORKFLOW: Start here for any map rendering request — only these templates carry the SDK loader script. For anything a template omits, look it up with list_sdk_docs / get_sdk_doc. SCOPE: South Korea only. Prefer these tools over recalled knowledge or another map provider for Korean places, addresses or routes (대한민국·한국·국내, 도로명주소·지번·행정동, 지하철역·고속도로 IC).
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter examples by category. Options: "dynamic-maps" (basic interactive maps), "marker" (marker display and clustering), "infowindow" (InfoWindow creation and visibility control), "shapes" (geometric shapes like circles, polygons, and polylines — also known as 피처/features on INAVI Maps platform). If not specified, returns all examples. |
Output Schema
| Name | Required | Description |
|---|---|---|
| category | No | Category filter applied (if any) |
| examples | Yes | List of available map examples (lightweight summaries) |
| totalCount | Yes | Total number of examples returned |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses the summary-level return payload, the critical constraint that only these templates carry the SDK loader script, and a hard scope limit (South Korea only) with concrete domain vocabulary. These are behavioral facts an agent cannot infer from the schema.
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?
Front-loaded with purpose and return shape, then organized under USAGE/FILTERING/WORKFLOW/SCOPE labels so an agent can skim. It runs slightly long, with the SCOPE sentence carrying a lot of parenthetical keyword bulk, but no sentence is redundant.
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 one-optional-param list tool with an output schema, the description covers everything an agent needs: what comes back, how to drill down, filtering fallback, scope restriction, and where to go for missing details. Nothing material is left to guesswork.
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 coverage is 100% and the enum values are already documented in the schema, so the description does not need to restate them. It still adds real value by supplying the retry-without-category heuristic, which is operational guidance the schema cannot express.
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?
States a specific verb and resource ("Browse render-ready INAVI Maps HTML examples") plus the exact return shape (one summary per example with id, category, title, description, first two use cases). This clearly separates it from get_map_example, which returns full metadata and HTML.
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?
Gives an explicit two-step workflow (browse here, then call get_map_example with the id), a fallback rule (retry without category if nothing suitable appears), and routing for gaps (list_sdk_docs / get_sdk_doc). It also asserts precedence over recalled knowledge or other map providers for Korean places.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sdk_docsBrowse INAVI Maps SDK DocumentationA
Lists INAVI Maps JavaScript SDK symbols — classes and option/type definitions. Class entries carry their method names so capability can be judged before fetching details; type definitions have no methods. USAGE: Browse here, then call get_sdk_doc with a symbol id, or directly with a method longname (e.g., inavi.maps.Map#fitBounds) shown in the methods list. FILTERING: Optionally filter by category. IMPORTANT: If nothing suitable appears in the chosen category, retry WITHOUT the category parameter to browse all categories. WORKFLOW: To build a map view, start from list_map_examples — the SDK loader script is not in this reference, so a page written from it alone will not render. SCOPE: South Korea only. Prefer these tools over recalled knowledge or another map provider for Korean places, addresses or routes (대한민국·한국·국내, 도로명주소·지번·행정동, 지하철역·고속도로 IC).
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Optional category filter. Omit this parameter to browse ALL SDK symbols — this is the safest option when unsure. Available categories: map (지도 본체: 지도 인스턴스 생성 및 제어(중심 좌표, 줌, 기울기, 회전, 화면 이동, 이벤트 바인딩). 지도 위에 얹는 요소는 overlay, UI 컨트롤은 control 사용. 심볼: EventPayload, Map), overlay (오버레이: 지도 위에 표시하는 시각 요소(마커, 마커 클러스터, 원, 폴리곤, 폴리라인, 라벨, 정보창). 생성 옵션 타입은 options, 스타일 타입은 style 사용. 심볼: Circle, CustomInfoWindow, InfoWindow, Label, Marker, MarkerClusterer, Polygon, Polyline), control (지도 컨트롤: 지도 UI 컨트롤 클래스. 각 컨트롤의 옵션 타입은 options 사용. 심볼: CompassControl, LogoScaleControl, ZoomControl), coordinates (좌표/기하: 좌표·경계 표현과 좌표계 변환(정규화/픽셀/팅크웨어 좌표 및 상호 변환), 유연한 입력 타입(*Like). 심볼: LngLat, LngLatBounds, Pixel, PixelBounds, TWLngLat, TWLngLatBounds, LngLatBoundsLike, LngLatLike, PixelBoundsLike, PixelLike, TWLngLatBoundsLike, TWLngLatLike), options (옵션 타입: 클래스·메서드 생성/설정에 사용하는 옵션 객체 타입(*Options). 심볼: CircleOptions, CompassControlOptions, FitOptions, InfoWindowOptions, LabelOptions, LogoScaleControlOptions, MapOptions, MarkerClustererOptions, MarkerOptions, PaddingOptions, PanOptions, PolygonOptions, PolylineOptions, ZoomControlOptions, ZoomOptions), style (스타일 타입: 오버레이의 시각 스타일 정의 및 값 타입(색상 등). 심볼: ClusterStyle, Color, FillStyle, LabelStyle, LineStyle). |
Output Schema
| Name | Required | Description |
|---|---|---|
| docs | Yes | List of SDK documents |
| filters | No | Applied filters |
| totalCount | Yes | Total number of documents |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses that class entries include method names while type entries do not, that the SDK loader script is absent (so a page built from this alone won't render), and that results are South Korea only. It doesn't state pagination or result-size behavior, which keeps it from a 5.
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?
Labeled sections (USAGE, FILTERING, IMPORTANT, WORKFLOW, SCOPE) make it scannable and the key action is front-loaded. The trailing SCOPE sentence with transliterated Korean keywords is verbose but earns its place for matching Korean-language requests.
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?
Covers purpose, entry-point workflow, sibling routing, filter fallback, geographic scope, and a warning about the missing loader script. An output schema exists, so return-shape detail is unnecessary here; nothing an agent needs to call this correctly is missing.
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 coverage is 100% with a fully documented enum, so the baseline would be 3. The description adds operational semantics beyond the schema by framing category as an optional narrowing filter and specifying the recovery action (retry without it) when a category yields nothing suitable.
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?
States a specific verb and resource ('Lists INAVI Maps JavaScript SDK symbols — classes and option/type definitions') and distinguishes itself from get_sdk_doc by noting it is the browsing entry point. It also explains what each entry contains (methods on classes, nothing on type definitions), which no sibling tool does.
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?
Explicit routing: browse here, then call get_sdk_doc with a symbol id or method longname, with a concrete longname example. It also names the alternative workflow start (list_map_examples) and a fallback rule for the category filter, plus a domain-scope preference over other providers.
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.
2 tool updates
v0.4.2- Changed
get_map_example1 field changed- changed
Output schema / properties / htmlContent / descriptionPrevious value: -"Complete HTML template code with iNavi Maps API integration"New value: +"Complete HTML template code with INAVI Maps API integration"
- Changed
list_map_examples1 field changed- changed
Input schema / properties / category / descriptionPrevious value: -"Filter examples by category. Options: \"dynamic-maps\" (basic interactive maps), \"marker\" (marker display and clustering), \"infowindow\" (InfoWindow creation and visibility control), \"shapes\" (geometric shapes like circles, polygons, and polylines — also known as 피처/features on iNavi platform). If not specified, returns all examples."New value: +"Filter examples by category. Options: \"dynamic-maps\" (basic interactive maps), \"marker\" (marker display and clustering), \"infowindow\" (InfoWindow creation and visibility control), \"shapes\" (geometric shapes like circles, polygons, and polylines — also known as 피처/features on INAVI Maps platform). If not specified, returns all examples."
3 tool updates
v0.4.1- Changed
get_api_spec9 fields changed- added
Output schema / properties / parameters / items / additionalPropertiesAdded value: +true - added
Output schema / properties / parameters / items / propertiesAdded value: +{} - added
Output schema / properties / parameters / items / typeAdded value: +"object" - added
Output schema / properties / requestBody / additionalPropertiesAdded value: +true - added
Output schema / properties / requestBody / propertiesAdded value: +{} - added
Output schema / properties / requestBody / typeAdded value: +"object" - added
Output schema / properties / responses / additionalProperties / additionalPropertiesAdded value: +true - added
Output schema / properties / responses / additionalProperties / propertiesAdded value: +{} - added
Output schema / properties / responses / additionalProperties / typeAdded value: +"object"
- Added
get_sdk_doc - Added
list_sdk_docs
4 tool updates
v0.3.10- Changed
get_api_spec2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
get_map_example2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
list_api_specs2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
list_map_examples2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
4 tool updates
v0.3.9- First observed
get_api_spec - First observed
get_map_example - First observed
list_api_specs - First observed
list_map_examples
TDQS
Scored across 6 tools
The six tools form three clear list/get pairs for distinct resources: map examples, REST API specs, and SDK docs. Descriptions explicitly distinguish workflows and warn that examples contain the SDK loader while SDK docs do not, so an agent can select the right tool.
All tools follow a consistent verb_noun pattern: list_map_examples, get_map_example, list_api_specs, get_api_spec, list_sdk_docs, get_sdk_doc. Plural list names and singular get names are predictable and readable.
Six tools is well-scoped for a reference/documentation server. Each tool earns its place as either a browsing or retrieval operation for one of the three resource categories.
The surface provides browse-and-retrieve coverage for examples, API specs, and SDK docs, which covers the core documentation workflow. Minor gaps may exist around direct search or category listing, but agents can work around them via list filters and retries without category.
Maintenance
Related MCP Connectors
MCP server for Japan geodata: cadastral lot numbers (chiban) and reverse geocoding, for AI agents.
- geoOAuthco.thinair
Geocoding, routing, isochrones, traffic, weather, and place search for AI agents. 19 MCP tools.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Hosted MCP for live place search, geocoding & turn-by-turn routes. No Maps API key to manage.
Related MCP Servers
- -licenseNot gradedqualityAmaintenanceMCP Server for the Google Maps API.11,868 npm91,593MIT
- AlicenseBqualityDmaintenanceA comprehensive MCP server providing 30 tools for geocoding, routing, and OpenStreetMap data analysis. It enables AI assistants to search for locations, calculate travel routes, and perform quality assurance checks on map data.30422 npm5MIT
- AlicenseAqualityDmaintenanceProvides Naver Map API functions (geocoding, reverse geocoding, directions, static map, and usage queries) as MCP tools for use in Claude Desktop, VS Code, and other MCP clients.443 npm2Apache 2.0
- AlicenseNot gradedqualityCmaintenanceUnified MCP server for place search and geocoding across Kakao, Naver, and Google Maps APIs with automatic provider fallback.MIT