Skip to main content
Glama
inavi-systems

inavi-mcp

Official

INAVI Maps Docs MCP Server

npm version License: MIT

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 전용 - 추천)

가장 쉬운 설치 방법입니다. 별도 환경 구성 없이 바로 사용할 수 있습니다.

  1. GitHub Releases에서 최신 .mcpb 파일 다운로드

  2. 다운로드한 .mcpb 파일을 Claude Desktop에 드래그 앤 드롭 (또는 더블클릭)

  3. Claude Desktop 재시작

완료! 이제 Claude에게 지도 관련 질문을 할 수 있습니다.

방법 2: npx (모든 MCP 호스트)

Cursor, VS Code, Claude Code, Codex, Windsurf 등 다양한 MCP 호스트에서 사용할 수 있습니다.

사전 요구사항: Node.js 22 이상이 설치되어 있어야 합니다.

Install in Cursor Install in VS Code

표준 설정 — 대부분의 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.json

  • macOS: ~/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 호출 코드를 작성할 수 있도록 합니다.

도구

설명

주요 입력

list_api_specs

API 명세 목록 조회

category (선택)

get_api_spec

특정 API 상세 명세 조회

operationId (필수)

워크플로우: list_api_specs로 사용 가능한 API를 탐색한 후, get_api_spec에 operationId를 전달하여 파라미터, 요청/응답 스키마 등 상세 명세를 조회합니다.

카테고리

설명

포함 API

search-place

장소/주소 검색

통합 검색, 다국어 통합 검색, 장소 상세 조회, 시설물 정보 조회, 검색어 추천, 주변 카테고리 검색, 최적 지점 검색

search-geocoding

지오코딩

지오코딩, 리버스 지오코딩

search-spatial

공간 검색

공간 검색, 행정/법정동 영역 검색, 좌표(계) 변환

search-w3w

what3words

W3W 검색어 추천, W3W 리버스 지오코딩, W3W 최적 지점 검색

route-directions

경로 탐색

경로 탐색, 경로 탐색 요약, 경로 예측 탐색, 다중 경유지 탐색 100, 도보/PM 경로 탐색

route-optimization

경유지 최적화

TSP 10, TSP 30, TSP 50, TSP 100 (다중 경유지 최적화)

route-map-matching

맵 매칭

Special Map Matching, MTR 100, MTR 1000

route-matrix

거리/시간 매트릭스

N:1, 1:N, M:N 매트릭스

지도 SDK 예제 도구

SDK 로더부터 지도 초기화까지 포함된, 바로 실행되는 지도 SDK 예제(HTML)를 제공합니다. AI가 예제의 데이터 값(좌표, 레이블 등)을 커스터마이징하여 맞춤형 지도 페이지를 생성합니다.

도구

설명

주요 입력

list_map_examples

지도 SDK 예제 목록 조회

category (선택)

get_map_example

특정 지도 SDK 예제의 HTML 코드 조회

id (필수)

워크플로우: list_map_examples로 사용 가능한 예제를 탐색한 후, get_map_example에 id를 전달하여 완전한 HTML 코드를 조회합니다.

카테고리

예제 수

포함 예제

dynamic-maps

5

기본 지도, 지도 정보 표시, 거리 계산, 지도 타입 전환, FlyTo 애니메이션

marker

6

기본 마커, 이동 가능 마커, 클러스터, 클러스터 격자 크기, 넘버링, 컬러 마커

infowindow

2

기본 InfoWindow, 클러스터 마커 InfoWindow

shapes

5

원, 폴리곤, 멀티 폴리곤, 스타일 변경, 폴리라인 (교통 색상)

SDK 레퍼런스 도구

INAVI Maps Web JS SDK의 클래스와 옵션/타입 정의를 제공합니다. 지도 SDK 예제에 없는 옵션·메서드·이벤트를 AI가 기억에 의존해 추측하지 않고, 실제 시그니처를 확인한 뒤 작성하도록 합니다.

도구

설명

주요 입력

list_sdk_docs

SDK 레퍼런스 심볼 목록 조회 (클래스는 메서드명 포함)

category (선택)

get_sdk_doc

특정 심볼 또는 단일 메서드의 SDK 레퍼런스 조회

docId (필수)

워크플로우: 지도를 만들 때는 list_map_examples로 실행 가능한 지도 SDK 예제를 먼저 확보하고, 예제에 없는 기능이 필요할 때 list_sdk_docs → get_sdk_doc으로 정확한 시그니처를 확인합니다. SDK 로더 스크립트는 예제에만 있으므로 레퍼런스만으로는 동작하는 페이지를 만들 수 없습니다.

docId는 클래스/타입 id(inavi.maps.Map, MapOptions)와 메서드 롱네임(inavi.maps.Map#fitBounds)을 모두 받습니다.

카테고리

심볼 수

포함 심볼

map

2

Map, EventPayload

overlay

8

Circle, CustomInfoWindow, InfoWindow, Label, Marker, MarkerClusterer, Polygon, Polyline

control

3

CompassControl, LogoScaleControl, ZoomControl

coordinates

12

LngLat, LngLatBounds, Pixel, PixelBounds, TWLngLat, TWLngLatBounds 및 각 *Like 입력 타입

options

15

MapOptions, MarkerOptions, CircleOptions 등 *Options 타입

style

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 서버가 연결되지 않을 때

  1. Node.js 버전 확인: Node.js 22 이상이 필요합니다 (node -v로 확인)

  2. MCP Host 재시작: 설정 변경 후 반드시 재시작

  3. 설정 파일 확인: JSON 문법 오류가 없는지 확인

JSON 파싱 에러

Unexpected token...is not valid JSON

해결 방법:

  • 최신 버전으로 업데이트 (이미 수정된 이슈)

  • 로컬 개발 시 console.log 대신 MCP Logging 사용 (stdout 오염 방지)

더 자세한 문제 해결 방법은 Troubleshooting Guide를 참고하세요.


문서

문서

설명

도구 레퍼런스

모든 도구의 상세 입출력 문서

Claude Desktop 설정

Claude Desktop 설치 및 설정 가이드

Cursor 설정

Cursor IDE 설정 가이드

로컬 개발

소스 코드에서 직접 빌드 및 실행

Troubleshooting

상세 문제 해결 가이드


라이선스

MIT License - 자유롭게 사용, 수정, 배포할 수 있습니다. 자세한 내용은 LICENSE 파일을 참조하세요.


참고 자료

Available Tools

6 tools
get_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.

NameRequiredDescriptionDefault
operationIdYesUnique identifier of the API to retrieve (e.g., getRouteTimeResult)

Output Schema

NameRequiredDescription
pathYesAPI path
tagsYesAPI category tags
methodYesHTTP method
baseUrlYesBase URL
summaryYesBrief API description
categoryYesAPI category (route, search)
responsesYesResponse schemas by status code
deprecatedNoWhether the API is deprecated
parametersNoList of API parameters
descriptionYesDetailed API description
operationIdYesUnique API identifier
requestBodyNoRequest body schema

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

NameRequiredDescriptionDefault
idYesExample ID to retrieve (e.g., "marker-basic", "shapes-polyline"). Use list_map_examples tool first to see available IDs.

Output Schema

NameRequiredDescription
metadataYesComplete metadata for the selected example
htmlContentYesComplete HTML template code with INAVI Maps API integration

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
docIdYesDocument 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

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

NameRequiredDescriptionDefault
categoryNoOptional 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

NameRequiredDescription
apisYesList of APIs
filtersNoApplied filters
totalCountYesTotal number of APIs

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

NameRequiredDescriptionDefault
categoryNoFilter 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

NameRequiredDescription
categoryNoCategory filter applied (if any)
examplesYesList of available map examples (lightweight summaries)
totalCountYesTotal number of examples returned

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

NameRequiredDescriptionDefault
categoryNoOptional 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

NameRequiredDescription
docsYesList of SDK documents
filtersNoApplied filters
totalCountYesTotal number of documents

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 2 tool updatesv0.4.2
    • Changedget_map_example1 field changed
      • changedOutput schema / properties / htmlContent / description
        Previous value: -"Complete HTML template code with iNavi Maps API integration"New value: +"Complete HTML template code with INAVI Maps API integration"
    • Changedlist_map_examples1 field changed
      • changedInput schema / properties / category / description
        Previous 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."
  2. 3 tool updatesv0.4.1
    • Changedget_api_spec9 fields changed
      • addedOutput schema / properties / parameters / items / additionalProperties
        Added value: +true
      • addedOutput schema / properties / parameters / items / properties
        Added value: +{}
      • addedOutput schema / properties / parameters / items / type
        Added value: +"object"
      • addedOutput schema / properties / requestBody / additionalProperties
        Added value: +true
      • addedOutput schema / properties / requestBody / properties
        Added value: +{}
      • addedOutput schema / properties / requestBody / type
        Added value: +"object"
      • addedOutput schema / properties / responses / additionalProperties / additionalProperties
        Added value: +true
      • addedOutput schema / properties / responses / additionalProperties / properties
        Added value: +{}
      • addedOutput schema / properties / responses / additionalProperties / type
        Added value: +"object"
    • Addedget_sdk_doc
    • Addedlist_sdk_docs
  3. 4 tool updatesv0.3.10
    • Changedget_api_spec2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedget_map_example2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedlist_api_specs2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedlist_map_examples2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
  4. 4 tool updatesv0.3.9
    • First observedget_api_spec
    • First observedget_map_example
    • First observedlist_api_specs
    • First observedlist_map_examples

TDQS

A4.5/5.0

Scored across 6 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers