Skip to main content
Glama

🇰🇷 Korean Land MCP — v2.0

V-World API-based Land & Urban Planning Spatial Information MCP Server Using the Ministry of Land, Infrastructure and Transport's V-World Open API as a backend, this is a Model Context Protocol server that allows AI to query zoning, land use districts, land use zones, district unit plans, urban planning facilities, and other legal designations—information that was previously manually checked on Land-eum (eum.go.kr)—using natural language.

A spatial layer MCP that pairs with korean-law-mcp (legal text). When used together, they allow you to connect "Where does this parcel belong?" to "What does the relevant law/ordinance permit/restrict?" in a single line of natural language.

✨ v2.0 Architectural Principles

  1. V-World API Only. No other commercial APIs, scraping, or mock data.

  2. Honest Failure. If V-World returns a 500 for a specific layer, it is exposed as-is in layer_errors. Never filled with fake data.

  3. Separation of Concerns from korean-law-mcp. This MCP only answers "Where does it belong spatially?". Clause interpretation is handled by korean-law-mcp.

  4. Automatic Detection of Priority Delegation under Article 76(5) of the National Land Planning Act. If a parcel is affected by Agricultural Promotion Zones, Conservation Mountainous Districts, Water Source Protection Zones, or National Industrial Complexes, it provides a priority_delegation_hint indicating "which law to prioritize over the National Land Planning Act Enforcement Decree Table."

Related MCP server: Korea Building Register MCP

🛠️ Provided Tools (7)

Tool

Description

resolve_parcel

Address/Lot Number/PNU → Standardized PNU, land category, officially assessed land price, administrative district, WGS84 coordinates

get_zoning

Zoning (Urban/Management/Agriculture/Nature) + Land Use Districts (8 types) + Land Use Zones (Development Restriction/Urban Natural Park) + Land Transaction Permit Zones

get_district_plan

District Unit Planning Zones + Development Activity Permit Restriction Zones

get_urban_facility

9 types of urban planning facilities (Road/Transport/Space/Distribution/Public Culture/Disaster/Health/Environment/Other). Distinguishes between "encroachment" vs "adjacency" via radius_m parameter

get_other_law_designations

42 other legal designation layers (Farmland, Forestry, Industrial Complex, Water Quality, Livestock, Cultural Heritage, Natural Park, Special Districts, Housing Improvement, Disaster, Marine, Aviation). Automatically flags candidates for Article 76(5) priority delegation

get_land_attributes

Land category (28 types) parsing + individual officially assessed land price + building information

analyze_parcel

Parallel execution of the 6 tools above + generation of hints for the next step in korean-law-mcp

Includes discover_tools to explore the tool catalog via natural language.

📡 V-World Layer Coverage

  • Zoning: LT_C_UQ111/112/113/114 (Urban, Management, Agriculture, Nature Conservation)

  • Land Use Districts/Zones: LT_C_UQ121~130, LT_C_UD801, LT_C_UQ162

  • District Unit Plans/Permit Restrictions: LT_C_UPISUQ161, LT_C_UPISUQ171

  • Urban Planning Facilities: LT_C_UPISUQ151~159

  • Other Legal Designations: Farmland (AGRIXUE) · Forestry (UF) · Industrial Complex (WGISIE*, DAM*) · Water Quality (UM, WGISARWET) · Livestock (UM000) · Cultural Heritage (UO) · Natural Park (WGISNP*) · Special Districts (UO/UJ/UH/UB) · Housing Improvement (UD) · Disaster (UP) · Marine (TFISMPA, WGISRE*) · Aviation (AIS*)

  • Parcel/Building: LP_PA_CBND_BUBUN, LT_C_BLDGINFO, A2SM_LNDPRCPS

🚀 Quick Start

1. Setup in One Go

git clone https://github.com/UrbanWatcherKr/korean-land-mcp.git
cd korean-land-mcp
npm run setup

npm run setup executes npm installnpm run build → interactive configure. During the configure step, it asks for your V-World API key and domain, and automatically generates the .env file.

V-World API Key Issuance: https://www.vworld.kr/dev/v4api.do (Login → Open API → Issue Authentication Key, free). For local development, register the domain as localhost.

2. Re-configure

If you want to change the API key or domain at any time:

npm run configure

3. Register with Claude Desktop / Claude Code

After configuration, it prints the JSON block to paste into your terminal. Or manually:

