Skip to main content
Glama
tae0y

Korea Real Estate MCP

by tae0y

Korea Real Estate MCP

English | 한국어

Connect Claude to Korea's MOLIT real estate API and simulate buy now / buy later / invest only scenarios based on your income, savings, and retirement goals. Provides 14+ tools for live transaction data and financial calculations — apartment, officetel, villa, single-house, and commercial.

Supported Tools

  • Apartment trade / rent (get_apartment_trades, get_apartment_rent)

  • Officetel trade / rent (get_officetel_trades, get_officetel_rent)

  • Villa / multi-family housing trade / rent (get_villa_trades, get_villa_rent)

  • Single-house / multi-household trade / rent (get_single_house_trades, get_single_house_rent)

  • Commercial building trades (get_commercial_trade)

  • Apartment subscription notices / results (get_apt_subscription_info, get_apt_subscription_results)

  • Region code lookup (get_region_code)

Related MCP server: realestate-mcp

Prerequisites

For parsing API specs in hwp or docx format, see Common Utils Guide

Quick Start: Claude Desktop (stdio)

The fastest way to get started — the server runs as a child process of Claude Desktop.

  1. Clone this repository locally.

    git clone <repository_url>
    cd real-estate-mcp
  2. Open the Claude Desktop config file.

    # macOS
    open "$HOME/Library/Application Support/Claude/claude_desktop_config.json"
    # Windows
    notepad %APPDATA%\Claude\claude_desktop_config.json
  3. Add the entry below under mcpServers.

    {
      "mcpServers": {
        "real-estate": {
          "command": "uv",
          "args": [
            "run",
            "--directory", "/path/to/real-estate-mcp",
            "python", "src/real_estate/mcp_server/server.py"
          ],
          "env": {
            "DATA_GO_KR_API_KEY": "your_api_key_here"
          }
        }
      }
    }
  4. Restart Claude Desktop. Setup is complete when you can see the real-estate server in the tool list.

  5. For better responses, create a Project in Claude Desktop and paste resources/custom-instructions-ko.md into the Project Instructions tab.

Connect with Other Clients

For other clients, transport options, or per-service API key configuration, see the docs below.

Guide

Transport

Clients

docs/setup-prerequisites.md

All clients

docs/setup-with-stdio.md

stdio / local HTTP

Claude Desktop, Claude CLI, Codex CLI

docs/setup-with-http.md

HTTP (remote)

Claude (web), Claude CLI, Codex CLI

docs/setup-reverse-proxy.md

Server-side proxy setup (Cloudflare Tunnel)

Contributors

This project exists thanks to all the people who contribute. [Contributing]

Made with contrib.rocks.

Support

If you find this project useful, buy me a coffee!

Available Tools

16 tools
calculate_compound_growthC

Calculate compounded asset growth with initial capital and monthly contributions.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearsYes
initial_10kYes
annual_rate_pctYes
monthly_contribution_10kYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, and the description gives no behavioral details beyond the basic calculation. It does not disclose side effects, return value format, or any assumptions (e.g., compounding frequency).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (one sentence) but at the cost of omitting critical details. It is front-loaded with the purpose, yet too brief to be fully effective.

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

Completeness2/5

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

Given 4 required parameters, no schema descriptions, and a lack of behavioral context, the description is not complete enough. It does not leverage the existing output schema to explain return values, leaving the agent undersupplied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds minimal meaning: it mentions 'initial capital' and 'monthly contributions' but does not explain they are in units of 10,000. The other parameters (annual_rate_pct, years) are left to inference.

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 calculates compounded asset growth with initial capital and monthly contributions. This verb+resource specification is distinct from all sibling tools, which focus on loans, rents, trades, etc.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs. alternatives. There is no mention of prerequisites, limitations, or contexts where another tool would be more appropriate.

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

calculate_loan_paymentC

Calculate equal principal+interest monthly payment (EMI) in 10k KRW units.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearsYes
principal_10kYes
annual_rate_pctYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/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 discloses the computation type and output unit but omits details on assumptions (e.g., compounding frequency), rounding, error handling, or edge cases (e.g., zero interest).

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 a single concise sentence with no fluff. It efficiently conveys the core function and output unit. However, it could be slightly expanded to include parameter format hints without losing brevity.

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

Completeness2/5

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

Given the absence of annotations and a need to compensate, the description is too brief. It does not explain the return value (despite an output schema existing), does not clarify the formula (e.g., how interest is compounded), and lacks validation context. An agent could misinterpret the rate format or output structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It implies parameters (principal, rate, term) and clarifies principal unit (10k KRW) but does not explain that annual_rate_pct is expected as a percentage (e.g., 5 for 5%) vs decimal, or that years is an integer. The value added beyond the schema is minimal.

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 calculates an equal principal+interest monthly payment (EMI) and specifies the output unit (10k KRW). It distinctly differs from sibling tools like calculate_compound_growth or calculate_monthly_cashflow.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, prerequisites, or limitations. The description is purely functional without contextual usage advice.

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

calculate_monthly_cashflowB

Calculate monthly free cashflow after debt service and costs.

ParametersJSON Schema
NameRequiredDescriptionDefault
monthly_income_10kYes
monthly_living_cost_10kYes
other_monthly_costs_10kNo
monthly_loan_payment_10kYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It states 'after debt service and costs' but does not explain what costs are included, whether output is positive/negative, or units (parameters are in 10k units). Minimal behavioral 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?

Single sentence, 7 words, efficient and front-loaded. However, brevity sacrifices necessary detail for a financial calculation tool.

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

Completeness2/5

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

With 4 parameters, an output schema (unseen), and no annotations, description is too sparse. It does not mention output type, edge cases, or formula logic. Incomplete for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. Description does not explain parameter units (10k), what 'other_monthly_costs' includes, or how parameters relate to the formula. The names and defaults provide some hint but description adds no value beyond 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?

Description clearly states the verb 'calculate' and resource 'monthly free cashflow after debt service and costs'. It distinguishes from sibling tools like calculate_loan_payment by focusing on cashflow after expenses.

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?

No explicit guidance on when or when not to use this tool. It implies use for cashflow calculation, but misses comparisons with siblings like calculate_compound_growth or other financial tools.

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

get_apartment_rentA

Return apartment lease and monthly-rent records for a region and month.

Korean keywords: 아파트

Use this alongside get_apartment_trades to compute the jeonse ratio:
  jeonse_ratio = summary.median_deposit_10k / trade summary.median_price_10k
A ratio above 70% signals high gap-investment risk.

Args:
    region_code: 5-digit legal district code (returned by get_region_code).
    year_month: Target year-month in YYYYMM format (e.g. "202501").
        Call get_current_year_month if not specified by the user.
    num_of_rows: Maximum number of records to return. Default 100.

Returns:
    total_count: Total record count from the API
    items: Rent list (unit_name, dong, area_sqm, floor,
           deposit_10k, monthly_rent_10k, contract_type,
           trade_date, build_year)
    summary: median/min/max deposit_10k, monthly_rent_avg_10k,
             jeonse_ratio_pct (null — compute from trade data),
             sample_count
    error/message: Present on API error or network failure
ParametersJSON Schema
NameRequiredDescriptionDefault
year_monthYes
num_of_rowsNo
region_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It details return structure including error handling and possible fields. However, it does not explicitly state that the tool is read-only or mention rate limits, which would improve transparency.

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?

Description is well-structured and front-loaded with the main purpose. It is slightly lengthy but every sentence adds value. Could be slightly more concise, but remains efficient.

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 complexity (3 parameters, output schema exists but no nested objects), the description is very complete: covers arguments, return structure, usage with sibling tools, and error handling. No gaps remain.

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?

Schema description coverage is 0%, so the description must add meaning. It fully explains each parameter: region_code as a 5-digit code from get_region_code, year_month format YYYYMM with a fallback instruction, and num_of_rows with default 100.

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 'Return apartment lease and monthly-rent records for a region and month.' It also provides Korean keywords and distinguishes from siblings by referencing 'get_apartment_trades' for computing the jeonse ratio.

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?

Explicitly says 'Use this alongside get_apartment_trades to compute the jeonse ratio' and gives a formula. Also instructs to call 'get_current_year_month' if the user doesn't specify the year_month.

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

get_apartment_tradesA

Return apartment sale records and summary statistics for a region and month.

Korean keywords: 아파트

Use summary.median_price_10k as the reference price and
min/max_price_10k to present the price range.

To compute jeonse ratio, call get_apartment_rent for the same region and
month, then divide rent summary.median_deposit_10k by this
summary.median_price_10k.

region_code must be obtained first via the get_region_code tool.

Query strategy:
- For price trend analysis, call this tool for each of the 6 consecutive
  months preceding the current month.
- To check year-over-year changes, also query the same month across
  3 years (e.g. 202412, 202312, 202212).

Args:
    region_code: 5-digit legal district code (returned by get_region_code).
    year_month: Target year-month in YYYYMM format (e.g. "202501").
        Call get_current_year_month if not specified by the user.
    num_of_rows: Maximum number of records to return. Default 100.

