법원경매 데이터 MCP
This MCP server provides tools for finding, retrieving, collecting, tracking, and exporting Korean court auction real-estate data.
Look up court, province, and land/building top-level codes; optionally fetch official district lists for a region.
Search auction listings one page at a time by court or region, sale date range, usage, price, and failure-count filters.
Retrieve validated 15A case details by court and case number.
Run sequential collection jobs with checkpointing, resume by
job_id, and reject changed query conditions.Check job status, saved counts, cumulative requests, checkpoints, and failure summaries.
Export collected data to new local JSONL/CSV/Excel folders without overwriting existing output.
Check supported features, actual verification coverage, and limitations.
It uses unofficial court-site JSON requests, enforces call/request limits, and does not provide rights analysis, investment advice, or bidding automation.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@법원경매 데이터 MCP서울중앙지방법원 2026년 11월 매각기일 토지 경매 물건 검색해줘"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
법원경매 데이터 수집기
법원경매 부동산을 조건으로 찾고, 상세를 확인하고, 수집한 자료를 Excel·CSV·JSONL로 저장합니다. SIONLAB 제작 · MIT · Python 3.11+ · v0.2.1
유료 AI·API 키·Supabase·개인 작업 환경 없이 CLI와 Python으로 실행할 수 있습니다. 원하는 지역을 선택해 데이터를 수집하고 파일로 받을 수 있습니다.
flowchart LR
A[조건 정하기] --> B[물건 가져오기] --> C[상세 확인] --> D[엑셀 저장]법원 사이트 내부 JSON 요청을 쓰는 비공식 연동입니다. 사이트 변경·점검·차단으로 멈출 수 있습니다. 공식 이용안내는 2026-10-26 확인 시 일반 오픈API를 추후 제공 예정으로 안내합니다. 실제 입찰 전 법원 원문을 다시 확인하세요.
설치
GitHub 릴리스의 ZIP과 SHA-256 파일을 받아 해시를 확인하고 압축을 풉니다. PyPI 배포는 하지 않습니다.
cd court-auction-mcp-0.2.1
python3 setup-lab.py
.venv/bin/python -m court_auction_mcp coverage
.venv/bin/court-auction-mcp codesWindows에서는 python setup-lab.py와 .venv\Scripts\python.exe -m court_auction_mcp coverage를 사용합니다. 설치는 제품 폴더의 .venv에 한정됩니다. Linux에 ensurepip가 없고 기존 uv가 있으면 이를 사용합니다. 둘 다 없으면 Python의 venv 지원 환경이 필요합니다. Windows 실실행은 검증하지 않았습니다.
기존 가상환경에는 python -m pip install -r requirements.lock 뒤 python -m pip install --no-build-isolation --no-deps .로 설치할 수 있습니다.
Related MCP server: onbid-mcp
지역을 선택해서 받기
v0.2.0부터 지역 선택 실행기와 지역별 폴더 저장을 제공합니다.
처음 찾는 지역은 **원하는 지역 찾기 — 사용자·AI 가이드**를 보세요. 전국 시도 목록, 공식 시군구 코드 찾기, AI 요청문과 오류 대응 절차를 제공합니다.
설치 후 python 지역별/지역선택.py를 실행하면 시·도와 시·군·구 목록에서 번호를 고르고 매각기일을 입력할 수 있습니다. 결과는 지역별/수집결과/작업폴더/에 저장됩니다. Python 설치와 최초 패키지 설치는 필요하며 별도 API 키는 필요하지 않습니다. 지역별 사용 안내를 참고하세요.
python 지역별/지역선택.py
# 또는 가상환경 실행 파일로
.venv/bin/python -m court_auction_mcp guide
# JSON 파일 없이 조건 직접 입력
court-auction-mcp codes --region 서울
court-auction-mcp collect --job-id gangnam-nov --region 서울 --district 11680 --start 2026-11-01 --end 2026-11-30
court-auction-mcp export --job-id gangnam-novguide는 기본 한도 10회 안에서 지역 코드 조회와 수집을 진행합니다. 기본 1페이지이며 --max-pages 2로 늘릴 수 있습니다. 재개는 표시된 작업 ID로 collect --job-id ID를 실행합니다. 시·군·구 목록은 공식 사이트에서 조회하므로 연결·차단 상태에 영향을 받습니다. 전국 시도 목록은 오프라인으로 볼 수 있습니다.
먼저 가상 자료로 연습하기
.venv/bin/python examples/run_example.py외부 요청 없이 가상 토지·건물 2개를 수집하고 세 형식 파일을 만든 뒤 Excel·CSV 원문 복원을 비교합니다. 출력 경로는 마지막 JSON에 표시됩니다. 실제 경매 데이터는 배포본에 없습니다.
실제 물건 검색과 상세
examples/query.json의 법원 또는 지역과 시작·종료일을 원하는 범위로 바꿉니다. 기본 페이지 크기는 10이며 기간은 매각기일 기준입니다.
{
"court": "B000210",
"start": "2026-10-26",
"end": "2026-11-30",
"usage": "all",
"page_size": 10
}court-auction-mcp search --query examples/query.json
court-auction-mcp search --query examples/query.json --page 2
court-auction-mcp detail --court B000210 --case 2099타경123마지막 사건번호는 가상 예시입니다. 실조회에서는 검색 결과의 normalized.court_code와 normalized.case_no를 사용하세요. .venv/bin/ 경로를 생략하려면 가상환경을 활성화합니다. 모든 명령은 python -m court_auction_mcp로도 같습니다.
조건 | 입력 |
법원·지역 |
|
용도 |
|
매각기일 |
|
감정가 |
|
최저매각가 |
|
유찰 횟수 |
|
codes는 법원 60곳, 시도 17곳, 토지·건물 대분류를 제공합니다. codes --region 서울처럼 시도를 지정하면 공식 시군구 목록을 조회합니다. 세부 용도 목록의 동적 조회는 제공하지 않습니다. 법원과 지역은 서로 다른 검색 방식이므로 동시에 지정하지 않습니다.
용도 검색은 매각물건 기준이며, 함께 매각되는 토지와 건물 목적물이 모두 반환될 수 있습니다. 건물 검색에 연결된 토지가 나와도 삭제하지 않습니다. 개별 목적물의 property_kind와 매각물건의 usage를 구분하세요. 같은 사건의 토지·건물 행에 가격이 반복될 수 있으므로 목적물별 가격을 단순 합산하지 마세요.
수집·중단 후 재개·Excel 저장
court-auction-mcp collect --job-id seoul-oct --query examples/query.json --max-pages 3
court-auction-mcp status --job-id seoul-oct
court-auction-mcp collect --job-id seoul-oct --max-pages 3
court-auction-mcp export --job-id seoul-oct --name seoul-oct-export기본 작업 DB는 ~/.court-auction-mcp/jobs.sqlite3, 출력은 현재 폴더의 output/입니다. 전역 옵션 --db와 --export-root는 명령 앞에 둡니다. 예: court-auction-mcp --db ./jobs.sqlite3 --export-root ./exports status --job-id seoul-oct.
HTTP 요청은 같은 DB를 쓰는 실행들 사이에서 순차 처리하고 최소 3초 간격을 둡니다. 여러 DB·프로세스를 나눠 병렬 수집하지 마세요.
신규 작업의 기본 한도는 초기 연결·재시도 포함 누적 10회입니다. 재개해도 초기화되지 않습니다. 세션 쿠키는 저장하지 않아 재개할 때 초기 연결 1회가 다시 필요합니다.
필요하면
collect --job-id seoul-oct --max-calls 15 --max-pages 2처럼 누적 한도를 명시적으로 늘립니다. 같은 작업의 검색 조건은 바꿀 수 없습니다.기본
max-pages는 1입니다.status=partial,reason=page_limit는 요청한 페이지 수에서 멈춘 상태입니다.call_limit는 누적 호출 한도입니다. 남은 위치는next_page입니다.차단·CAPTCHA·
ipcheck=false·403/429는 즉시 멈추고 같은 DB에서 이후 요청도 막습니다. IP·브라우저·새 DB로 우회하지 마세요. 자동 차단 해제 기능은 없습니다.5xx·일시적 네트워크 오류만 최대 한 번 재시도합니다. 점검·형식 변경·식별자 불일치·반복 페이지는 별도 상태로 보존합니다.
complete는 관측한 페이지 끝에 도달했다는 뜻입니다. 실시간 원본의 누락 없는 스냅샷을 보장하지 않습니다. 전체 건수가 변하면source_changed와partial=true로 남깁니다.
출력에는 records.xlsx, 보기용 overview.csv, 복원용 records.csv, records.jsonl, manifest.json과 지역별/ 폴더가 포함됩니다. 지역별/지역목록.csv에서 원하는 지역 폴더를 찾으세요. 각 지역 폴더에도 Excel·CSV·JSONL이 저장됩니다. 기존 출력 폴더는 덮어쓰지 않습니다. Excel의 Overview에는 지역·주소·용도와 조건검증 상태, 자동 필터·행 고정·숫자 가격 열이 있으며, records·long_values는 복원용, Collection은 수집 범위·완료 여부입니다. 빈 금액은 0이 아니며 원문과 누락 이유를 함께 확인하세요. 긴 CSV를 Python으로 읽을 때는 기본 필드 길이 제한이 있으므로 아래 복원 함수를 사용합니다.
from court_auction_mcp.export import restore_excel, restore_csv
records = list(restore_excel("output/seoul-oct-export/records.xlsx"))
assert records == list(restore_csv("output/seoul-oct-export/records.csv"))filter_mismatch_*는 반환된 지역·날짜·가격·유찰 조건이 요청과 달라 해당 페이지를 저장하지 않고 중단했다는 뜻입니다. 누락값은 filter_check.unverified와 작업 unverified_count로 표시합니다. 용도는 연결 목적물만으로 확정할 수 없어 미확인으로 남깁니다. 수정 전 수집한 지역 작업은 그대로 이어 붙이지 않고 새 작업 ID로 다시 시작해야 합니다.
CLI 종료 코드: 정상 0, 입력·단일 요청 오류 2, 수집 미완료·중단 3입니다. 오류 메시지에 사이트 원문·쿠키를 포함하지 않습니다.
Python과 MCP
from court_auction_mcp import AuctionService
api = AuctionService(db="jobs.sqlite3", export_root="exports")
print(api.call("coverage"))
# api.call("search", {"query": {...}})
# api.call("collect", {"job_id": "sample", "query": {...}, "max_pages": 2})api.call()은 CLI·MCP와 같은 오류 JSON을 반환합니다. api.search() 등 직접 메서드는 잘못된 입력에 AuctionError를 발생시킬 수 있습니다.
examples/mcp-config.json을 참고해 사용하는 MCP 클라이언트에 직접 연결합니다. command에는 가상환경의 실행 파일 절대 경로를 쓰면 됩니다. 이 패키지는 운영 MCP 설정을 변경하지 않습니다.
CLI | MCP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
serve는 MCP stdio 서버를 실행합니다. MCP 수집 결과는 요약이며 대량 자료는 auction_export로 제공합니다. MCP 응답은 1MiB로 제한됩니다. 검색 페이지를 줄이거나 파일 출력을 사용하세요.
검증과 범위
실제 검증 · 데이터 계약 · 기술 흐름 · 출처·이용 조건 · 기여하기
서울중앙지방법원·2026-10-26~2026-11-30 범위에서 검색 10건, 상세 1건, 두 페이지 20건 저장, 조건 검색 10건을 확인했습니다. 호출은 초기 연결 포함 총 9회였습니다. 이는 전국 법원·모든 상세 조합·전체 수집 완료를 검증한 결과가 아닙니다. v0.2.0에서는 서울 강남구 두 페이지 20건, 경기 성남시 분당구 10건의 지역·기간을 추가 대조했습니다. 전국 전체 지역을 실조회한 것은 아닙니다. 자세한 검증 상태는 coverage를 확인하세요.
사진·첨부문서 다운로드, 15B, 자동차·중기, 온비드, 권리분석·투자추천·입찰 자동화는 지원하지 않습니다. 누락값은 추정하지 않습니다. 관계인 이름·연락처와 인증값을 저장하지 않도록 필드를 제한하며, 코드 MIT 라이선스와 법원 원자료의 이용 조건은 별개입니다.
Available Tools
7 toolsauction_codesC
법원·시도·토지/건물 대분류 코드. 하위 코드 목록 지원 범위 확인.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | 시도 코드/이름. 생략 시 오프라인 목록, 지정 시 공식 시군구 목록 조회. | |
| max_calls | No | 초기 연결·재시도 포함 누적 한도. 신규 기본 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare openWorldHint=true and readOnlyHint=false, yet the description says nothing about network access, latency, caching, or whether any state is touched — the offline-vs-official lookup behavior lives only in the schema, not the description. For a tool whose annotations are non-trivial and somewhat surprising for a code lookup, the description adds no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short fragments with no filler, but the structure is noun-phrase-first with no verb and no front-loaded statement of what the tool returns. Brevity here reflects under-specification rather than discipline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must say what comes back (a code list, keyed how, with what hierarchy) and it does not. Combined with no guidance on the `region`-omitted offline mode and no differentiation from auction_coverage, an agent lacks what it needs to call this confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both `region` (offline list vs official sigungu list) and `max_calls` (cumulative budget including retries) are already documented in the schema. The description contributes no additional meaning about either parameter, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resources it deals with (court / province / land-building top-level codes) and hints at sub-code list coverage, but it never states a verb — an agent cannot tell whether it lists, resolves, or validates codes. It is distinguishable from auction_detail or auction_search only by inference, not by an explicit statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus auction_coverage (which sounds closely related) or the other five siblings. The phrase about checking the supported range of sub-code lists is a faint usage hint at best, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auction_collectB
순차 수집·원자 체크포인트. 같은 job_id로 재개, 조건 변경 거부.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| job_id | Yes | ||
| max_calls | No | 초기 연결·재시도 포함 누적 한도. 신규 기본 10. | |
| max_pages | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and openWorldHint=true; the description adds substantive traits beyond that — progress is checkpointed atomically (safe to interrupt) and the query is frozen for a job_id, so changing conditions is refused. It omits failure/retry behavior and how max_calls interacts with the checkpoint, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two terse sentences with zero filler, and the core mechanism (sequential + atomic checkpoint) is front-loaded. For a tool with a deeply nested query schema it is arguably under-sized, which keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested 14-property query object, no output schema, and the existence of auction_job_status for polling, the description should explain what the call returns (a job handle?) and how it relates to the status sibling. Those gaps are significant for a complex, long-running collection tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% across 4 params plus a 14-property nested query object. The description does add real meaning to job_id and query by explaining that the query must stay identical across resumes, but the nested filter fields and max_pages remain undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description indicates a sequential bulk collection operation with atomic checkpointing, and the tool name supplies the 'auction' resource. However, it never says what is being collected (auction listings) or how it differs from sibling auction_search / auction_export, so an agent must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a rule for resuming ('resume with the same job_id, condition changes rejected') but gives no guidance on when to pick this tool over auction_search or auction_export, nor any prerequisite such as needing a prior run or a quota.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auction_coverageCRead-only
지원 기능과 실제 검증 범위·한계 확인.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds the important nuance that this reflects 'actual verification scope and limits' (i.e., measured rather than advertised coverage), but says nothing about how results are produced or refreshed. Some added value beyond annotations, but not rich context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the key idea (scope and limits) is front-loaded. It is arguably under-specified rather than over-long, which does not hurt this dimension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description carries the full burden of explaining what an agent will receive, yet it gives no sense of the return content (list of capabilities? pass/fail per feature?). For a meta/coverage tool whose whole value is the shape of its report, this is a significant omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is an empty, closed object, so there is nothing for the description to disambiguate. Baseline 4 applies; no parameter guidance is needed or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase '지원 기능과 실제 검증 범위·한계 확인' does name what the tool reports (supported features plus actual verification scope and limits), which is more than a restatement of the name. However, it never identifies the subject domain (the auction API/service) or the form of the output, so an agent cannot fully distinguish it from auction_detail or auction_job_status. Purpose is inferable but vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and none of the five sibling tools (auction_search, auction_codes, auction_detail, etc.) are mentioned as alternatives. An agent must guess whether this is a pre-flight capability check or a post-run validation report.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auction_detailC
법원·사건 식별을 검증한 15A 상세. 권리분석이나 투자추천이 아님.
| Name | Required | Description | Default |
|---|---|---|---|
| case | Yes | ||
| court | Yes | ||
| max_calls | No | 초기 연결·재시도 포함 누적 한도. 신규 기본 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false with openWorldHint=true, meaning this is not a pure local read and may reach external systems, yet the description says nothing about network calls, retries, rate limits, or whether a job/collection step is involved. The phrase about 'verifying' court/case identity hints at a lookup but does not disclose what happens when verification fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short fragments, front-loaded and free of padding, so it is certainly concise. However, the brevity is achieved by omitting necessary detail rather than by efficient expression, so it is terse without being informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, an openWorld non-read-only profile, and two undocumented required parameters, the description should carry much more weight than it does. It leaves the agent unable to predict return shape, failure behavior, or parameter formats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%: max_calls is documented, but court and case are bare strings with no format hints (court code? name? case number pattern?) and the description does not compensate at all despite those being the two required parameters. This is a critical gap because the tool's own stated purpose is verifying court/case identity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a 'detail' (상세) tool for auctions scoped to court/case, which gives some resource specificity. But '15A 상세' is unexplained internal shorthand and it never distinguishes itself from siblings like auction_search or auction_collect, so an agent cannot tell why to pick this one from the name text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage-adjacent statement is a disclaimer that this is not rights analysis or investment advice, which is scope exclusion rather than a when-to-use rule. There is no guidance on preconditions (that court and case must already be identified) or when to prefer auction_search/auction_collect instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auction_exportC
새 로컬 폴더에 JSONL/CSV/Excel. 기존 출력은 덮어쓰지 않음.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| job_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations declaring readOnlyHint=false but destructiveHint=false, the description corroborates this by stating output goes to a NEW local folder and existing output is not overwritten — resolving the apparent tension between writing and non-destructiveness. It could still mention prerequisite job state or permissions, but the key behavioral trait is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is extremely short and front-loads the formats and destination, but it reads as a sentence fragment and omits essential framing (that this is an export of a job's results). Brevity here costs clarity rather than earning it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a required identifier, multiple output formats, and no output schema, the description is missing the job_id relationship, the naming semantics of 'name', and any indication of what the return value contains. Only the overwrite policy is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so job_id (the only required parameter) and name have no documented meaning anywhere. The description does not clarify what job_id refers to or what the optional name does (presumably output file/folder naming), leaving both parameters to guesswork.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description conveys the action indirectly: export output (JSONL/CSV/Excel) into a new local folder, with existing output preserved. The verb is only implied by the tool name rather than stated, and there is no explicit differentiation from siblings such as auction_collect or auction_job_status, which likely also produce output tied to a job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over auction_collect or how it relates to auction_job_status (e.g., must a collect job finish first?). The only usage-adjacent statement is the no-overwrite rule, which is a behavior rather than a selection criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auction_job_statusCRead-only
저장 건수·누적 요청·체크포인트·실패 요약.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds almost no behavioral context: it does not say whether the job may still be running, whether failures are truncated, or whether checkpoint data is stable across polls — the kind of context that actually matters for a status endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single terse fragment with no wasted words, but that brevity comes at the cost of a missing verb and subject. Short is good here, yet the content is a return-value teaser rather than a structured statement of purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a required identifier, no output schema, and no documented parameters, the description should explain how job_id is obtained and what a status response means for the caller. Instead it provides only a comma-separated list of fields, leaving the agent under-informed for even this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% — the single required job_id has no description and carries only a regex pattern. The description never mentions job_id, its provenance (presumably returned by auction_collect), or what form it takes, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a noun fragment ('저장 건수·누적 요청·체크포인트·실패 요약') that lists the contents of a status report but never states the action or the resource — no verb like 'retrieves job status'. It hints at what the status contains, yet an agent must infer from the tool name that this reports on a collection job, and nothing ties it to the auction_collect sibling that presumably creates the job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus auction_collect or auction_export, no mention of polling a running job, and no statement of prerequisites beyond the implicit job_id. The agent is left to infer the entire usage pattern from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auction_searchC
명시한 법원/지역·매각기일 범위에서 한 페이지 조회.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| query | Yes | ||
| max_calls | No | 초기 연결·재시도 포함 누적 한도. 신규 기본 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorldHint=true and destructiveHint=false, but the description adds nothing about the remote court-data lookup, rate limiting, or the retry/connection budget governed by max_calls. Note the tension between the description's read-flavored '조회' and readOnlyHint=false; it is not an outright contradiction (the flag likely reflects network behavior), but the description gives no help in resolving it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the essential scope front-loaded and no filler. Its brevity is appropriate in style but is under-specification rather than economy given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-object search with pagination, price/failure range filters, and a cumulative call budget, with no output schema and thin schema descriptions, the description leaves too much unaddressed. An agent cannot tell what a page contains, how results are ordered, or how paging terminates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% on a nested query object with roughly fourteen properties, so the description needs to compensate and largely does not. It mentions court/region and the sale-date range (start/end) but says nothing about page, page_size, usage/usage_mid/usage_small, or the appraisal/minimum/failures min-max range pairs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (조회) plus resource and scope: one page of auction listings filtered by court/region and sale-date range. The phrase '한 페이지 조회' implicitly separates it from siblings like auction_export and auction_collect (bulk operations) and auction_detail (single record), though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus auction_export, auction_collect, or auction_detail, and no prerequisites or exclusions. The only usage signal, that it returns a single page, must be inferred from the word '한 페이지'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.2.1- Changed
auction_codes2 fields changed- added
Input schema / properties / max_callsAdded value: +{ + "description": "초기 연결·재시도 포함 누적 한도. 신규 기본 10.", + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / regionAdded value: +{ + "description": "시도 코드/이름. 생략 시 오프라인 목록, 지정 시 공식 시군구 목록 조회.", + "type": "string" +}
7 tool updates
v0.1.0- First observed
auction_codes - First observed
auction_collect - First observed
auction_coverage - First observed
auction_detail - First observed
auction_export - First observed
auction_job_status - First observed
auction_search
TDQS
Scored across 7 tools
Each tool targets a distinct stage: search (one-page view), detail (single case), collect (bulk job), job_status (job monitoring), codes (lookup), coverage (meta/limits), export (output). The only mild overlap is auction_search vs auction_detail, but their descriptions clearly separate listing queries from case-level detail.
All seven tools share the 'auction_' prefix, giving a strong predictable pattern. Minor deviation: some use verbs (collect, export, search) while others use nouns (detail, codes, coverage, job_status), but the set remains readable and coherent.
Seven tools is well-scoped for a data collection pipeline: discovery, collection, monitoring, export, and reference lookups. Each tool earns its place with no redundant entries.
The surface covers the full workflow: codes → search → detail → collect → job_status → export, plus a coverage/limits tool. A gap exists in job management — no list_jobs to discover job_ids and no cancel/abort operation — which agents may need for recovery.
Maintenance
Related MCP Connectors
Korean real estate: court auctions, 10M+ MOLIT records, subscription notice facts, loan/DSR rules
Korean statutes, precedents, local business-district stats and public procurement for AI agents.
All KR Data tools in one server: Korean business checks, addresses, laws, car flood records & more
Korean business, bid and real-estate analytics, parcel, building register and simple-auth data
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables searching Korean court auction cases and personal case information via case numbers using headless browser automation of government websites.5MIT
- FlicenseNot gradedqualityBmaintenanceEnables LLM clients to ask plain-language questions about Korean public auction property data from the 온비드 OpenAPI, including normalized pricing, location, and failed-sale history.2-
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to query Korean apartment real-estate data, including official transaction prices, jeonse ratios, and AI price forecasts for 45,000+ complexes.1MIT
- AlicenseNot gradedqualityAmaintenanceEnables read-only search and retrieval of KAMCO Onbid public auction property data, including listings, details, and bidding results, using user-provided API keys.MIT