{
  "mcpServers": {
    "korean-land": {
      "command": "node",
      "args": ["/absolute/path/to/korean-land-mcp/dist/server.js"],
      "env": {
        "VWORLD_API_KEY": "your_real_key_here",
        "VWORLD_DOMAIN": "localhost"
      }
    }
  }
}

💬 Usage Examples

  • "Tell me the zoning for 680 Naegi-ri, Poseung-eup, Pyeongtaek-si, Gyeonggi-do" → get_zoning

  • "Check if Article 76(5) priority delegation applies to this parcel" → get_other_law_designations

  • "Are there any urban planning facilities encroaching or adjacent within a 50m radius?" → `get_urban_facility({ radius_m: 50 })"

  • "Analyze this lot number and tell me the next step for korean-law" → analyze_parcel

🧭 Workflow with korean-law-mcp

사용자: "이 지번에 공장 지을 수 있어?"
  ↓
korean-land-mcp · analyze_parcel
  ↓ (용도지역=일반공업, 산업단지=아산포승, 우선위임=산업입지법)
korean-law-mcp · search_law("산업입지법")
  ↓
korean-law-mcp · get_law_text(산업입지법 제33조)
  ↓
결론 + 원문 근거

🗂️ Project Structure

src/
├── server.ts                          # MCP stdio 엔트리, 7개 도구 등록
├── lib/
│   ├── vworld.ts                      # V-World HTTP 클라이언트 (5xx 재시도 1회)
│   ├── overlays.ts                    # 병렬 레이어 쿼리 + POINT/BOX 필터
│   ├── resolve.ts                     # 주소/지번/PNU 해석
│   └── jimok.ts                       # 지목 코드 28종 매핑
└── tools/
    ├── resolve_parcel.ts
    ├── get_zoning.ts
    ├── get_district_plan.ts
    ├── get_urban_facility.ts
    ├── get_other_law_designations.ts
    ├── get_land_attributes.ts
    └── analyze_parcel.ts

🧪 Testing

Unit Tests (Pure functions, no API key required):

npm test

Live smoke test (Actual V-World calls, requires VWORLD_API_KEY):

# 단일 지번 디버그
npx tsx tests/live/smoke-polygon.ts "서울특별시 마포구 연남동 229-1"

# 3개 픽스처 회귀 테스트 (스냅샷 비교)
npx tsx tests/live/smoke-fixtures.ts

# 스냅샷 갱신 (V-World 데이터 변경 시)
npx tsx tests/live/smoke-fixtures.ts --update

Fixtures: Urban residential area (Yeonnam-dong), Agriculture/Forestry area + priority delegation (Sechul-ri), Mixed zoning + urban development (Galmae-ri).

⚠️ Known Limitations

  • Point-based Determination: The default query sends one parcel center point to V-World. Since it is not a parcel polygon intersection, cases on the boundary may be missed. The radius_m in get_urban_facility mitigates this with a BOX filter, but final determination of "encroachment" vs "adjacency" requires re-verification of polygon intersection by the user or a responsible official.

  • V-World Layer Outages: Some layers intermittently return HTTP 500. If it fails after one 5xx retry, it is exposed in layer_errors, and the results for the remaining layers are returned normally.

  • Local Ordinances Not Included: This MCP only covers spatial layers. Local urban planning ordinances must be queried separately via korean-law-mcp or the Ministry of Government Legislation's local autonomous law API.

📜 License

MIT License.

🤝 Contributing

Issues and PRs are welcome. When adding a new V-World layer, simply add { id, label } to the LAYERS array in src/tools/*.ts to automatically integrate it into the queryOverlays pipeline.

Available Tools

8 tools
analyze_parcelA

One-shot comprehensive analysis — chains all the above tools and returns a single integrated record: parcel + zoning + district_plan + urban_facility + other_law_designations + priority_delegation_hint + buildings + next_steps. Use this when you want a complete 토지이용계획확인서-equivalent JSON in one call. next_steps tells you exactly which korean-law MCP queries to run afterward.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesKorean address (e.g. '경기도 평택시 포승읍 내기리 680') or 19-digit PNU

TDQS

A4.3/5.0
Behavior4/5

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

In the absence of annotations, the description discloses that it chains multiple tools, implying internal multi-step execution. It also mentions next_steps to guide post-call actions. However, it could further detail potential latency or rate limits from the chaining.

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 two sentences with no wasted words. The first sentence provides a clear purpose and overview, and the second adds actionable guidance on next_steps.

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 tool with one parameter and no output schema, the description thoroughly explains the returned record (listing components) and provides usage context (equivalent to a Korean form). It also covers post-call behavior with next_steps.

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 sole parameter 'query' is already fully described in the schema (Korean address or 19-digit PNU). The description adds context about the output being a complete integrated record, but this is not parameter-specific. Baseline is 3 due to 100% schema coverage.

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 explicitly states it is a 'one-shot comprehensive analysis' that 'chains all the above tools' and returns a single integrated record. It lists the components and distinguishes itself from sibling tools by being a composite of them.

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?

The description advises to use this tool when a complete 토지이용계획확인서-equivalent JSON is needed in one call, and mentions next_steps for subsequent queries. It does not explicitly list exclusion criteria, but the context of sibling tools implies alternatives for specific needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discover_toolsA

List all currently wired tools in this MCP build.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It explicitly states 'list,' indicating a read-only operation, though it does not formally declare side-effect safety.

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?

Single sentence, 8 words, perfectly front-loaded. Every word is meaningful with no redundancy.

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 the tool's simplicity (no parameters, no output schema, no annotations), the description is adequate. It could optionally mention return format but is complete enough for an agent.

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?

No parameters exist (0 parameters, 100% schema coverage). Baseline 4 applies; description adds no parameter info, but none is needed.

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 action (list) and the resource (currently wired tools). It distinguishes itself from sibling tools which are specific domain tools.

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?

The description implies use when needing to discover available tools. No alternatives exist for this meta-function, so no exclusions needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_district_planA

Return 지구단위계획구역 membership and 개발행위허가제한지역 overlays. When district_plan is non-empty, 건폐율·용적률·용도 may be overridden by the plan (see 국토계획법 제52조). V-World only returns the geometric hit — actual plan text must come from 지자체 고시문.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesKorean address (e.g. '경기도 평택시 포승읍 내기리 680') or 19-digit PNU

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It discloses the tool's limitation (only geometric hit, not plan text) and the behavioral implication of plan overriding properties. It does not mention authorization or other side effects, but the read-only nature is implied.

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 three sentences with no fluff, front-loading the purpose in the first sentence. Every sentence adds value: purpose, override implication, and data source limitation.

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 the absence of an output schema, the description explains what is returned (membership and overlays) and the override behavior, but does not detail the response structure or error handling. It is sufficiently complete for a simple tool with one parameter.

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 input schema already fully describes the single parameter 'query' with minLength and a clear description. The description adds no additional meaning beyond what the schema provides, meeting the baseline for 100% schema coverage.

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 returns '지구단위계획구역 membership and 개발행위허가제한지역 overlays' with a specific verb and resource. It further explains the implications of non-empty district plan overriding certain properties, which distinguishes it from sibling tools like get_zoning.

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?

The description provides context on when to use the tool by mentioning that district plan may override properties and references relevant law. It also warns that V-World only returns geometric hit and that actual plan text is external. However, it does not explicitly compare to sibling tools or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_land_attributesA

Return detailed parcel attributes: parsed 지목 (28-type mapping), 지번 components, 공시지가, administrative breakdown, and 건축물 presence at the point. Note: 면적(land area) is NOT provided — V-World doesn't expose 토지대장 area field.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesKorean address (e.g. '경기도 평택시 포승읍 내기리 680') or 19-digit PNU

TDQS

A4/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 behavioral burden. It transparently notes that land area (면적) is omitted due to V-World limitations, which is a useful constraint. However, it does not mention read-only nature or other behavioral traits like rate limits.

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 consists of two sentences: the first lists the returned attributes, and the second adds a critical note. It is front-loaded with the purpose and wastes no words.

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?

Despite having no output schema, the description lists the key returned attributes (지목, 지번, 공시지가, administrative breakdown, 건축물 presence) and hints at the structure (e.g., 28-type mapping). This is reasonably complete for a simple query tool, though error handling or pagination is not mentioned.

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% with a clear description of the query parameter. The description adds 'at the point' implying point-specific queried attributes but does not provide examples or format hints beyond the schema. Baseline 3 is appropriate as the schema already documents the parameter.

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 returns specific parcel attributes (지목, 지번, 공시지가, administrative breakdown, 건축물 presence) and explicitly notes what is not provided (면적). This differentiates it from sibling tools like get_zoning or get_district_plan, even without naming them, by specifying the exact output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when those specific attributes are needed but does not explicitly state when to use this tool versus alternatives like analyze_parcel. There is no direct mention of when not to use it or guidance on prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_other_law_designationsA

Return '다른 법령에 따른 지정사항' overlays — ~38 layers across 농지/산림/산업단지/수질·환경/축산/문화재/자연공원/특수지구/주거정비/재해/해양/항공. Each hit includes governing_law and a triggers_priority_delegation flag. When any flag is true, 국토계획법 제76조⑤ priority delegation applies and the governing_law's 행위제한 overrides the 국토계획법 시행령 별표 — look up those provisions via korean-law MCP first.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesKorean address (e.g. '경기도 평택시 포승읍 내기리 680') or 19-digit PNU

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description must carry behavioral disclosure. It reveals the tool returns overlays with specific fields (governing_law, triggers_priority_delegation) and explains the consequence of the flag being true. However, it doesn't state whether the tool is read-only, requires authentication, or has rate limits. The behavioral traits are partially disclosed but not comprehensively.

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 two well-structured sentences, front-loading the core information (what the tool returns and the list of layers) and then providing important conditional behavior. It is efficient with no filler, though the inclusion of Korean text may require translation for some users.

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 the tool has one required parameter and no output schema, the description adequately explains the return structure (governing_law and a flag) and the conditional logic for priority delegation. It does not cover error handling or performance implications, but for a retrieval tool of this complexity, the information is largely sufficient.

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 input schema has 100% description coverage for the single parameter 'query', specifying it accepts a Korean address or PNU. The description adds no further parameter-level information beyond what the schema already provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns '다른 법령에 따른 지정사항' overlays and lists ~38 specific categories (농지, 산림, etc.). The verb 'Return' and the resource specification make the purpose unambiguous. It is well-distinguished from sibling tools like 'get_zoning' or 'get_land_attributes' which deal with different types of parcel data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a conditional usage note (when the flag is true, look up provisions via korean-law MCP first) but does not explicitly state when to use this tool versus alternatives. There is no 'when-not' guidance or mention of alternative sibling tools for similar queries, leaving the context of usage partially implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_urban_facilityA

Return 도시계획시설 overlaps: 도로, 교통시설, 공간시설(공원·녹지), 유통공급, 공공문화체육, 방재, 보건위생, 환경기초, 기타기반시설. Overlap with 도시계획시설 triggers 건축제한 (국계법 제64조) or 미집행 저촉 리스크. Exact 저촉 면적 needs geometric intersection, not returned here.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesKorean address (e.g. '경기도 평택시 포승읍 내기리 680') or 19-digit PNU
radius_mNo접함(nearby) 후보 탐지 반경(미터). 기본 50. 0이면 저촉(overlap)만 반환. 최대 500.

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries full disclosure burden. It honestly states that exact overlap area is not returned, and explains the legal trigger. It does not cover authentication, rate limits, or side effects, but is transparent about limitations.

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 concise (about 3 sentences), front-loaded with the return type. It avoids unnecessary words, though it could be more structured into a list for easier parsing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains what is returned (overlap types) and what is not (exact area), but does not detail the output format (e.g., list of objects, fields). Given no output schema, some additional structure would improve completeness.

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 baseline is 3. The description adds no extra meaning beyond the schema's parameter descriptions. For example, 'query' and 'radius_m' are fully described in the JSON 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 returns '도시계획시설 overlaps' and enumerates specific facility types (도로, 교통시설, etc.). It also mentions legal implications (건축제한), making the purpose specific and distinct from sibling tools like get_zoning or get_district_plan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly tells when not to use it by stating exact overlap area requires geometric intersection, not returned here. However, it does not explicitly compare to sibling tools or state when to use this over alternatives like get_land_attributes or get_other_law_designations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_zoningA

Return 용도지역 (도시/관리/농림/자연환경보전 + subclass), 용도지구 (경관/고도/방화/방재/보호/취락/개발진흥/특정용도제한), 용도구역 (개발제한/도시자연공원), and 토지거래허가구역 overlays. Empty array = no overlay at this point (not an error). Use the zone name with korean-law MCP to get 건폐율·용적률.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesKorean address (e.g. '경기도 평택시 포승읍 내기리 680') or 19-digit PNU

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden for behavioral transparency. It does disclose that empty arrays indicate no overlay (not an error), which adds value. However, it does not mention any potential side effects, authorization requirements, or performance constraints, leaving gaps for a comprehensive understanding.

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 extremely concise with two sentences. The first sentence immediately lists the outputs, and the second provides a crucial note about empty arrays and a cross-tool hint. No filler or 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 the single required parameter and no output schema, the description sufficiently explains the return values (types of overlays and empty array handling). It also guides the next step using another tool. The information is complete for an agent 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 coverage is 100% for the single parameter 'query', which is adequately described in the schema. The description does not add additional semantics beyond the schema (e.g., format constraints or examples), so a baseline score of 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?

The description clearly states the tool returns specific types of zoning overlays (용도지역, 용도지구, 용도구역, 토지거래허가구역). It distinguishes itself from sibling tools like get_district_plan by specifying the exact zoning categories, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a cross-tool recommendation (use korean-law MCP for 건폐율·용적률) but does not explicitly state when to use this tool versus its siblings. Context such as when zoning overlay information is needed is implied but not formally contrasted with alternatives like analyze_parcel or get_other_law_designations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_parcelA

Resolve address or PNU → canonical parcel: PNU, 지번, parsed 지목 (e.g. 공장용지), refined address, WGS84 coordinates, 공시지가, administrative hierarchy. Foundation for all other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesKorean address (e.g. '경기도 평택시 포승읍 내기리 680') or 19-digit PNU

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Lists outputs but omits error handling, performance characteristics, or idempotency. Acceptable but not thorough.

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?

Single sentence packs verb, inputs, and all key output fields. Efficient and front-loaded with no fluff.

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?

No output schema, but description lists all major outputs. States foundational role. Lacks mention of error cases or success guarantees, but sufficient for a lookup tool.

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 covers the single parameter with description. Description adds no new semantics beyond schema; baseline 3 for high schema coverage.

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?

Clearly states verb 'Resolve', input types (address or PNU), and detailed output fields. Explicitly marks itself as 'Foundation for all other tools', distinguishing from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage as prerequisite for other tools via 'Foundation' statement, but lacks explicit when-to-use, when-not-to-use, or alternative tool guidance.

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. 8 tool updatesv2.0.0
    • First observedanalyze_parcel
    • First observeddiscover_tools
    • First observedget_district_plan
    • First observedget_land_attributes
    • First observedget_other_law_designations
    • First observedget_urban_facility
    • First observedget_zoning
    • First observedresolve_parcel

TDQS

A4.1/5.0

Scored across 8 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: resolve_parcel for resolution, get_land_attributes for parcel details, get_zoning for zoning overlays, get_district_plan for district plans, get_urban_facility for facilities, get_other_law_designations for other laws, analyze_parcel as a composite, and discover_tools for listing. No two tools overlap in functionality.

Naming Consistency4/5

Most tools follow a 'get_X' pattern, but three use different verbs: analyze_parcel, discover_tools, resolve_parcel. The structure is still clear and predictable, and all names use snake_case, so the inconsistency is minor.

Tool Count5/5

With 8 tools, the server covers essential land information queries and includes a composite tool for one-shot analysis. This is well-scoped; each tool earns its place without being overwhelming or sparse.

Completeness4/5

The tool set covers parcel resolution, attributes, zoning, district plans, urban facilities, other law designations, and a composite with buildings. Minor gaps exist (no separate building tool, no area field), but the composite mitigates these and the domain is well-covered.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables real-time search and analysis of Korean laws, legal precedents, and administrative rules through the National Law Information Center Open API, allowing AI agents to access official legal information for contract review, compliance, and legal research.
    74
    -
  • A
    license
    A
    quality
    D
    maintenance
    Provides 12 tools to query South Korean building register data, including title sheets, floor details, and official house prices via the data.go.kr API. It enables users to perform smart building lookups and region code searches using natural language.
    12
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search, retrieve, and analyze South Korean legal documents including statutes, precedents, constitutional decisions, and administrative rulings via the Ministry of Government Legislation Open API. Provides 89 specialized tools with features like legal abbreviation auto-recognition, annex extraction, and complex research chain workflows.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables natural language access to 11 Korean building data tools including building registers, permits, comprehensive profiles with zoning, floor composition, district statistics, old building analysis, price history, demolitions, and permit pipeline.
    65
    MIT