Korea Realty by Sallim
Korea Realty by Sallim — Korean real estate data for AI agents.
Что умеет
- Search: 법원경매 물건을 자연어로 검색한다. **경매 전용** — 청약·분양 공고는 realty_presale, 분양가 적정성은 realty_presale_vs_market, 시세 통계는 realty_region_price_stats. 지역·물건종류·유찰횟수·감정가를 질의에서 뽑아 필터링한다. 예: "서울 강남구 아파트", "유찰 2회 이상인 경기도
- Fetch: search가 돌려준 id로 경매 사건의 전체 내용을 가져온다. id 형식은 "법원명|사건번호" (예: "서울동부지방법원|2025타경51727"). 사건번호는 법원 간 중복되므로 법원명 없이 조회하면 후보 목록이 돌아올 수 있다. rights(매각물건명세서 요약)가 있으면 법원 공시의 전달로만 인용하고, 없으면(rights_note 참조) 권리
- Realty Search Auctions: 법원경매 물건을 지역·종류·감정가·유찰횟수로 필터링해 조회한다. **법원경매(대법원)만 담고 있다 — 공매(온비드·캠코)는 이 원장에 없다.** 여기서 안 나온다고 "그런 물건 없다"고 답하지 마라. 공매면 온비드에서 확인해야 한다고 말하는 것이 정답이다 (2026-08-17 실측: 공공데이터포털 온비드 서비스는
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
Korea Realty by Sallim — Korean real estate data for AI agents. Court auction listings, case detail and sale-rate statistics; KAMCO onbid public-auction listings and sale rates; 10M+ official MOLIT transaction records with complex- and pyeong-level price series; presale (cheongyak) notice facts parsed from the original notice PDFs, with price-vs-market and funding-plan checks; and deterministic loan/DSR, acquisition- and capital-gains-tax rule calculations citing the source article. 51 tools across nine axes: court auctions, onbid public auctions, transactions and complexes, presale and subscription, statutory rule calculation, regional/macro/supply, location and infrastructure, redevelopment, issue reporting. Free without signup (30 calls/day); free email registration raises it to 100 calls/day. Korean-language tool output. From Sallim (sallim.app).
Как подключить
Как подключить Korea Realty by Sallim к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://korea-realty--sallimapp.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить Korea Realty by Sallim к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://korea-realty--sallimapp.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить Korea Realty by Sallim к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://korea-realty--sallimapp.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (47)
Технические названия из tools/list. Нужны только разработчикам.
| search | 법원경매 물건을 자연어로 검색한다. **경매 전용** — 청약·분양 공고는 realty_presale, 분양가 적정성은 realty_presale_vs_market, 시세 통계는 realty_region_price_stats. 지역·물건종류·유찰횟수·감정가를 질의에서 뽑아 필터링한다. 예: "서울 강남구 아파트", "유찰 2회 이상인 경기도 오피스텔", "서울 아파트 감정가 5억 이하". 이 파서는 최소 어댑터라 못 쓰는 축(면적·기일·층 등)이 있다. 못 쓴 조건은 응답의 `unapplied_conditions`에 적히므로, 그게 비어 있지 않으면 결과 범위를 좁게 오인하지 말고 `realty_search_auctions`로 조건을 직접 지정해 다시 조회하라. 각 결과의 id는 이어서 fetch(id)에 그대로 넣으면 상세를 볼 수 있다. |
| fetch | search가 돌려준 id로 경매 사건의 전체 내용을 가져온다. id 형식은 "법원명|사건번호" (예: "서울동부지방법원|2025타경51727"). 사건번호는 법원 간 중복되므로 법원명 없이 조회하면 후보 목록이 돌아올 수 있다. rights(매각물건명세서 요약)가 있으면 법원 공시의 전달로만 인용하고, 없으면(rights_note 참조) 권리관계를 지어내지 말 것 — 권리분석 판단은 이 도구의 데이터 밖이다. |
| realty_search_auctions | 법원경매 물건을 지역·종류·감정가·유찰횟수로 필터링해 조회한다. **법원경매(대법원)만 담고 있다 — 공매(온비드·캠코)는 이 원장에 없다.** 여기서 안 나온다고 "그런 물건 없다"고 답하지 마라. 공매면 온비드에서 확인해야 한다고 말하는 것이 정답이다 (2026-08-17 실측: 공공데이터포털 온비드 서비스는 우리 계정에 활용신청이 안 돼 있다). 감정가(min_price_10k/max_price_10k)는 **만원** 단위다 — 5억은 50000. 유찰이 많을수록 최저입찰가가 감정가 대비 낮아진다(`min_bid_rate`가 그 비율). ⚠️ **이 목록에는 매각기일이 이미 지난 행이 섞여 있다**(백엔드가 기일로 걸러주지 않는다 — 인천 아파트 3억 이하 실측 48건 중 43건이 지난 기일). 지난 기일 행에는 `past_auction_note`가 붙고 응답의 `past_auction_count`가 그 페이지의 건수다. "지금 살 수 있어?"류 질문이면 `exclude_past=true`로 걸러라 — 지난 기일 물건은 매각·취하됐거나 다음 기일이 아직 반영되지 않은 것이라 현재 매물로 인용하면 오답이다. ⚠️ **최저입찰가는 출처를 반드시 확인해라** — 건별 `min_bid_source`가 붙는다. · `court_schedule` — 법원 기일표 정본이다. 그대로 믿어도 된다(활성의 28.8%). · `item_list` — 물건목록값이다. 유찰이 있으면 **저감 한 단계만큼 낡아 실제보다 높을 수 있다**(2026-08-04 실측: 유찰 1회 이상에서 정본과 3%만 일치, 25~43% 과대). 이 경우 `min_bid_note`가 함께 온다. 사용자에게 단정적으로 말하지 말고 그 한계를 전해라. 저감률로 역산해 추정하지 마라 — 재감정으로 최저가가 **오르는** 사건도 있다. 응답의 `min_bid_stale_risk_count`가 그 페이지에서 낡았을 수 있는 건수다. 회차별 정확한 가격은 realty_auction_history의 court_schedule에 있다. 목록에는 요약 필드만 담긴다. 특정 물건의 전체 정보(면적·법원 계·주소 상세 등)는 돌아온 id로 realty_get_auction_case를 호출해 받아라. "유찰 많이 돼 싸진 물건 찾아줘"류 발굴 질문은 realty_auction_alerts가 지름길이다 (min_fail_count로 여기서 걸러도 같은 축 — 결과를 합쳐 세지 마라). |
| realty_get_auction_case | 사건번호로 경매 물건의 상세를 조회한다. 사건번호는 법원 간 유일하지 않다(전국 평균 2.8개 법원에서 중복). court_name을 생략하면 중복 시 오류와 함께 후보 법원 목록이 돌아오니, 그걸 보고 법원을 지정해 다시 호출하라. `rights` = 매각물건명세서 핵심(최선순위 설정·인수되는 권리 원문·위험 플래그·배당요구종기). 이것은 법원 공시의 전달이지 권리분석 판단이 아니다 — 답할 때 rights.disclaimer를 함께 전하고, 등기부·임차인 현황 전체가 아님을 밝혀라. rights가 null이면 명세서 미수집 상태(rights_note에 사유)이므로 권리관계를 절대 지어내지 말 것. ⚠️ `rights.claim_amt_10k`는 **경매신청 채권자의 청구금액**(만원)이다 — 임차인 보증금이 아니다(claim_amt_note 참조). 보증금 액수는 이 데이터에 없다. `min_bid_source`가 item_list면 최저가가 낡았을 수 있다 — 함께 오는 `min_bid_note`를 사용자에게 전하고 단정하지 마라(목록 도구와 같은 경고다). 유찰 이력·기일별 저감·사진은 realty_auction_history가 담당이다. |
| realty_compare_auction_vs_market | 경매 물건의 최저입찰가를 같은 단지 실거래 시세와 대조해 할인율·표면수익률을 낸다. 기본은 **오늘 이후 기일 물건만**이다(지난 기일이 섞여 나오던 결함 수리, 2026-08-08). 주소·단지명 정규화 정확매칭으로 붙이며, 감정가가 기준선의 50~150% 범위인 건만 비교한다 (지분경매·특수물건을 배제하기 위함). 결과의 `signal`은 주의/관심/보통/낮음/판정보류다. **시세 기준선은 같은 단지의 같은 면적대(±10%) 실거래 평균이다**(2026-08-16 수리 — 종전엔 단지 전 평형 혼합 평균이라 대형·소형이 섞인 단지에서 할인율이 통째로 어긋났다). 면적을 맞추지 못하면 `discount_vs_market_pct`는 **null**이고 signal은 '판정보류'다 — 그 자리를 `discount_vs_all_types_pct`(혼합평균 대비)로 대신 채워 말하지 마라. ⚠️ 유찰 물건은 `auction.min_bid_source`를 확인하라 — item_list면 최저가가 낡았을 수 있고(`min_bid_note` 동봉) 그 최저가로 계산된 할인율·수익률도 함께 틀어진다. 이 도구는 다른 도구보다 느리다(출처 조회 포함 2~4초). **이 축의 자리(경매 가격판단 3종 중)**: "이 물건 싸?"는 이게 1차다(시세 자동 조인). 입찰가 책정은 realty_auction_sale_rate(감정가 대비 실제 낙찰가율)와 함께 쓰되, 이 도구의 할인율(시세 대비)과 낙찰가율(감정가 대비)은 **분모가 달라 섞으면 안 된다**. 기준 시세를 손으로 잡을 땐 realty_area_price_bands(수준)/region_price_stats(추이). |
| realty_auction_sale_rate | "이 지역 이 물건은 보통 감정가의 몇 %에 낙찰되나"를 실제 매각결과로 답한다. 입찰가를 정할 때 쓰는 핵심 지표다. `by_fail_count`에 유찰 횟수별 분포가 들어 있어 "2회 유찰된 물건은 보통 몇 %에 낙찰되는가"를 바로 읽을 수 있다. 낙찰가율 = 낙찰가 / 감정가 × 100. 100%를 넘으면 감정가보다 비싸게 팔린 것이다. 표본의 집계 기간은 응답의 `sample_period`(매각기일 min~max)에 있다 — "요즘"류 질문에는 이 범위를 함께 전하라. 기간을 좁히는 파라미터는 백엔드가 지원하지 않는다 (요청해도 조용히 무시됨을 실측했다 — 그래서 노출하지 않는다). usage_name에 '빌라'를 넣으면 표준 분류인 '다세대'로 자동 매핑해 집계한다(원문 '빌라'는 소수 비표준 표기 행만 잡혀 표본이 조용히 왜곡된다 — 응답에 매핑 사실이 공시된다). 연립주택 통계는 usage_name='연립주택'으로 따로 물어라. **평형을 섞지 마라(2026-08-16 축 신설)**: 응답의 `by_area_band`가 전용면적대별 낙찰가율이다. 실측(사건 중복 제거): 아파트 전국 전체 79.2%인데 전용 59㎡ 이하 75.7%, 60~84㎡ 82.2%, 서울은 88.9% vs 97.3%다. 대상 물건의 평형을 알면 `area_band`로 좁히고, 지역 요약 하나로 입찰가를 정하지 마라. '면적 미상' 밴드는 공고에 면적 표기가 없는 사건이지 0이 아니다. **이 축의 자리(경매 가격판단 3종 중)**: 이 %는 **감정가 대비** 통계다. 특정 물건이 실거래 **시세** 대비 싼지는 realty_compare_auction_vs_market이 자동 계산한다 — 분모가 다르니 두 %를 한 문장에 섞지 마라(감정가는 시세와 다른 시점·기준의 값이다). |
| realty_auction_alerts | 유찰이 누적돼 최저입찰가가 크게 떨어진 물건을 찾는다. "○○에서 유찰 많은 물건"은 sido/sigungu로 좁혀라. 유찰이 많다는 건 싸다는 뜻이기도 하지만 권리관계·물건 하자 등 팔리지 않는 이유가 있다는 뜻이기도 하다. 결과를 추천으로 제시하지 말고 확인이 필요한 후보로 제시하라. **같은 축의 다른 문**: realty_search_auctions(min_fail_count)로도 유찰 물건을 거를 수 있다 — 조건 필터·목록이 목적이면 그쪽, 저감 큰 후보 발굴(극단 할인 컷 포함)이면 이쪽. 둘을 합쳐 세지 마라(같은 물건이 양쪽에 나온다). |
| realty_auction_history | 경매 사건의 유찰 이력(기일별 최저가 저감 시계열)·가격 변동 이벤트·물건 사진 URL을 조회한다. "몇 번 유찰됐어? 얼마나 떨어진 거야? 사진 있어?"류 질문의 담당 도구. 사진은 법원 원천에서 기일 후 소멸해 **수집 시점 보존본만 존재**한다(국내 공개 API에 드문 축). court_schedule에서 result='유찰'인 행이 유찰 이력, min_bid_10k의 저감이 가격 흐름이다. result가 null인 행은 미래 기일이거나 미해독 법원 코드(result_code 원문 병기)다 — 의미를 지어내지 말고 그대로 전하라. **최저가(min_bid_10k)가 없는 행에는 `kind_note`가 붙는다 — 그 행은 입찰 기일이 아니다**(원천 전수에서 최저가·유찰 표기는 kind_code=01에만 붙는다). fail_count가 기일표의 유찰 행 수와 다르면 `fail_count_note`가 그 이유를 댄다 (출처가 목록 원천 vs 기일표로 갈린다) — 둘을 합쳐 세지 마라. tracking·price_events는 2026-07-23 이후 일일 스냅샷 비교분이라 비어 있을 수 있다(비어 있음 ≠ 변동 없음, court_schedule이 정본). ⚠️ court_schedule이 빈 물건(기일표 미수집)의 `current_min_bid_10k`는 건별 `min_bid_source`를 봐야 한다 — item_list면 낡았을 수 있어 min_bid_note가 함께 온다. 그 경우 현재 최저가를 단정하지 말고 note를 사용자에게 전하라(목록·상세와 같은 경고). |
| realty_region_price_stats | 지역의 아파트 실거래 시세 **추이**(월별)를 조회한다. 경매가가 싼지 판단하는 기준선이 된다. **이 축의 자리(시세 도구 3종 중)**: 월별 흐름·방향이 필요할 때 이걸 쓴다. 지역의 가격 **수준**을 인용할 거면 realty_area_price_bands를 쓰라 — 이 축은 이상치(지분· 증여성 직거래)가 필터되지 않아 평균이 눌리며, **두 도구 값이 갈리면 bands 쪽이 정상 매매에 가깝다**(세종 소형 실측 4,400만원 차). 단지가 특정된 질문("○○아파트 얼마야")은 realty_search_complexes가 기본이다 — 지역 평균은 단지 간 편차(같은 동 같은 평형에서 단지 평균 24% 차)를 뭉갠다. region은 시군구명(예: '강남구') 또는 **법정동까지**(예: '강남구 대치동', '세종특별자치시 나성동') — 세종처럼 시군구가 하나인 도시는 동 단위로 좁혀야 신도심· 구도심이 섞이지 않는다(2026-08-08, 8/7 테스터 제안 수용). 동명 지역이 여럿이면 시도를 앞에 붙여라 — 안 붙이면 거래량 최다 지역 기준으로 답하고 region_candidates로 나머지 후보를 실토한다(그 목록을 사용자에게 전달할 것). metric: price(매매) | rental(전월세). rental도 **months 창 월별 추이**(monthly_trend: 전세 평균·중앙, 월세 보증금·월세, 건수 분리)를 준다 — "전세 떨어지는 중이야?", 역전세 판단용(입주 물량은 realty_move_in_supply와 조합). 상단 필드는 최신월 스냅샷. 평수는 둘 중 사용자가 쓴 쪽에만 넣는다: - pyeong_supply: 분양평수(공급면적). 흔히 말하는 "34평"이 이것이다 — 내부에서 ×0.745로 환산한다. - pyeong_exclusive: 전용면적 기준 실평수. 이 데이터의 원래 기준이다. |
| realty_region_trend_basket | 지역 가격 추이를 **양쪽 창에 모두 거래가 있는 동일 단지들로만** 계산한다. **왜 필요한가**: 구 월평균 추이는 '가격이 변한 것'과 '팔린 단지가 바뀐 것'을 구분하지 못한다. 표본이 얇으면 후자가 지배하는데, 그걸 시세 변동으로 읽으면 오답이다 (2026-08-14 실사고: 용산 33평 월 1~7건 표본으로 '전년 대비 −9.6%'를 만들었다). 이 도구는 **naive(전체 평균 변화)와 basket(동일 단지 변화)을 나란히** 주고 그 차이를 `composition_effect`로 보여준다 — 차이가 크면 그 지역 평균 추이는 구성 잡음이다. 단지별 값은 **평당가**라 단지 안의 평형 구성 변화도 흡수한다. 한계를 반드시 함께 전하라: 바스켓이 얇으면(단지 수가 적으면) 이 값도 못 믿는다. 취소·직거래는 제외했고, 단지 내 동·층 구성 변화까지는 보정하지 못한다. |
| realty_search_complexes | 아파트 단지를 이름·지역으로 검색하고 **평형별 실거래 시세**를 함께 돌려준다. "○○아파트 34평 얼마야"류 단지 질문의 1차 도구다. query·region 중 하나는 필수. **이 축의 자리(시세 도구 3종 중)**: 단지가 특정되면 **이게 기본**이다. 지역 평균 도구들(realty_region_price_stats·realty_area_price_bands)은 단지 간 편차를 뭉개므로 단지 질문에 쓰지 마라 — 같은 동 같은 평형에서 단지 평균이 24% 벌어진 실측이 있다 (동 평균 3.96억으로 답했다가 대장 단지 호가와 1억 어긋난 사고). 반대로 지역 전체의 수준·추이 질문이면 저 둘로 가라. prices_by_area가 평형별 시세다 — pyeong_exclusive(전용평)와 pyeong_supply_est(분양평 어림)를 병기하므로, 사용자가 말한 "34평"(보통 분양평)은 pyeong_supply_est로 맞춰 답하라. 단지 수준 avg_price는 전 평형이 섞인 평균이니 평수 질문에 쓰지 말 것. 층별(저층/고층/RR) 시세·프리미엄 질문은 realty_complex_pyeong_price로 — 거기 층 밴드별 집계(price_by_floor_band)가 있다(이 도구엔 층 축이 없다). 응답의 complex_key는 realty_complex_rent_by_pyeong·[유료] 단지 도구들에 그대로 넣는 키다. |
| realty_complex_pyeong_price | 특정 단지·특정 평형의 **최근 6개월 매매 실거래**를 건별(계약일·층·가격)로 조회한다. 평형별 시세 요약만 필요하면 realty_search_complexes의 prices_by_area로 충분하다. 응답에는 **층 밴드별 시세 집계 `price_by_floor_band`**(저층~초고층 밴드별 평균가·건수· 최저 밴드 대비 프리미엄 %)가 함께 온다 — "저층 사면 손해야?", "고층 프리미엄 얼마야?"류 **층별 시세 질문은 이 도구가 담당**이다(층 밴드 축은 다른 도구에 없다). transactions는 **계약일 내림차순**이고, average_price·median_price는 그 정렬 기준 최근 5건(summary_basis에 그 5건을 그대로 싣는다)이다. 이상 거래는 지우지 않고 `outlier=true`로 표시만 하며(판정 근거는 outliers.method), 층 밴드에는 이상치 제외 값을 `*_ex_outliers`로 병기한다 — **밴드 프리미엄이 몇 건의 산물인지 확인하고 말하라.** **이름이 더 긴 이웃 단지는 분리해서 뺀다**(0.58.0) — 백엔드가 단지를 이름 부분일치로 찾아 '○○센트레빌' 조회에 '○○센트레빌Ⅱ'가 섞여 들던 자리다. 무엇을 뺐는지·못 가른 면적이 무엇인지는 `meta.complex_isolation`에 그대로 실린다. **못 가른 것은 빼지 않고 못 갈랐다고 적는다** — 그 평형 수치는 단정하지 말고 그 사실을 함께 전하라. 평수는 pyeong_supply(분양)·pyeong_exclusive(전용) 중 사용자가 쓴 쪽에 넣어라 — 하나는 필수. 이 도구는 매매 전용이다 — 전월세는 realty_complex_rent_by_pyeong을 쓴다. |
| realty_complex_rent_by_pyeong | 단지의 평형별 전세 보증금·월세 중앙값을 조회한다. 전세가율(전세÷매매) 계산의 전세 축이다. complex_key·complex_name 중 하나는 필수. 부분일치는 동명 단지가 섞일 수 있으니 가능하면 realty_search_complexes로 complex_key를 먼저 특정하라. 행 키 supply_pyeong은 **분양평**(전용㎡ ÷ 3.305 ÷ 0.745 반올림) 기준이다. |
| realty_area_price_bands | 지역의 매매 시세를 평형대 4구간(소형/중소형/중형/대형, 전용면적 기준)으로 조회한다. "○○구에서 무슨 평수대가 얼마쯤 해?"류 질문용 — 특정 단지는 realty_search_complexes를 쓰라. **이 축의 자리(시세 도구 3종 중)**: 지역의 가격 **수준** 비교는 이게 기본값이다. 이상치 필터(P75의 50% 미만 제외)가 적용돼 realty_region_price_stats의 미필터 평균과 값이 다르며, **수준이 갈리면 이쪽을 우선하라**. 월별 **추이**가 필요하면 region_price_stats, 단지가 특정되면 search_complexes. 구간 라벨의 평수는 **전용평**이다. 사용자의 분양평 감각으로는 소형<60㎡≈분양 24평 미만, 중소형 60~85㎡≈분양 24~34평, 중형 85~115㎡≈분양 34~47평, 대형 115㎡+≈분양 47평 이상. |
| realty_nonapt_prices | 빌라(다세대·연립)·오피스텔·단독주택·토지의 실거래 **매매가**를 조회한다 — 아파트 밖 질문의 1차 도구. 응답 = 최근 거래(recent) + 집계(stats: 표본 수·가격·상위 구성). **매매 데이터만 있다** — 전월세를 물으면 이 축엔 데이터가 없다고 답하라(추정 금지). 면적 기준: villa/officetel은 전용면적(area_m2·area_pyeong), house는 대지(land_*)와 건물(building_*) 분리, land는 계약면적·지목(land_category)·용도지역(zoning)이 온다. land의 share_type='지분' 행은 필지 일부 거래라 면적당 가격 비교에 쓰지 말 것(집계는 지분·해제 제외 — 응답 note 참조). 아파트는 realty_region_price_stats·search_complexes 담당. |
| realty_location_scores | 단지의 학군(v5)·교통(지하철·버스) 점수를 조회한다 — "이 아파트 학군 어때? 역세권이야?" 담당. complex_key/complex_name이면 단지 점수, region만 주면 지역 집계+축별 상위 5 단지. 학군 점수는 학원가 강도+군집 보정의 **스크리닝 지표**다 — 학원가 데이터가 시 단위라 도심 외곽 면/읍이 다소 높게 나올 수 있고, 학교 배정·수준 판단이 아니다(그렇게 팔지 말 것). subway_distance_m는 최근접역 직선거리(도보 거리 아님). 점수 미산정 단지는 not_found가 정직한 답이다 — 지어내지 말고 realty_search_complexes로 단지 실존부터 확인하라. 돌려주는 complex_key는 공백 1칸으로 정규화돼 있어 다른 도구에 그대로 넣을 수 있다. "역세권이야?"는 [유료] realty_poi_nearby와 겹친다 — 점수·스크리닝은 이쪽(무료), 주변 시설의 실제 목록·거리가 필요하면 poi_nearby. |
| realty_presale | 아파트 청약(분양) 공고를 조회한다 — 분양가·청약 접수 일정·당첨자 발표일·입주 예정·위치. "다음 달 청약 넣을 만한 데 있어?", "○○에 분양하는 아파트 있어?"류 질문용. "넣을 만해?/적정가야?"까지 물으면 이어서 realty_presale_vs_market으로 분양가를 실거래 시세와 대조하라(응답의 house_manage_no가 그 도구의 입력이다). price_min/price_max는 주택형별 분양 최고가의 최소·최대(만원)다 — 한 공고에 여러 주택형(house_type_count)이 있다. 청약 자격·순위 요건은 이 데이터에 없다(지어내지 말 것). 경쟁률·당첨 가점 커트라인은 realty_subscription_odds 도구에 있다. 무순위(줍줍)·취소재공급이 돈 공고에는 `unsold_history`(회차·세대)가 붙는다 — 접수 경쟁률이 높아도 무순위가 돌았다면 "당첨 후 계약이 안 된" 시장이다. 없다고 이력이 없던 건 아니다(meta.unsold_note의 연결 한계 참조). 같은 지역 공고들의 분양가가 올라온 추이("기다림의 비용")는 realty_presale_price_trend. 규제지역 플래그: speculation_zone(투기과열지구)·adjustment_area(조정대상지역)· price_cap_applied(분양가상한제), Y/N — **모집공고일(announced_on) 기준 스냅샷**이라 이후 지정·해제가 바뀔 수 있다. "현재 규제지역"으로 단정하지 말고 공고일과 함께 전하라. 전매제한·거주의무 기간은 이 데이터에 없다(플래그에서 유추 금지) — realty_notice_facts가 공고 원문 값을 쪽 번호와 함께 준다. |
| realty_presale_price_trend | 같은 지역 분양 공고들의 **연도별 평당 분양가 추이**를 낸다 — "지금 넣을까, 기다릴까"에서 **기다림의 비용**(다음 공고가 얼마에 나올까)을 정량화하는 축이다. 재당첨 제한이 걸린 결정(분양가상한제 10년 등)에서 특히 판단을 가른다. 기준(답변에 그대로 전달): **공급면적(분양평) 평당 최고 분양가**(만원/평), 발코니 확장·유상옵션 미포함. 연도별 주택형 믹스가 다르면 중앙값이 흔들린다 — announcements가 1~2건인 연도는 추이로 읽지 말고, 평형대를 고정하려면 exclusive_m2_min/max(국평=80~85)를 써라. 이 축의 자리: 개별 공고의 적정성(분양가 vs 실거래)은 realty_presale_vs_market, 실거래 가격 추이는 realty_region_price_stats — 이 도구는 **분양가끼리의 시계열**이다. |
| realty_presale_vs_market | 청약(분양) 공고의 분양가가 주변 실거래 시세 대비 싼지/비싼지를 주택형별로 계산한다. "이 청약 넣을 만해?", "분양가 적정해?"류 질문의 정량 근거 — 웹검색으로는 못 하는 분양가×실거래 조인 계산이 이 도구의 존재 이유다. 공고 특정: house_manage_no가 없으면 region+keyword로 검색하고, 여러 건이면 후보 목록을 돌려주니 하나를 골라 다시 호출하라(추측해서 고르지 않는다). 한계(지어내지 말 것): 실거래 평균은 해당 지역 全단지(구축 포함) 기준이라 신축 프리미엄이 반영되지 않았다. 청약 경쟁률·당첨 가점 커트라인은 이 도구가 아니라 realty_subscription_odds에 있다("넣을 만해?"엔 둘을 같이 써라). 기준선 우선순위: market_avg는 **이상치 미필터** 지역 평균이다 — 결론에는 comparison_by_size[].comparable_complexes(반경 내 급 맞는 단지 실거래)를 우선하고, 지역 수준 교차확인은 realty_area_price_bands(이상치 필터·중앙값)로 하라. 이 도구는 **현재 공고 1건의 적정성**이다 — 같은 지역 공고들의 분양가 시계열 ("기다릴수록 얼마씩 올랐나")은 realty_presale_price_trend. |
| realty_notice_facts | 입주자모집공고 **원문**에서 추출·검증한 팩트시트 — 전매제한·재당첨제한·거주의무· 거주요건, 청약 일정, 층별 분양가표(대지비·건축비·회차별 납부액), 특별공급 배정, 발코니 확장·유상옵션 가격, 중도금 회차 일정, 예비입주자 규칙. 전매제한 기간, 재당첨 제한, 거주의무, 특별공급 자격·배정, 층/타입별 분양가, 발코니 확장비·유상옵션 금액, 중도금 회차와 납부일 — 이 값들을 묻는 질문이 이 도구의 자리다(추정하거나 웹에서 찾을 필요 없이 공고 원문 값이 나온다). 모든 값에 공고 쪽 번호(`p`)가 붙으니 답변에 notice_version(공고 판본)과 쪽 번호를 함께 제시하라. 팩트시트 미추출 공고는 원문 앞쪽(단지 주요정보 표) 텍스트를 unverified_source_text로 준다 — 수치 인용 시 "공고 원문 기준·미검증"을 명시하라. 상세 조항 전문(특공 소득기준, 부적격 처리 등)은 realty_notice_text로 원문 쪽을 직접 읽어라. 여기 없는 값은 지어내지 말 것. |
| realty_notice_text | 입주자모집공고문 원문을 쪽 단위로 읽는다 — 팩트시트에 없는 세부(특별공급 소득·자산 기준, 부적격 처리, 계약 유의사항, 옵션 품목 상세)는 이 도구로 원문을 직접 확인하라. 표가 있는 쪽은 pdftotext 특성상 정렬이 깨질 수 있다 — 열 해석이 애매하면 단정하지 말 것. 여러 낱말은 AND로 묶인다('가점제 추첨제'→둘 다 있는 쪽). 0쪽이면 막다르지 않고 낱말별 히트 쪽과 부분일치 상위 쪽을 함께 돌려주니 그걸로 좁혀라(match='any'로 넓힐 수도 있다). **쪽을 모를 땐 pages_only=true로 먼저 훑어라** — 전문은 한 번에 수만 자다. 전문 응답은 최대 6쪽이고, meta.matching_pages에 일치 쪽 전체 목록이 늘 들어 있다. |
| realty_policy_rules | 단지에 종속되지 않는 **일반 규범**을 근거 조문·확인일과 함께 준다 — 취득세율표, 규제지역 **현재** 지정 현황, 주담대 규제 원표, 개인회생×대출, 주택임대차 갱신(갱신권· 5% 상한·매수인 실거주 거절), 양도세(세율·필요경비·중과·개편 계류), 청약통장·가점 배점표, 정비구역 요건·조합원 지위양도, 재개발 분양자격 갈림길(서울). "취득세 얼마야?", "갱신권 썼는데 집주인이 팔면?", "지금 팔면 중과야?"류 질문의 자리다. 특정 조건의 상한 **계산**은 realty_loan_limit, 가점 점수 계산은 realty_subscription_score, 비례율·분담금 계산은 realty_redevelopment_burden, 양도세 시나리오 계산은 realty_capital_gains_tax, 조합원 지위양도 가능 판정은 realty_member_transfer_check — 이 표가 그 계산기들의 진실원이다. 클라이언트에 세율을 하드코딩하지 마라 — "85㎡ 이하 1.1%"는 6억 이하일 때만 맞고, 9억 초과에 그대로 쓰면 수천만원 틀린다(실측: 16.9억 84타입에서 3,700만원 차). **판정은 하지 않는다**: "이 사람이 1주택인가"는 분양권·상속지분·일시적 2주택 특례가 얽힌 사실판단이다 — 표의 applicable_if·exceptions를 보고 사용자에게 확인 질문을 던져라. 개별 공고의 규제 플래그(공고일 스냅샷)는 realty_presale, 공고 원문 값은 realty_notice_facts, 이 표를 써서 총 소요자금까지 계산하는 건 realty_presale_cost. 응답의 uncertainties(확인 못 한 것)와 disclaimer를 함께 전하라. |
| realty_loan_eligibility | **"내 조건이면 어떤 대출을 쓸 수 있나"**를 상품별로 나란히 낸다 — 사용자가 어느 규칙 토픽을 물어야 할지 몰라도 되게 하는 라우터다. 이 도구가 존재하는 이유: 대출 규칙이 상품별 토픽 7곳에 흩어져 있어서, 지금까지는 **호출자가 어느 토픽을 물어야 할지 알아야** 했다(2026-08-14). 용도·지역·주택수만 주면 **쓸 수 있는 상품과 못 쓰는 이유**를 함께 낸다. 경계: ① **주택 수·생애최초·신혼은 선언**이다(서버가 사실판정하지 않는다) ② **한도 금액을 계산하는 건 구입 목적의 은행권뿐**이고 그건 realty_loan_limit이 한다 — 이 도구는 **자격 대조와 라우팅**이다 ③ 전세·중도금은 보증기관·사업장이 지배해 **한도를 계산하지 않는다**, 전세반환은 **경과조치 해당 여부가 서류로 보는 사실판단**이라 계산하지 않는다 ④ 규칙의 근거·불확실성은 각 상품 토픽(응답의 `topic`)에 있으니 함께 읽어라. |
| realty_loan_limit | 선언된 조건(지역·시가·차주 유형·소득)에 대해 **주담대 규제 상한**을 결정론으로 계산한다 — LTV 상한액, 수도권·규제지역 가액구간 한도(6/4/2억), 만기 상한(30년), 스트레스 DSR 반영 최대 대출액과 **어느 규제가 최종 상한인지**(binding). "10억 집, 생애최초, 연소득 8천이면 얼마까지 나와?"류 질문의 자리다. 경계를 지켜라: ① 차주 유형은 **선언**이다 — 생애최초·주택 수 해당 여부는 사실판단이라 서버가 판정하지 않는다(응답 inputs_declared가 그 선언을 에코한다). ② 결과는 규제 상한이지 **대출 승인·확약이 아니다** — 은행 심사(소득 인정·방공제·신용도)로 더 줄 수 있다. ③ **DSR 상한은 금리유형(rate_type)에 따라 크게 갈린다** — 기본값 '변동'은 스트레스 금리 전액 가산이라 가장 작은 값이다. 사용자가 상품을 안 정한 상태면 `dsr.by_rate_type` 비교표를 함께 전하고 "N억까지만 된다"고 단정하지 마라. ③ 규칙 원표·근거는 realty_policy_rules(topic=loan_rules), 규제지역 지정 현황은 topic=regulated_area, 생애최초 취득세 감면의 세율표 본체는 topic=acquisition_tax. 특정 분양 공고에 대한 시점별(계약금·중도금·잔금) 자금 판정은 realty_presale_funding_plan. 응답의 uncertainties·disclaimer를 사용자에게 함께 전하라. |
| realty_subscription_score | 민영주택 일반공급 가점제 점수(만점 84)를 **선언된 값**에 배점표를 적용해 계산한다 — 무주택기간 32 + 부양가족 35 + 통장 가입기간 17. "내 청약 가점 몇 점이야?"의 자리다. 경계를 지켜라: ① 세 입력 전부 **선언**이다 — 기산점·부양가족 인정은 등본·혼인관계 사실판단이라 서버가 판정하지 않고, 응답 traps(오기입=부적격 당첨 취소 사유)를 반드시 함께 전하라. ② 산출 점수는 realty_subscription_odds의 my_score로 넘겨 당첨 커트라인과 비교하는 것이 다음 수다. ③ 배점표 원문·기산 규칙은 realty_policy_rules(topic=subscription_account)가 진실원이다. |
| realty_redevelopment_burden | 재개발·재건축 조합원의 권리가액과 추가 분담금(또는 환급금)을 결정론으로 계산한다 — 권리가액 = 종전자산 감정평가액 × 비례율, 분담금 = 조합원분양가 − 권리가액. "감정평가 3억에 비례율 98%면 얼마 더 내?"의 자리다. 경계를 지켜라: ① 입력 전부 **선언**이다 — 감정평가액·비례율은 조합 자료에서 가져와야 하고 서버는 검증하지 않는다. ② 이 산식은 법정 산식이 아니라 통용 실무 산식이며, 비례율은 관리처분인가 전엔 추정치라 준공까지 계속 변한다 — 응답의 sensitivity(비례율 ±10%p 스윙)와 disclosures를 반드시 함께 전하라. ③ 산식 출처·변동 함정의 원문은 realty_policy_rules(topic=redevelopment_rules)의 proportion_formula가 진실원이다. 분양자격 자체가 불확실하면 topic=redevelopment_entitlement(갈림길 지도)부터. |
| realty_capital_gains_tax | 선언된 양도가·취득가·필요경비·보유기간에 **양도소득세 세율표를 결정론으로 적용**한다 — 기본·단기·분양권 세율, 장특공제 표1, 기본공제, 다주택 중과(선언), 지방소득세 10%. 두 번째 자산을 주면 **같은 해 합산 vs 연도분산 vs 차손통산**을 비교해 어느 쪽이 유리한지 산출한다. "지금 팔면 양도세 얼마?"·"두 채를 올해 같이 팔까 나눠 팔까?"의 자리다. 경계를 지켜라: ① 입력 전부 **선언**이다 — 보유기간 기산·주택 수·조정대상지역 해당은 사실판단이라 서버가 판정하지 않는다. ② **1세대1주택 비과세·12억 초과 고가주택 안분· 감면 특례는 계산하지 않는다**(not_curated) — 비과세 가능성이 있으면 이 계산기를 쓰지 말고 홈택스 모의계산·세무사를 안내하라. 이 결과는 양도 전액이 과세된다는 전제다. ③ 세율표·필요경비 분류·중과 경과조치의 원문·근거 조문은 realty_policy_rules(topic=capital_gains_tax)가 진실원이고, 조정대상지역 지정 현황은 topic=regulated_area다. 응답의 traps·pending_legislation·disclaimer를 함께 전하라. |
| realty_member_transfer_check | 투기과열지구에서 재건축·재개발 물건을 **지금 사면 조합원 지위를 승계받을 수 있는지**를 도시정비법 39조 2항으로 결정론 판정한다 — 투기과열지구 여부(regulated_area) × 사업 유형 × 진행 단계(서울은 정보몽땅 목록에서 자동 결합). "한남3구역 지금 사도 입주권 나와?"의 자리다. 경계를 지켜라: ① 판정은 **원칙 제한 여부**까지다 — 예외(양도인의 근무·질병·상속·해외이주, 10년 소유+5년 거주 등)는 양도인 사정의 사실판단이라 갈림길로만 주고, **사업지연 예외 3종은 인가일·착공일 데이터가 없어 판정 불가를 실토한다**. ② 재개발엔 부칙 함정(2018-01-25 이전 사업시행인가 신청 구역은 제한 밖)이 있어 선언 없이는 단정하지 않는다. ③ 제한이 없어도 **토지거래허가구역은 별개 제도**다(서울 전역 지정 중 — 실거주 의무 등). ④ 조문 원문·예외 전체 목록은 realty_policy_rules(topic=redevelopment_rules), 투기과열 지정 현황은 topic=regulated_area, 분양자격 자체가 불확실하면 topic=redevelopment_entitlement, 사업장 목록·단계 열람은 realty_redevelopment. 응답의 exceptions·disclosures를 함께 전하라. |
| realty_presale_cost | 공고 원문(팩트시트) 기반 **결정론 계산**: 층별 분양가 + 발코니 확장비 + 회차별 중도금 이자(일할) + 취득세(표준세율) = 층별 총 소요자금. "이 분양 실제로 얼마 드나"의 자리다 — 클라이언트마다 손계산하면 입주일 가정 하나로 백만원대가 갈린다(실측 124만원). 경계(신고 #43의 선 그대로): 여기까지가 "공고+세법에서 결정론적으로 나오는 것"이다. 월 상환액·매수 vs 전세 손익분기는 개인 파라미터가 지배하므로 계산하지 않는다 — 전세 시세는 realty_complex_rent_by_pyeong으로 받아 클라이언트가 개인 가정을 얹어라. 자기자금·차주 조건을 **선언**받아 필요 대출액과 규제 상한 통과까지 판정하는 건 realty_presale_funding_plan이 한다. 세율표 자체는 realty_policy_rules가 근거 조문과 함께 준다(중과·감면 등 이 계산이 가정으로 제친 것들이 거기 있다 — assumptions를 반드시 사용자에게 전하라). |
| realty_presale_funding_plan | 공고 하나에 대해 **"내 자기자금으로 닫히는가"**를 결정론으로 판정한다 — 시점별 (계약금→중도금 회차→잔금) 필요액, 잔금 시점의 필요 대출액, 그 대출이 규제 상한 (LTV·가액구간 한도·DSR — realty_loan_limit과 같은 엔진) 안에 드는지, 부족하면 얼마가 부족한지. "이 분양 당첨되면 진행 가능해?"류 질문의 자리다. 경계: ① 차주 유형·소득은 **선언**이다(서버는 판정하지 않는다). ② 판정은 **현행 규제·현재 자기자금 기준**이다 — 잔금 시점(수년 뒤)의 규제·금리·저축 증가는 반영하지 않으며 그 사실을 assumptions에 싣는다. ③ 승인·확약이 아니다. ④ 저축 계획·갈아타기 전략·매수 적정성 판단은 이 도구 밖이다 — 시세 비교는 realty_presale_vs_market, 규칙 원표는 realty_policy_rules. 응답의 assumptions·uncertainties를 함께 전하라. ⑤ 입주시 시세·전세보증금도 **선언**이다 — 선언하면 각각 시세 기준 잔금대출 시나리오 (scenario_at_expected_price)와 전세 잔금 시나리오(jeonse_scenario — 거주의무·대출 병행 불가 게이트)를 병렬로 준다. 서버는 미래 시세·전세가를 추정하지 않는다. |
| realty_move_in_supply | 지역의 입주 예정 물량을 연월별로 집계한다 — "○○ 입주장 리스크 있어?", "내년에 입주 물량 얼마나 쏟아져?"류 질문용. 입주 몰림은 전세가 하락·역전세 압력 신호다. **하한 집계다** — 청약홈 공고(2020-02 이후) 기반이라 공고 없는 공급(민간임대·후분양 일부)이 빠지고, 무엇보다 **공고는 입주 평균 30개월 전에 난다**(전국 실측). 그래서 조회 구간이 오늘+30개월을 넘어가면 그 구간 입주분은 아직 공고조차 안 된 것이 대부분이다. 실사고: 세종 2028~2030 조회에 676세대가 나오자 "입주장 리스크 없음"으로 답했으나 실제 계획은 그 6배였다. 응답의 **`reading` 문장을 결론에 그대로 반영하라** — `interpretation`이 `lower_bound`면 "물량 없음/적음"이라 말하지 말고 "공고된 것만 N세대(하한)"라고 답해야 한다. `coverage.region_recent_annual_rate`(그 지역 최근 공고 실적)와 비교해 값이 크게 낮으면 공급이 끊긴 게 아니라 공고 시차다. **그때는 realty_supply_pipeline을 이어서 불러라** — 사업승인은 났지만 아직 공고 안 난 물량이 거기 있다(세종 실측: 이 도구 676세대 → 파이프라인 3,483세대). 단 **두 축의 세대수를 더하지 마라**(이중계상) — 공고가 난 단지는 승인 목록에도 남아 양쪽에 다 잡힌다. 파이프라인 쪽 값이 상위 집합에 가깝다. |
| realty_supply_pipeline | **아직 분양 공고가 안 난** 예정 공급을 사업계획승인 기준으로 본다 — "지금 넣을까, 다음 걸 기다릴까", "이 동네 앞으로 입주 폭탄 있나"류 질문의 자리. 청약홈(realty_presale·realty_move_in_supply)은 **모집공고일에야** 등록되므로 공고 전 물량이 구조적으로 안 보인다. 이 도구의 원천은 주택법 **사업계획승인**이라 공고 2~3년 전 단계가 잡힌다: 사업명·세대수·승인일·착공예정일·사용검사 예정일(=예상 입주). 재당첨 제한(분양가상한제 단지는 10년)·전매제한이 걸린 결정에서는 **대안 정보가 없으면 "지금 아니면 끝"이라는 잘못된 압박**이 생긴다 — 청약 상담이면 이 도구를 함께 불러라. 두 축을 **더하지 마라**(이중계상) — 이미 공고가 난 단지도 승인 목록에 남아 있다. **이미 모집공고가 난 사업**은 블록 표기가 겹치면 행에 `announced_notice`가 붙는다 — 그 행은 '다음 분양'이 아니라 realty_presale·realty_subscription_odds의 영역이다. 표식이 없어도 기공고일 수 있다(meta.announced_cross_check 참조). 승인 전(지구계획·공모) 물량은 여기에도 없으니 이 값도 하한이다(`interpretation`). **층수 축(2026-08-20 신설)**: `max_floor`·`min_floor`는 사업계획승인 시점의 **계획** 층수다(변경승인으로 움직인다 — 준공 확정층수가 아니고, 출처는 `max_floor_source`). `min_floor`는 그 사업의 공동주택 주건축물 중 가장 낮은 동이라 **실제로 그 층수의 동이 있다**는 뜻이고, 저층 선호(고소공포)·고층 조망 상담의 근거가 된다. 값이 비면 **'저층'으로 읽지 말고** 행의 `max_floor_absent_reason`을 그대로 전하라(아직 동 등록 전이거나 3차 수집 전이다). `business_body`(사업주체·시공사)는 미준공 구간에서 **구조적으로 빈다** — 준공 후 등록되는 원장에만 있어 3차로도 안 메워진다. |
| realty_subscription_odds | 청약 경쟁률과 **실제 당첨 가점 커트라인**을 낸다 — "나 가점 52점인데 당첨될까?"의 정량 근거. 가점 자체를 모르는 사용자는 realty_subscription_score(무주택·부양가족·가입기간 선언 → 배점표 적용)로 먼저 점수를 만들어 my_score로 넘겨라. **비어 있으면 왜 비었는지부터 읽어라(2026-08-20 축 신설).** 이 축의 원천은 주 1회 수집 이라 "아직 공표가 안 됐다"와 "공표는 됐는데 우리가 아직 안 걷었다"가 똑같이 빈 배열로 보인다 — 실측(공고 2026000323)에서 청약홈엔 1순위 경쟁률 4.33·12.90·15.55가 이미 공표됐는데 우리 응답은 by_house_type=[]였다. `freshness_verdict.verdict`가 그 둘을 가른다: `not_yet_published`(접수가 안 끝났다 — 없는 게 정상) · `not_yet_collected` (**우리 미수집이다. 절대 '경쟁률이 없다'고 답하지 말고 check_url로 안내하라**) · `unknown`(못 가른다) · `not_published` · `collected`. 대조 재료인 접수 종료일은 announcement.rcept_endde·freshness_verdict.apply_end에 있다. result_status의 뜻은 응답의 `result_status_legend`가 정본이다(`special_only`는 일반공급 결과가 아직인데 특별공급 신청현황만 온 상태 — '결과 없음'이 아니다). 두 가지 경로를 자동으로 고른다: 1) 결과가 발표된 공고 → 그 단지의 주택형별 1순위 해당지역 경쟁률·당첨 최저/평균/최고 가점. 2) 아직 접수 전이라 결과가 없는 단지 → 같은 지역 최근 공고들의 실제 커트라인 분포 (regional_benchmark). **다른 단지의 실적이다** — 질의 단지의 예상 커트라인이 아니라는 점을 반드시 함께 말하라. 분위수를 인용하기 전에 distinct_complex_count·samples_by_complex를 먼저 보라 — 단지가 1~2곳이면 그건 지역 분포가 아니라 한 단지 안의 주택형 편차다 (warning_sample_concentration이 붙는다). **시도 하나로 답하지 마라(2026-08-16 축 신설).** 아파트는 시군구·평형·시기·가격대로 갈린다 — 실측(서울 최근 2년): 은평 전용 59㎡ 커트라인 중앙 45점 vs 강남 59㎡ 74점(29점 차), 연도별 중앙값 2022년 50점 → 2025년 69점, 2025년 분기별 69/66.5/56/70. 그래서 "내 가점으로 어디까지 되나"류에는 breakdown='sigungu'(+ area_band, 예산이 있으면 budget_max_10k)를, "언제가 쌌나"류에는 breakdown='quarter'|'year'를 써라. 사용자가 예산을 말했는데 budget_max_10k를 안 넣으면 **살 수 없는 단지가 섞인 답**이 나간다. 지어내지 말 것: 이 도구는 당첨 확률을 계산하지 않는다(가점 동점자 처리·특별공급 비율· 추첨제 물량은 데이터에 없다). 낼 수 있는 건 "과거 커트라인 대비 내 점수의 위치"까지다. 커트라인이 null인 칸은 0점이 아니라 당첨자 없음/가점제 미적용이다(score_status 참조). 분양가가 적정한지까지 물으면 realty_presale_vs_market을 이어서 쓰라. |
| realty_region_rankings | 지역(시군구) 순위를 조회한다 — "제일 비싼 동네 어디야?", "요즘 많이 오른 지역은?", "전세가율 높은 곳은?"류 질문용. price=거래량 가중 전용 평당가(최소 5건, 최신월은 집계 진행 중일 수 있음) · growth=전용 60-85㎡ 고정 YoY(평형 구성 왜곡 제거) · transit/school=단지 점수의 시군구 평균. **investment는 원천 정지·기준월 혼재로 보류 중**(호출 시 대안 안내 — 전세가율은 realty_rental_yield). 응답 methodology의 산식·단위를 답변에 반영하라. 비교 대상이 두어 곳으로 정해진 질문("A vs B 어디가 나아?")은 [유료] realty_compare_regions가 시세·추이를 나란히 준다 — 이 도구는 순위·탐색용이다. |
| realty_macro_indicators | 한국 기준금리·KOSPI·M2, 미 연준금리·S&P500 등 거시 지표의 월별 시계열을 조회한다. "금리가 집값에 어떤 영향?"류 배경 분석용. ⚠️ 계열마다 신선도가 다르다 — meta.series_as_of가 계열별 실제 최신 시점이다(예: 미 연준금리·S&P·코인은 최신인데 한국 기준금리·KOSPI는 2024-12 정지, ECOS 재수집 대기). 밀린 계열을 "지금 금리"로 인용하지 말고 반드시 그 계열의 시점을 함께 밝혀라. |
| realty_demographics | 지역 인구통계를 조회한다 — "인구 줄고 있어?", "1인 가구 비율은?", "고령화 심해?", "순유입 되는 동네야?"류 질문용. 응답 meta.data_as_of가 실제 최신 시점이다 — warning이 있으면 그대로 사용자에게 전달하고, 밀린 수치를 "지금 인구"로 단정하지 말 것. 연간 계열(households·age)은 기준연도를 밝혀라. households만 동명 시군구(중구·서구 등)를 거절한다(원천 단명 수집 결함) — 그 경우 population·migration(정식 명칭 수집)으로 대신 조회하라. |
| realty_predict_price | [유료] 단지의 **다음 달** 평균 매매가를 평형대별로 예측한다 (XGBoost v4_clean). complex_name 또는 complex_key 중 하나는 필수. 동명 단지가 여러 지역에 있으면 먼저 realty_complex_report로 단지를 특정한 뒤 complex_key로 호출하라. 예측 지평은 1개월(익월) 고정 — 그 너머는 모델이 검증되지 않아 제공하지 않는다. 커버리지 밖은 정직하게 거절된다(지어내지 않음) — ①최근 3개월 내 월 거래 3건 미만이거나 ②과거 거래 이력이 없는 신축 첫 달(모델이 지역·평형 평균을 토해 2~4배 틀린다, 실측). 예측이 없을 뿐 시세 데이터는 있으니 그때는 실거래 도구로 답하라. 응답 predictions[].caution이 있으면 반드시 함께 전달하라 — 예측 대상이 '익월에 거래된 매물들의 평균가'라, 시세가 그대로여도 거래 구성이 바뀌면 흔들린다(실측 16.3%가 ±10% 초과). 응답의 as_of_ym(기준월)·disclaimer(검증 MAPE)를 사용자 답변에 반드시 함께 전달하라 — 예측은 참고 지표이지 투자 보장이 아니다. |
| realty_complex_report | [유료] 단지 하나의 시세·전세·기본정보를 통합 조회한다. 응답에 좌표(latitude/longitude)와 complex_key가 들어 있다 — 이어서 realty_poi_nearby(입지)·realty_predict_price(예측)에 그대로 넣어 심층 분석하라. |
| realty_compare_regions | [유료] 여러 지역의 매매·전세 시세와 추이를 나란히 비교한다. 갈아타기·투자처 비교용. "어디가 제일 ○○해?"류 순위·탐색 질문은 무료 realty_region_rankings로 먼저 좁혀라 — 이 도구는 비교 대상이 정해졌을 때 쓴다. ⚠️ 지역별 `warning_baseline`·`warning_dispersion`을 avg_price보다 먼저 읽어라 — 이 소스는 이상치 미필터·단지급 혼합이라 avg_price를 그대로 "그 지역 시세"로 인용하면 특정 단지와의 비교 결론이 뒤집힌다(realty_region_price_stats와 같은 공시다). |
| realty_rental_yield | [유료] 시군구별 월세 수익률·평균 매매가·평균 월세를 조회한다. 수익형 투자 스크리닝용. 기본 응답은 최신 완결월 1개월치를 수익률 내림차순으로 자른 것이다 — 전체 기간·전체 지역이 아니다(truncated 필드 확인). 특정 월은 year_month로 조회하라. |
| realty_poi_nearby | [유료] 좌표 주변의 지하철·학교·병원·마트 등 입지 요소를 거리순으로 조회한다. 단지 좌표는 realty_complex_report가 준다. "역세권인가", "초품아인가" 판단용. 단지의 학군·교통 **점수**만 필요하면 무료 realty_location_scores로 충분하다 — 이 도구는 실제 시설 목록·거리를 셀 때 쓴다. |
| realty_poi_stats | [유료] 시군구별 병원·학교·지하철역 개수 통계를 조회한다. 지역 간 인프라 비교용. 지역 키는 '시도축약 시군구' 2토큰이다(예: '서울 마포구', 세종은 1토큰). 병원·지하철은 수집 범위가 수도권·광역시 중심이라 지방 시군구는 0으로 나올 수 있다 — 0을 "없다"로 단정하지 말고 수집 범위 밖일 수 있다고 말하라. |
| realty_invest_risk | [유료] 지역의 투자 위험도를 변동성·유동성·공급압력 축으로 점수화한다. 응답의 disclaimer(통계 요약이며 투자 권유 아님)를 사용자에게 반드시 함께 전달하라. |
| realty_market_signals | [유료] 미분양 추이와 시장심리지수를 한 번에 조회한다. 매수 타이밍 판단의 거시 신호. |
| realty_reconstruction | [유료] 건령·거래활성 기반 재건축 **후보 스크리닝** 상위 단지를 조회한다. 점수 = 건령(최대 70, 30년 연한 기준) + 최근 12개월 거래활성 전국 백분위(최대 30). 사업성(용적률·대지지분·안전진단·조합 단계)은 반영되지 않는다 — 후보 발굴용이지 투자 판단 근거가 아니며, 응답의 disclaimer를 사용자에게 그대로 전하라. (구버전 점수 포화로 2026-07-30 보류했다가 산식 v2 재계산 검증 후 재개 — DATA-060) |
| realty_redevelopment | [유료] 서울시 정비사업(재개발·재건축·가로주택 등) 사업장 목록 — 사업명·유형· 진행 단계·위치. "○○구 재개발 어디까지 진행됐어?"류 질문용. **커버리지는 서울 한정**(정보몽땅 원천) — 타 시도는 이 도구로 답할 수 없다고 밝혀라. 세대수·준공예정은 원천 목록이 제공하지 않아 null이다(지어내지 말 것). 진행 단계 필터는 미지원 — 결과의 stage 필드(한글: 조합설립인가·관리처분인가 등)로 판별하라. 재건축 **유망도 점수**는 이 도구가 아니라 realty_reconstruction이 담당하고, "지금 사면 조합원 지위 승계돼?"는 realty_member_transfer_check(무료)가 담당한다. |
| report_issue | 답이 틀렸을 때 신고하거나(kind='결함'), 남길 값이 있는 **질문 원문을 기록한다**(kind='질문기록'). **결함**: 사용자가 "그거 틀렸다", "이상하다", "숫자가 안 맞는다"고 하면 **먼저 이 도구를 호출한 뒤** 정정 답변을 하라. 신고는 서버 운영자에게 전달되어 실제 수정에 쓰인다. 사용자가 지적하지 않았는데 추측으로 부르지는 말 것. **질문기록**: 이 서버는 클라이언트가 이미 도구 호출로 번역한 뒤를 보므로 **사용자의 원문 질문을 볼 수 없다**. 그래서 어떤 질문이 실제로 오는지, 무엇을 못 답하는지가 계측에 안 잡힌다. 복합 질문·부분 답변·전제 오류 셋 중 하나면 원문(일반형으로 치환)을 남겨라 — 질문은행과 로드맵의 원천이 된다. **개인 식별 조합은 반드시 일반형으로 바꿔서** 넣는다. 두 종류가 한 도구인 이유: 무인증 공개 서버라 쓰기 표면을 하나로 묶어 상한을 함께 건다 (CLAUDE.md 규칙 2). 시간당 상한도 공유한다. **이 도구는 일일 조회 한도(quota) 밖이다** — 다른 도구가 `quota_exceeded`로 막혀도 신고는 접수된다(2026-08-18 수리). 한도를 다 쓴 사람의 신고가 못 오면 우리는 우리가 못 본 것을 영영 모른다. 남용 방지는 시간당 상한(전체 60건·발신자당 20건)이 진다. |