Skip to main content
Glama
inavi-systems

inavi-mcp

Official

iNavi MCP Server

npm version License: MIT

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

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

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

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

  3. Claude Desktop 재시작

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

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

Cursor, VS Code, Claude Code, Codex, Windsurf 등 다양한 MCP 호스트에서 사용할 수 있습니다. 아래 서버 설정을 사용 중인 도구의 설정 경로에 추가하세요. (Codex는 JSON이 아닌 TOML 형식이라 변환이 필요합니다.)

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

도구

설정 경로

서버 설정

공식 가이드

Cursor

~/.cursor/mcp.json

{ "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

~/.claude.json

{ "mcpServers": { "inavi-maps-mcp": { "command": "npx", "args": ["-y", "@inavi-maps/mcp-server"] } }}

↗

Claude Desktop

%APPDATA%\Claude\claude_desktop_config.json

{ "mcpServers": { "inavi-maps-mcp": { "command": "npx", "args": ["-y", "@inavi-maps/mcp-server"] } }}

↗

Codex

~/.codex/config.toml

[mcp_servers.inavi-maps-mcp]command = "npx"args = ["-y", "@inavi-maps/mcp-server"]

↗

Windsurf

~/.codeium/windsurf/mcp_config.json

{ "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-server

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

도구

설명

주요 입력

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 매트릭스

HTML 예제 도구 (지도 시각화)

인터랙티브 지도를 생성하기 위한 HTML 템플릿을 제공합니다. AI가 템플릿의 데이터 값(좌표, 레이블 등)을 커스터마이징하여 맞춤형 지도 페이지를 생성합니다.

도구

설명

주요 입력

list_map_examples

지도 예제 목록 조회

category (선택)

get_map_example

특정 지도 예제 HTML 조회

id (필수)

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

카테고리

예제 수

포함 예제

dynamic-maps

5

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

marker

6

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

infowindow

2

기본 InfoWindow, 클러스터 마커 InfoWindow

shapes

5

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

SDK 문서 도구 (Web JS SDK 레퍼런스)

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

도구

설명

주요 입력

list_sdk_docs

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

category (선택)

get_sdk_doc

특정 심볼 또는 단일 메서드 문서 조회

docId (필수)

워크플로우: 지도를 만들 때는 list_map_examples로 실행 가능한 템플릿을 먼저 확보하고, 템플릿에 없는 기능이 필요할 때 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

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 by operationId.

  • list_map_examples — Browse available map visualization HTML examples.

  • get_map_example — Get a specific map example's HTML template by id.

  • 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, by docId.


문제 해결

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를 참고하세요.


문서

문서

설명

API 레퍼런스

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

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.

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

Output Schema

ParametersJSON 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.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
metadataYesComplete metadata for the selected example
htmlContentYesComplete HTML template code with iNavi Maps API integration

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
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 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
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

ParametersJSON Schema
NameRequiredDescription
apisYesList of APIs
filtersNoApplied filters
totalCountYesTotal number of APIs

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

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
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 platform). If not specified, returns all examples.

Output Schema

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

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses 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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
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

ParametersJSON Schema
NameRequiredDescription
docsYesList of SDK documents
filtersNoApplied filters
totalCountYesTotal number of documents

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 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
  2. 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#"
  3. 4 tool updatesv0.3.9
    • First observedget_api_spec
    • First observedget_map_example
    • First observedlist_api_specs
    • First observedlist_map_examples

TDQS

A4.7/5.0

Scored across 6 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers