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 MCP Server
AI 어시스턴트에 지도 인텔리전스를 부여하는 MCP (Model Context Protocol) 서버입니다.
iNavi MCP Server를 연결하면, AI가 iNavi Maps의 다양한 위치 기반 API를 이해하고 인터랙티브 지도를 직접 생성할 수 있게 됩니다. 별도의 API 문서를 읽거나 코드를 직접 작성할 필요 없이, 자연어로 대화하며 지도 기반 기능을 구현할 수 있습니다.
API 스펙 조회 - 지오코딩, POI 검색, 경로 탐색, 맵 매칭 등 30개 이상의 iNavi Maps API 사양을 AI에게 제공
지도 시각화 - 마커, 클러스터, 폴리곤, 폴리라인 등 18개의 HTML 템플릿으로 인터랙티브 지도 생성
이런 분들에게 적합합니다:
빠른 프로토타이핑 - 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 호스트에서 사용할 수 있습니다. 아래 서버 설정을 사용 중인 도구의 설정 경로에 추가하세요. (Codex는 JSON이 아닌 TOML 형식이라 변환이 필요합니다.)
사전 요구사항: Node.js 22 이상이 설치되어 있어야 합니다.
도구 | 설정 경로 | 서버 설정 | 공식 가이드 |
Cursor |
| { "mcpServers": { "inavi-maps-mcp": { "command": "npx", "args": ["-y", "@inavi-maps/mcp-server"] } }} | |
VS Code | 사용자 프로필 | { "servers": { "inavi-maps-mcp": { "command": "npx", "args": ["-y", "@inavi-maps/mcp-server"] } }} | |
Claude Code |
| { "mcpServers": { "inavi-maps-mcp": { "command": "npx", "args": ["-y", "@inavi-maps/mcp-server"] } }} | |
Claude Desktop |
| { "mcpServers": { "inavi-maps-mcp": { "command": "npx", "args": ["-y", "@inavi-maps/mcp-server"] } }} | |
Codex |
| [mcp_servers.inavi-maps-mcp]command = "npx"args = ["-y", "@inavi-maps/mcp-server"] | |
Windsurf |
| { "mcpServers": { "inavi-maps-mcp": { "command": "npx", "args": ["-y", "@inavi-maps/mcp-server"] } }} |
Claude Code, Codex 같은 CLI 도구는 다음과 같이 간단하게 설정할 수 있습니다.
Claude Code:
claude mcp add --transport stdio inavi-maps-mcp -- npx -y @inavi-maps/mcp-serverCodex:
codex mcp add inavi-maps-mcp -- npx -y @inavi-maps/mcp-server
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가 HTML 템플릿을 기반으로 인터랙티브 지도 페이지를 생성합니다.
iNavi 지도에 마커를 표시하는 HTML 페이지를 만들어줘여러 지점을 클러스터로 묶어서 지도에 표시하는 페이지를 만들어줘경로를 교통 상황 색상으로 지도에 시각화하는 페이지를 만들어줘서울 주요 관광지를 폴리곤 영역과 마커로 표시하는 지도를 만들어줘조합 활용
API 스펙 조회와 지도 시각화를 함께 사용하면 더 복잡한 기능을 구현할 수 있습니다.
지오코딩 API로 주소를 좌표로 변환하고, 그 결과를 지도에 마커로 표시하는 페이지를 만들어줘경로 탐색 API 호출 결과를 지도 위에 폴리라인으로 시각화하는 코드를 작성해줘사용 가능한 도구
이 MCP 서버는 세 종류, 총 6개의 도구를 제공합니다. 각 도구 쌍은 탐색 → 상세 조회의 2단계 워크플로우로 설계되어 있습니다.
API 스펙 도구
iNavi Maps API 사양을 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 매트릭스 |
HTML 예제 도구 (지도 시각화)
인터랙티브 지도를 생성하기 위한 HTML 템플릿을 제공합니다. AI가 템플릿의 데이터 값(좌표, 레이블 등)을 커스터마이징하여 맞춤형 지도 페이지를 생성합니다.
도구 | 설명 | 주요 입력 |
| 지도 예제 목록 조회 |
|
| 특정 지도 예제 HTML 조회 |
|
워크플로우: list_map_examples로 사용 가능한 예제를 탐색한 후, get_map_example에 id를 전달하여 완전한 HTML 코드를 조회합니다.
카테고리 | 예제 수 | 포함 예제 |
| 5 | 기본 지도, 지도 정보 표시, 거리 계산, 지도 타입 전환, FlyTo 애니메이션 |
| 6 | 기본 마커, 이동 가능 마커, 클러스터, 클러스터 격자 크기, 넘버링, 컬러 마커 |
| 2 | 기본 InfoWindow, 클러스터 마커 InfoWindow |
| 5 | 원, 폴리곤, 멀티 폴리곤, 스타일 변경, 폴리라인 (교통 색상) |
SDK 문서 도구 (Web JS SDK 레퍼런스)
iNavi Maps Web JS SDK의 클래스와 옵션/타입 정의를 제공합니다. 예제 템플릿에 없는 옵션·메서드·이벤트를 AI가 기억에 의존해 추측하지 않고, 실제 시그니처를 확인한 뒤 작성하도록 합니다.
도구 | 설명 | 주요 입력 |
| SDK 심볼 목록 조회 (클래스는 메서드명 포함) |
|
| 특정 심볼 또는 단일 메서드 문서 조회 |
|
워크플로우: 지도를 만들 때는 list_map_examples로 실행 가능한 템플릿을 먼저 확보하고, 템플릿에 없는 기능이 필요할 때 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
This server exposes 6 tools, arranged as three discovery → detail pairs.
list_api_specs— Browse available iNavi Maps API specifications by category.get_api_spec— Get the detailed specification of a specific API byoperationId.list_map_examples— Browse available map visualization HTML examples.get_map_example— Get a specific map example's HTML template byid.list_sdk_docs— Browse Web JS SDK symbols (classes and option/type definitions) by category.get_sdk_doc— Get one SDK symbol, or a single method, bydocId.
문제 해결
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 must carry the behavioral burden. It does well by explaining this is a retrieval operation and disclosing that all $ref references are dereferenced. It does not explicitly state there are no side effects, but 'retrieves' strongly implies a read-only operation.
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 compact and scannable with clear PREREQUISITE, USAGE, and NOTE sections. There is slight redundancy between 'Retrieves detailed specification' and 'complete API specification', but every sentence contributes useful information.
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 single-parameter tool with an output schema, the description covers the necessary predecessor step, what input to provide, and what the response will contain. No critical operational detail 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%, so the baseline is 3. The description adds value beyond the schema by explaining that operationId comes from list_api_specs and is the key to selecting a complete API specification.
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 uses a specific verb and resource: 'Retrieves detailed specification of a specific API'. It clearly differentiates from sibling tools by requiring an operationId and referencing list_api_specs as the prerequisite browsing step.
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 explicitly states a PREREQUISITE ('First use list_api_specs to browse available APIs and obtain the operationId') and a USAGE ('Provide an operationId'), making the correct call flow and tool selection unambiguous.
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 Map 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 provided, the description carries the full burden and handles it well: it discloses the loader script, the {appKey} placeholder that must be substituted, the fact that data values can be replaced, and the constraint that unsupported API additions must be checked against get_sdk_doc. It also warns that iNavi Maps differs from Google Maps, which is valuable 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?
The description is longer than average but each labeled section (PREREQUISITE, LOADER, CUSTOMIZING) adds distinct, actionable information. It is front-loaded with the core purpose and uses clear labels that make the extra guidance scannable rather than bloated.
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 single-parameter retrieval tool with an output schema, the description covers everything needed to call it correctly: how to obtain the id, what the returned template contains, what must be changed before use, and how to safely extend it. No critical gap remains.
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 already documents the id parameter with example values and the instruction to use list_map_examples. The description reinforces the prerequisite but adds little new parameter-level meaning beyond what the schema provides, so the 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 opens with a specific verb ('Retrieve'), a clear resource ('one iNavi Maps HTML example'), and the exact scope ('by id'), and it distinguishes itself from siblings by stating it returns metadata plus the complete HTML template. It is clearly differentiated from list_map_examples and get_sdk_doc.
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 explicitly names the prerequisite tool ('Use list_map_examples to find the id') and tells the agent when to involve another sibling ('verify each one with get_sdk_doc first'). The instruction to never invent API syntax also prevents misuse. This is strong routing guidance beyond the schema.
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 full burden. It discloses the Markdown return format, the two accepted input forms, the link-to-docId behavior for referenced types, and the omission of method-level examples. This is strong behavioral context, though it does not cover errors or auth.
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 behavior and then adds prerequisite, link semantics, and example-routing in a compact, purposeful way. Every sentence earns its place.
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 one parameter, full schema coverage, and no output schema, the description adequately covers return format, input variants, prerequisite browsing, and the relationship to get_map_example. An agent has enough information to invoke the tool correctly.
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 fully documents docId. The description reinforces the dual input forms and the list_sdk_docs prerequisite, but adds limited semantic value 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 clearly states the tool retrieves SDK documentation for one symbol as Markdown, and distinguishes whole-symbol retrieval from method-only retrieval. It also names get_map_example as the alternative for runnable code, separating it from 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?
It explicitly instructs the agent to use list_sdk_docs first to obtain ids and method names, and directs runnable-code needs to get_map_example. This gives clear when-to-use guidance and an explicit alternative.
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?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals key behavioral traits: categorization may differ from expectations, reference documents are listed like regular APIs, scope is South Korea only, and it advises a retry-without-category fallback. It does not explicitly state read-only semantics, but the nature of listing is implied. The description adds meaningful behavioral context beyond a bare 'lists APIs'.
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 well-organized with labeled sections (USAGE, FILTERING, IMPORTANT, NOTE, SCOPE). It front-loads the core purpose and then provides necessary operational details. Every sentence adds value—no fluff. The length is justified by the complexity of category filtering and the important retry rule, but it could be slightly tightened without losing clarity.
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 that an output schema exists (indicated by 'Has output schema: true'), the description need not explain return values. It covers the workflow, filtering behavior, edge cases, and scope. It also mentions the existence of reference documents and how to access them. For a listing tool with one optional parameter, this is complete and leaves no critical gaps for an agent to call it correctly.
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 sole parameter 'category' is fully documented in the schema with a 100% coverage description, including detailed per-category explanations and usage hints. The description adds the behavioral note about retrying without category and the fact that filtering is optional, but it doesn't add much beyond the schema's already rich semantics. Given the schema coverage, a 3 baseline applies; the retry guidance bumps it to 4.
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 opens with a specific verb+resource: 'Lists available iNavi Maps APIs.' It clearly distinguishes itself from sibling get_api_spec (which retrieves detailed specs) and other listing tools like list_sdk_docs or list_map_examples. The purpose is unambiguous and the tool's role in the workflow is stated.
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?
Usage guidance is explicit and prescriptive: 'USAGE: First browse available APIs with this tool, then use get_api_spec to retrieve detailed specifications.' It also instructs when to retry without the category parameter and gives a strong directive to prefer these tools over recalled knowledge or other map providers for Korean data. No ambiguity about when to invoke this tool.
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 Map 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 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?
No annotations are provided, so the description carries the full burden. It discloses the return format (one summary per example: id, category, title, description, first two use cases), the filtering behavior (optional category, retry without category), and the scope limitation (South Korea only). It also reveals a behavioral trait: only these templates carry the SDK loader script, which is important context. It doesn't mention pagination or rate limits, but for a browse tool with a clear output schema, this is strong disclosure.
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 dense but well-structured with clear sections (USAGE, FILTERING, IMPORTANT, WORKFLOW, SCOPE). Every sentence earns its place, and the most critical information (start here, use get_map_example) is front-loaded. It is longer than the minimum, but the length is justified by the rich guidance it provides. Slight redundancy in the SCOPE section (listing Korean terms) could be trimmed, but it's not wasteful.
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 tool's simplicity (1 optional parameter, output schema present), the description is complete. It covers what the tool returns, how to use it, when to use alternatives, and the geographic scope. The output schema handles return-value details, so the description doesn't need to explain them. An agent can confidently select and invoke this tool correctly based on this description alone.
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 the category parameter well, including enum values and their meanings. The description adds value by explaining the filtering workflow (retry without category if nothing suitable) and by reinforcing the category options. It doesn't add much beyond the schema, but the baseline for 100% coverage is 3, and the description's workflow guidance elevates it slightly.
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: browsing render-ready iNavi Maps HTML examples, with a specific verb ('Browse') and resource ('iNavi Maps HTML examples'). It distinguishes itself from siblings by explicitly naming get_map_example as the follow-up for full metadata/HTML, and mentions list_sdk_docs/get_sdk_doc for SDK documentation. The scope (South Korea only) and the explicit preference over other map providers further sharpen its identity.
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 explicit usage guidance: start here for any map rendering request, use get_map_example with the id for full metadata/HTML, retry without category if nothing suitable appears, and use list_sdk_docs/get_sdk_doc for anything a template omits. It also states when NOT to use it (for SDK docs) and gives a clear workflow. This is exemplary guidance for an agent.
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 provided, the description carries the full behavioral burden and largely meets it: it discloses that class entries carry method names while type definitions have none, that a category filter may yield nothing (prompting a retry without it), and that the SDK loader script is absent from this reference so output alone won't render. Minor unaddressed behaviors like ordering or result limits keep 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?
The description is longer than average but earns each section with labeled blocks (USAGE, FILTERING, WORKFLOW, SCOPE) that are front-loaded after the core purpose sentence. The density is justified by the routing and scope information; slightly more trimming of the Korean keyword list would make it a 5.
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 browse tool with one optional parameter and an output schema (which covers return values), the description covers everything an agent needs: purpose, follow-up tool, filter fallback, map-view workflow, and geographic scope. No critical gap remains.
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% and the category enum already carries rich per-value explanations with symbol lists, so the baseline is 3. The description adds only the operational hint to retry without the category parameter if nothing suitable appears; it does not need to compensate for any schema gap.
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 opens with a specific verb+resource: 'Lists iNavi Maps JavaScript SDK symbols — classes and option/type definitions.' It differentiates from siblings by naming the follow-up tool (get_sdk_doc) and the alternative entry point for map views (list_map_examples), so an agent can select it correctly without opening schemas.
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 when/where guidance is given in labeled sections: 'Browse here, then call get_sdk_doc' defines the chaining relationship; 'To build a map view, start from list_map_examples' is an explicit when-not-to-use; 'Prefer these tools over recalled knowledge or another map provider for Korean places' states the exclusion of alternatives. Nothing is left to inference.
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.
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
Each tool maps cleanly to one of three resource types (map examples, REST API specs, SDK docs) paired with a list/get action. There is no meaningful overlap: list tools browse summaries, get tools retrieve details, and the resource domains are clearly distinct.
All tool names follow a consistent list_<resource> / get_<resource> snake_case pattern. The singular/plural pairing (list_map_examples/get_map_example, list_api_specs/get_api_spec, list_sdk_docs/get_sdk_doc) is uniform and predictable.
Six tools is well-scoped for a documentation lookup server: three browse tools and three corresponding detail-fetch tools. Each tool earns its place and there is no redundancy or bloat.
The server fully covers its documented workflow: browse and retrieve map examples, browse and retrieve REST API specs, and browse and retrieve SDK documentation. Category filtering and retry instructions prevent dead ends, and no obvious missing operation is apparent for the stated purpose.
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.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- -licenseNot gradedqualityAmaintenanceMCP Server for the Google Maps API.11,868 npm90,629MIT
- 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.30153 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.412 npm2Apache 2.0
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server that wraps the Amap (高德地图) Web Service APIs, giving AI assistants like Claude Code 9 map tools: geocoding, route planning (driving/transit/walking/cycling), POI search, nearby search, distance measurement, and IP location.1225 npm1MIT