Returns:
    total_count: Total record count from the API
    items: Trade list (apt_name, dong, area_sqm, floor,
           price_10k, trade_date, build_year, deal_type)
    summary: median/min/max price_10k, sample_count
    error/message: Present on API error or network failure
ParametersJSON Schema
NameRequiredDescriptionDefault
year_monthYes
num_of_rowsNo
region_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/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 full burden. It describes the return structure and possible error conditions, but does not explicitly state that the operation is read-only or disclose rate limits or authentication needs. However, the read nature is implied through the language of 'return' and 'summary'.

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 well-structured with clear sections, but slightly verbose. It front-loads the core purpose and adds valuable usage tips. Every sentence serves a purpose, but could be tightened slightly without losing 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?

Given the tool's moderate complexity, the description fully covers purpose, parameters, usage patterns, and expected output. It even provides query strategies for common analyses. The output schema is described, so the agent knows what to expect.

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?

Schema coverage is 0%, but the description has a detailed 'Args' section that explains each parameter's purpose, format, and default behavior (e.g., year_month in YYYYMM, hint to use get_current_year_month, num_of_rows default 100). This adds significant meaning beyond the bare 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 it returns apartment sale records and summary statistics for a region and month, with specific verbs and resource. It distinguishes from sibling tools like get_apartment_rent and get_officetel_trades by focusing on trades.

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 guidance on using summary.median_price_10k as reference price, how to compute jeonse ratio via get_apartment_rent, query strategies for trend analysis and year-over-year changes, and prerequisite to call get_region_code first.

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

get_apt_subscription_infoA

Return Applyhome (청약홈) APT subscription notice metadata.

Korean keywords: 청약, 분양, 모집공고, 청약 일정, 당첨자 발표, 계약 일정

Use this tool when the user asks:
  - "청약(분양) 공고를 보고 싶어", "이번 달 모집공고 알려줘"
  - "청약 접수 시작/종료일, 당첨자 발표일이 언제야?"
  - "어떤 단지(주택명)가 분양 예정이야?"

This tool returns APT notice metadata such as notice number, house name,
location, schedule dates (announcement, application, winner, contract),
and operator/constructor information. It is not tied to region_code.

Authentication:
  - Set ODCLOUD_API_KEY (Authorization header), or
  - Set ODCLOUD_SERVICE_KEY (serviceKey query parameter).

Args:
    page: Page number (1-based).
    per_page: Items per page.
    return_type: Response type, typically "JSON".

Returns:
    total_count: Total record count from the API.
    items: Notice metadata records.
    page: Current page.
    per_page: Items per page.
    current_count: Number of returned items in this response.
    match_count: Number of matched items (may differ by API).
    error/message: Present on API/network/config failure.
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo
return_typeNoJSON

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Discloses two authentication methods and error handling. No annotations provided, so description carries the burden. Does not mention rate limits, destructive behavior (appears read-only), or performance traits.

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?

Well-structured with sections for keywords, use cases, authentication, arguments, returns. Front-loaded with purpose. Could be slightly condensed but clear and efficient.

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?

Output schema exists and description lists return fields. Covers authentication, error states, and typical usage. For a metadata list tool, it is fairly complete given the schema presence.

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 has 0% coverage, but description adds brief explanations for each parameter (1-based page, default per_page, return_type). Adds some meaning beyond schema titles and defaults but not extensive.

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 it returns APT subscription notice metadata. Provides Korean keywords and example user queries. Distinguishes from sibling tools like get_apt_subscription_results which handles results, not metadata.

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?

Provides concrete example questions that trigger this tool. Notes that it is not tied to region_code, implying context for when to use versus region-specific tools. Does not explicitly state when not to use or list alternatives.

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

get_apt_subscription_resultsA

Return Applyhome (청약홈) subscription stats: requests, winners, rates, and scores.

Korean keywords: 청약 경쟁률, 청약 신청자, 청약 당첨자, 가점, 가점제

Use this tool when the user asks:
  - "마포구(서울) 청약 경쟁률이 어때?"
  - "청약 신청자/당첨자 통계가 궁금해"
  - "가점 평균/중앙값/최고점은?"

This tool provides aggregated statistics, not individual notice schedules.
For schedules (접수/발표/계약일), use get_apt_subscription_info.

stat_kind choices:
  - "reqst_area": 지역별 청약 신청자 (연령대별 신청건수)
  - "reqst_age":  연령별 청약 신청자 (연령대별 신청건수)
  - "przwner_area": 지역별 청약 당첨자 (연령대별 당첨건수)
  - "przwner_age":  연령별 청약 당첨자 (연령대별 당첨건수)
  - "cmpetrt_area": 지역별 청약 경쟁률 (특별/일반공급 경쟁률)
  - "aps_przwner":  지역별 청약 가점제 당첨자 (가점 통계)

Optional filters use odcloud's cond[...] syntax.

Authentication:
  - Set ODCLOUD_API_KEY (Authorization header), or
  - Set ODCLOUD_SERVICE_KEY (serviceKey query parameter).

Args:
    stat_kind: Which stats endpoint to call (see choices above).
    stat_year_month: Provided year-month in YYYYMM (maps to STAT_DE).
    area_code: Subscription area code (maps to SUBSCRPT_AREA_CODE).
    reside_secd: Residence section code (maps to RESIDE_SECD, used by some endpoints).
    page: Page number (1-based).
    per_page: Items per page.
    return_type: Response type, typically "JSON".

Returns:
    total_count/items/page/per_page/current_count/match_count plus the chosen stat_kind.
    error/message: Present on API/network/config failure.
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo
area_codeNo
stat_kindYes
reside_secdNo
return_typeNoJSON
stat_year_monthNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 must disclose behavioral traits. It details authentication methods (two options), parameter mappings (e.g., stat_year_month -> STAT_DE), and mentions the use of odcloud cond[...] syntax for filters. However, it does not explicitly state whether the operation is read-only or mention rate limits. Given the lack of annotations, the description is fairly transparent but could be more explicit about safety (though the context suggests a read 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 well-structured with sections for purpose, examples, differentiation, parameters, authentication, and returns. It front-loads the main purpose. However, it is somewhat lengthy (about 15 lines) but necessary due to the tool's complexity. A slight reduction in detail could improve conciseness 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?

The description covers input parameters, output summary (total_count, items, etc.), authentication, and sibling tool differentiation. The output schema exists but is not detailed in the description; the 'Returns' section provides a reasonable overview. Given the parameter count (7) and complexity, the description is complete enough though it could touch on error handling or pagination behavior more explicitly.

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 input schema has 0% description coverage, meaning no property descriptions. The description compensates by providing detailed explanations for each parameter in the 'Args' section, including their mapping to API fields and the meaning of stat_kind choices (e.g., 'reqst_area': 지역별 청약 신청자). This adds significant semantic value beyond the schema's empty property definitions.

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 subscription statistics (requests, winners, rates, scores) with specific verb 'Return' and resource 'subscription stats'. It provides Korean keywords and example queries. It explicitly distinguishes from sibling tool 'get_apt_subscription_info' which handles schedules, making the 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 Guidelines5/5

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

The description gives explicit usage guidance with three Korean query examples, stating 'Use this tool when the user asks...' and also provides an alternative for schedules ('For schedules... use get_apt_subscription_info'). This clearly indicates when to use this tool versus alternatives.

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

get_commercial_tradeA

Return commercial and business building (상업업무용) sale records for a region and month.

Korean keywords: 상업용, 업무용, 상가, 근린생활시설(매매), 상업업무용

Response structure differs from residential tools:
building_type, building_use, land_use, building_ar instead of unit_name/area_sqm.
share_dealing indicates whether the transaction is a partial-share deal.

Use to evaluate commercial real estate investment options alongside residential data.

Args:
    region_code: 5-digit legal district code (returned by get_region_code).
    year_month: Target year-month in YYYYMM format (e.g. "202501").
        Call get_current_year_month if not specified by the user.
    num_of_rows: Maximum number of records to return. Default 100.

Returns:
    total_count: Total record count from the API
    items: Trade list (building_type, building_use, land_use, dong,
           building_ar, floor, price_10k, trade_date, build_year,
           deal_type, share_dealing)
    summary: median/min/max price_10k, sample_count
    error/message: Present on API error or network failure
ParametersJSON Schema
NameRequiredDescriptionDefault
year_monthYes
num_of_rowsNo
region_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 fully covers behavioral aspects: it explains that the response structure differs from residential tools, highlights the share_dealing field, and lists potential error/message fields. This is sufficient for an agent to understand what the tool does and what to expect.

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 well-structured with a purpose statement first, then parameter details, then returns. It is somewhat lengthy but each sentence adds value. Minor redundancy with listing return fields in both prose and bullet list. Overall effective.

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?

The description covers all necessary aspects: purpose, usage context, parameter semantics (including default behavior and helper tool), and return structure with error handling. Given the tool has 3 parameters and an output schema, this is thoroughly complete.

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?

Since schema description coverage is 0%, the description adds significant meaning: it explains region_code as a 5-digit code from get_region_code, year_month format with a helper tool reference, and num_of_rows default. This goes well beyond the bare schema types.

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 commercial building sale records for a specific region and month, using specific verbs ('return', 'evaluate') and resource type. It distinguishes from residential tools by listing different response fields and Korean keywords, making its purpose unmistakable.

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 using this tool to evaluate commercial real estate alongside residential data and provides a practical tip to call get_current_year_month if the user omits the month. However, it does not explicitly state when the tool should not be used or name alternative sibling tools for exclusion.

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

get_current_year_monthA

Return the current year and month in YYYYMM format for use with trade/rent tools.

Call this tool when the user asks about current or recent transactions
without specifying a year_month.

Returns:
    year_month: Current year-month string in YYYYMM format (e.g. "202602")
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

No annotations are provided, so the description fully carries the burden. It accurately describes the behavior: returning a string in YYYYMM format. There are no hidden side effects, permissions, or safety concerns to disclose for this simple 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at ~60 words, with the main purpose stated first. Every sentence adds value: purpose, usage guideline, and return format. No redundancy or wasted words.

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 simple tool with no parameters and an output schema, the description is complete. It explains the return format and when to use it. No additional information is needed for an agent to effectively invoke and understand the tool.

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?

There are zero parameters, so baseline is 4. The description adds value beyond the empty schema by explaining the output format and contextual usage, justifying a score of 5.

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 specifies the verb 'Return', the resource 'current year and month', and the output format 'YYYYMM'. It explicitly states the tool's purpose as a utility for trade/rent tools, distinguishing it from sibling calculation and data retrieval 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?

The description explicitly states when to use this tool: 'Call this tool when the user asks about current or recent transactions without specifying a year_month.' This provides clear guidance and implies the alternative (use year_month from user input) without needing explicit sibling differentiation.

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

get_officetel_rentA

Return officetel lease and monthly-rent records for a region and month.

Korean keywords: 오피스텔

Use alongside get_officetel_trades to compute officetel jeonse ratio
and evaluate rental investment yield.

Args:
    region_code: 5-digit legal district code (returned by get_region_code).
    year_month: Target year-month in YYYYMM format (e.g. "202501").
        Call get_current_year_month if not specified by the user.
    num_of_rows: Maximum number of records to return. Default 100.

Returns:
    total_count: Total record count from the API
    items: Rent list (unit_name, dong, area_sqm, floor,
           deposit_10k, monthly_rent_10k, contract_type,
           trade_date, build_year)
    summary: median/min/max deposit_10k, monthly_rent_avg_10k,
             jeonse_ratio_pct (null), sample_count
    error/message: Present on API error or network failure
ParametersJSON Schema
NameRequiredDescriptionDefault
year_monthYes
num_of_rowsNo
region_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It lacks behavioral context such as idempotency, rate limits, authorization needs, or side effects. Return format is detailed, but behavioral traits are missing.

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?

Well-structured with separate sections for purpose, args, and returns. Front-loaded with main action. Could be slightly more concise, but overall efficient.

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 presence of an output schema (though not shown), the description fully documents return fields, includes error/network failure handling, and covers default behavior. Complete for a data-retrieval tool.

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?

Schema description coverage is 0%, but the description fully compensates: explains region_code as a 5-digit legal district code returned by get_region_code, year_month in YYYYMM format with example, and num_of_rows with default. Adds clear meaning 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 it returns officetel lease and monthly-rent records for a region and month, with specific verb 'Return'. It distinguishes from siblings like get_officetel_trades and other property-specific rent 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?

Provides explicit usage guidance: use alongside get_officetel_trades to compute jeonse ratio and evaluate rental yield. Advises calling get_current_year_month if year_month not specified. However, no explicit when-not-to-use or alternatives for other property types.

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

get_officetel_tradesA

Return officetel sale records and summary statistics for a region and month.

Korean keywords: 오피스텔

Use to compare officetel prices against apartment prices in the same area.
Officetel units are typically smaller and cheaper than apartments,
suitable for 1-person households or as rental investment.

Args:
    region_code: 5-digit legal district code (returned by get_region_code).
    year_month: Target year-month in YYYYMM format (e.g. "202501").
        Call get_current_year_month if not specified by the user.
    num_of_rows: Maximum number of records to return. Default 100.

Returns:
    total_count: Total record count from the API
    items: Trade list (unit_name, dong, area_sqm, floor,
           price_10k, trade_date, build_year, deal_type)
    summary: median/min/max price_10k, sample_count
    error/message: Present on API error or network failure
ParametersJSON Schema
NameRequiredDescriptionDefault
year_monthYes
num_of_rowsNo
region_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Discloses return structure (total_count, items, summary, error handling) and that it fetches from an API. No side effects mentioned, but it's a read operation. Could mention rate limits, but data retrieval tool is well-described.

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?

Description is well-organized with sections for args and returns. Each sentence adds value, though it is longer than minimal. Front-loaded with purpose.

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 parameter count of 3, description covers all parameters with usage hints. Output schema present, but description still details fields. References sibling tools for utility. Could explain officetel more, but sufficient for the 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?

Schema coverage is 0%, so description must compensate. It explains region_code as a 5-digit legal district code from get_region_code, year_month as YYYYMM format with fallback, and num_of_rows as max records with default 100. Adds meaning beyond schema types.

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 it returns officetel sale records and summary statistics for a region and month. The verb 'Return' and resource 'officetel sale records' are specific. Distinguishes from siblings like get_apartment_trades by mentioning comparison with apartment prices.

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?

Explicitly states the use case: compare officetel prices against apartment prices. Provides parameter guidance (use get_region_code for region_code, call get_current_year_month if not specified). Does not explicitly list when not to use, but the context is clear.

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

get_region_codeA

Convert a user-supplied region name to a 5-digit legal district code for the MOLIT API.

Must be called before any trade or rent tool.
Accepts free-form text such as "마포구", "서울 마포구", or "마포구 공덕동".

If multiple matches are returned, show the matches array to the user
and confirm which region they mean before selecting a region_code.

Args:
    query: Free-form region name text supplied by the user.

Returns:
    region_code: 5-digit code for the API parameter (e.g. "11440")
    full_name: Representative legal district name (e.g. "서울특별시 마포구")
    matches: List of all matching results (10-digit original code + name)
    error/message: Present when no match is found
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior4/5

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

Without annotations, the description discloses the multiple-match behavior and return fields, though it omits potential error handling or auth requirements. Still, it provides good transparency for a simple conversion tool.

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 well-structured with Args and Returns sections, concise yet complete, with no wasted words.

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 (one parameter, output schema), the description fully covers purpose, usage, input format, handling of multiple matches, and return values.

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 parameter 'query' has no description (0% coverage), but the tool description compensates fully by explaining it accepts free-form text and providing examples like '마포구', '서울 마포구'.

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 converts user-supplied region names to a 5-digit legal district code for the MOLIT API, which is distinct from sibling tools that handle calculations, trades, or rents.

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 'Must be called before any trade or rent tool' and provides guidance on handling multiple matches by showing the matches array and confirming with the user.

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

get_single_house_rentA

Return detached and multi-unit house (단독/다가구) lease/rent records for a region and month.

Korean keywords: 단독, 다가구, 단독/다가구, (아파트외 중) 단독/다가구

No unit name is provided. area_sqm is gross floor area (totalFloorAr).
house_type distinguishes "단독" from "다가구".

Args:
    region_code: 5-digit legal district code (returned by get_region_code).
    year_month: Target year-month in YYYYMM format (e.g. "202501").
        Call get_current_year_month if not specified by the user.
    num_of_rows: Maximum number of records to return. Default 100.

Returns:
    total_count: Total record count from the API
    items: Rent list (unit_name="", dong, house_type, area_sqm,
           deposit_10k, monthly_rent_10k, contract_type,
           trade_date, build_year)
    summary: median/min/max deposit_10k, monthly_rent_avg_10k,
             jeonse_ratio_pct (null), sample_count
    error/message: Present on API error or network failure
ParametersJSON Schema
NameRequiredDescriptionDefault
year_monthYes
num_of_rowsNo
region_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries full behavioral burden. It discloses that the tool returns records and includes error handling. It outlines the return structure (total_count, items, summary, error/message). It could mention rate limits or authorization needs, but overall is transparent.

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 well-structured with sections (Args, Returns) and front-loads the purpose. It is fairly concise but could be slightly trimmed without losing value. Overall, it earns its length.

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 complexity (3 parameters, output schema), the description is complete. It covers parameters, return format, error conditions, and usage guidance. Nothing essential is missing.

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?

Despite 0% schema description coverage, the description extensively documents all three parameters: region_code as 5-digit legal district code, year_month in YYYYMM format with fallback instruction, and num_of_rows with default. This adds full meaning beyond the schema titles.

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 detached and multi-unit house lease/rent records for a region and month. It provides specific Korean keywords and distinguishes house types, making the purpose unambiguous and distinct 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?

The description provides guidance on when to use the tool (for a region and month) and references helper tools like get_region_code and get_current_year_month. However, it does not explicitly compare to sibling tools (e.g., get_apartment_rent, get_villa_rent) or state when not to use this tool.

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

get_single_house_tradesA

Return detached and multi-unit house (단독/다가구) sale records for a region and month.

Korean keywords: 단독, 다가구, 단독/다가구, (아파트외 중) 단독/다가구

No unit name is provided by the API. area_sqm is gross floor area (totalFloorAr).
house_type distinguishes "단독" from "다가구".

Args:
    region_code: 5-digit legal district code (returned by get_region_code).
    year_month: Target year-month in YYYYMM format (e.g. "202501").
        Call get_current_year_month if not specified by the user.
    num_of_rows: Maximum number of records to return. Default 100.

Returns:
    total_count: Total record count from the API
    items: Trade list (unit_name="", dong, house_type, area_sqm, floor=0,
           price_10k, trade_date, build_year, deal_type)
    summary: median/min/max price_10k, sample_count
    error/message: Present on API error or network failure
ParametersJSON Schema
NameRequiredDescriptionDefault
year_monthYes
num_of_rowsNo
region_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations exist, so the description bears full burden. It explains behavior: return structure (total_count, items, summary, error/message), lack of unit name, and that area_sqm is gross floor area. It does not mention idempotency or rate limits, but for a read tool this is adequate.

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 concise, front-loaded with purpose and keywords, and uses structured bullet points for parameters and output. Every sentence adds value with no redundancy.

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 complexity (multiple sibling trade tools, 3 parameters, output schema provided), the description is complete. It covers purpose, parameter details, return structure including error handling, and a key characteristic (no unit name).

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?

Schema coverage is 0%, but the description fully explains each parameter: region_code as a 5-digit legal district code from get_region_code, year_month in YYYYMM format with a call to get_current_year_month if not specified, and num_of_rows with default 100. This adds significant meaning.

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 'Return detached and multi-unit house (단독/다가구) sale records for a region and month.' It uses a specific verb and resource, includes Korean keywords, and differentiates from sibling tools like get_apartment_trades and get_villa_trades by explicitly naming the property type.

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 for detached/multi-unit house sales but does not explicitly state when to use this tool versus siblings. It does provide a prerequisite (call get_current_year_month for year_month if not specified) and notes API limitations, but lacks explicit when-not or alternative guidance.

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

get_villa_rentA

Return row-house and multi-family (연립다세대) lease/rent records for a region and month.

Korean keywords: 빌라, 연립, 다세대, 연립다세대, (아파트외 중) 저층 공동주택

Use alongside get_villa_trades to compute villa jeonse ratio
and evaluate rental investment yield.

Args:
    region_code: 5-digit legal district code (returned by get_region_code).
    year_month: Target year-month in YYYYMM format (e.g. "202501").
        Call get_current_year_month if not specified by the user.
    num_of_rows: Maximum number of records to return. Default 100.

Returns:
    total_count: Total record count from the API
    items: Rent list (unit_name, dong, house_type, area_sqm, floor,
           deposit_10k, monthly_rent_10k, contract_type,
           trade_date, build_year)
    summary: median/min/max deposit_10k, monthly_rent_avg_10k,
             jeonse_ratio_pct (null), sample_count
    error/message: Present on API error or network failure
ParametersJSON Schema
NameRequiredDescriptionDefault
year_monthYes
num_of_rowsNo
region_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior4/5

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

No annotations provided, but description covers behavior: returns records filtered by region and month, includes error/message field for failures. Missing details on rate limits or authentication, but still transparent about core functionality and return structure.

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?

Well-structured with 'Args' and 'Returns' sections, front-loaded with purpose statement. Every sentence adds value; no wasted words. Appropriate length for complexity.

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?

Output schema exists and description lists return fields in detail. Covers error handling. Given 3 parameters and sibling context, description is fully complete for correct tool selection and invocation.

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?

Schema coverage is 0%, so description provides full burden. It explains region_code as '5-digit legal district code (returned by get_region_code)', year_month as YYYYMM format with suggestion to use get_current_year_month, and num_of_rows with default 100. Adds crucial meaning beyond 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?

Description states specific verb+resource: 'Return row-house and multi-family lease/rent records for a region and month.' Clearly distinguishes from sibling tools like get_apartment_rent and get_officetel_rent by specifying property type and providing Korean keywords.

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?

Explicitly says 'Use alongside get_villa_trades to compute villa jeonse ratio and evaluate rental investment yield.' This gives clear context for when to use and mentions a companion tool. Includes Korean keywords to clarify property scope.

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

get_villa_tradesA

Return row-house and multi-family (연립다세대) sale records for a region and month.

Korean keywords: 빌라, 연립, 다세대, 연립다세대, (아파트외 중) 저층 공동주택
Notes:
  - "빌라" is not a legal housing type; it is commonly used to refer to "다세대/연립".

Items include house_type ("연립" or "다세대") for distinguishing subtypes.
Villas are typically cheaper than apartments and may suit budget-constrained buyers.

Args:
    region_code: 5-digit legal district code (returned by get_region_code).
    year_month: Target year-month in YYYYMM format (e.g. "202501").
        Call get_current_year_month if not specified by the user.
    num_of_rows: Maximum number of records to return. Default 100.

Returns:
    total_count: Total record count from the API
    items: Trade list (unit_name, dong, house_type, area_sqm, floor,
           price_10k, trade_date, build_year, deal_type)
    summary: median/min/max price_10k, sample_count
    error/message: Present on API error or network failure
ParametersJSON Schema
NameRequiredDescriptionDefault
year_monthYes
num_of_rowsNo
region_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

No annotations exist, so the description fully handles transparency. It details return items (including error handling) and implies read-only behavior. Could mention rate limits or required permissions, but the existing detail is strong.

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?

Well-organized with clear sections (main description, keywords, notes, args, returns). Every sentence adds value. Front-loaded with main purpose. No wasted words.

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 moderate complexity and presence of an output schema, the description is exceptionally complete. It explains all parameters, return structure with fields and summary, and provides usage tips. Covers edge cases and error handling.

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?

Schema lacks parameter descriptions (0% coverage). The description compensates fully: explains region_code as a 5-digit code from get_region_code, year_month in YYYYMM with a fallback suggestion, and num_of_rows with default. Adds meaning beyond 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?

Description clearly states it returns row-house and multi-family sale records for a region and month. Includes Korean keywords and distinguishes from sibling tools by specifying housing type (villa, row-house, multi-family).

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?

Provides context on when to use (budget-conscious buyers) and references sibling tools for prerequisites (get_region_code, get_current_year_month). Does not explicitly exclude alternatives but offers sufficient 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. Dates show when Glama detected each change.

  1. 16 tool updatesv0.1.0
    • First observedcalculate_compound_growth
    • First observedcalculate_loan_payment
    • First observedcalculate_monthly_cashflow
    • First observedget_apartment_rent
    • First observedget_apartment_trades
    • First observedget_apt_subscription_info
    • First observedget_apt_subscription_results
    • First observedget_commercial_trade
    • First observedget_current_year_month
    • First observedget_officetel_rent
    • First observedget_officetel_trades
    • First observedget_region_code
    • First observedget_single_house_rent
    • First observedget_single_house_trades
    • First observedget_villa_rent
    • First observedget_villa_trades

TDQS

A4.1/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: separate tools for different property types (apartment, officetel, villa, single house, commercial) for trades and rents, plus region code, current year/month, financial calculators, and subscription info. No overlapping functionality.

Naming Consistency5/5

Naming follows a consistent pattern: 'get_<property_type>_<action>' for data retrieval (e.g., get_apartment_rent, get_apartment_trades) and 'calculate_<function>' for financial tools. All verbs and property types are uniform.

Tool Count5/5

16 tools is well-scoped for a real estate server covering multiple property types, financial analysis, and subscription data. Each tool earns its place without unnecessary redundancy.

Completeness5/5

The tool set provides comprehensive coverage: trades and rents for five property types, financial calculators, subscription info/stats, region lookup, and current date. Minimal gaps; only commercial rent is missing but acceptable.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to query and analyze Korean apartment real estate transaction prices (sales and rentals) using natural language, providing tools for price trends, regional comparisons, and rent ratios.
    7
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying Korean apartment sales and rental transaction data from the public data portal through natural language, with tools for searching transactions and computing price statistics.
    51
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables natural language queries to retrieve Korean real estate transaction data (land, commercial, apartments) from the public API, returning structured tables and summary statistics.
    -
  • A
    license
    A
    quality
    B
    maintenance
    Provides South Korean real estate transaction price lookup (sales and rent) for apartments, row houses, single-family homes, and officetels via MCP tools using public data from data.go.kr.
    8
    51
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tae0y/real-estate-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server