Skip to main content
Glama

법원 경매/사건검색 MCP 서버 (lawyer-mcp)

License: MIT Python MCP Playwright Tests

법원 사이트에서 사건번호로 검색하는 MCP 서버입니다. Playwright(헤드리스 브라우저)로 WebSquare 기반 정부 사이트를 조작합니다.

제공 툴

대상 사이트

설명

auction_case_search

경매사건검색

법원+사건번호로 사건 전체 조회(미종국/취하 포함)

auction_search_by_case

물건상세검색

사건번호로 진행 중 매각물건 목록 검색

auction_item_detail

물건상세검색

진행 물건 상세(감정가/최저가/기일 내역)

case_search_captcha

나의 사건검색

1단계 — CAPTCHA 이미지 반환

case_search_submit

나의 사건검색

2단계 — CAPTCHA 입력 후 조회

경매 사건번호 조회는 auction_case_search 를 우선 사용하세요. 날짜 필터가 없어 진행 중·미종국·취하·종국 사건까지 바로 나오며, 사건 기본정보·물건목록·당사자·목록(소재지)을 함께 돌려줍니다. auction_search_by_case/auction_item_detail 는 매각기일이 잡힌 '진행 중 매각물건'만 다루므로, 진행물건이 없는 사건은 빈 결과가 됩니다. (지원 법원명은 짧은 이름 — 예: 광주지방법원 순천지원순천지원)

나의 사건검색은 CAPTCHA(자동입력 방지문자) 때문에 반자동입니다. 1단계에서 받은 이미지를 사람이 읽고, 2단계에 그 값을 넣어야 조회됩니다. CAPTCHA 자동 우회는 시도하지 않습니다.

조회 실패 처리: 당사자명 불일치·사건 없음·CAPTCHA 오류 시 법원 사이트가 띄우는 경고창 문구(예: 사건이 존재하지 않습니다.)를 그대로 에러로 반환합니다. 경고창 없이 검색 폼으로 되돌아온 경우도 조회 결과를 찾을 수 없습니다 에러로 처리합니다.

Related MCP server: law-search-mcp

설치

1) 저장소 클론

git clone https://github.com/kingtousick/HwangsLawyerMCP.git
cd HwangsLawyerMCP

2) Python 환경 준비

Python 3.10+ 이 필요합니다. 아래 중 하나로 의존성과 브라우저(Chromium)를 설치하세요.

방법 A — uv (권장)

# uv 가 없으면 먼저 설치
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# (새 터미널을 연 뒤) 클론한 폴더에서:
uv sync
uv run playwright install chromium

방법 B — python.org 설치본

  1. https://www.python.org/downloads/ 에서 3.12 설치 (설치 시 Add to PATH 체크)

  2. 클론한 폴더에서:

    python -m venv .venv
    .\.venv\Scripts\Activate.ps1
    pip install -e .
    playwright install chromium

실행 / 동작 확인

# uv 사용 시
uv run lawyer-mcp
# venv 사용 시
lawyer-mcp

서버는 stdio MCP 트랜스포트로 동작하므로 직접 실행하면 입력 대기 상태가 됩니다(정상).

MCP 인스펙터로 테스트

uv run mcp dev src/lawyer_mcp/server.py

Claude Code 에 등록

아래 설정에서 <REPO_DIR>클론한 폴더의 절대경로로 바꿔주세요. (예: C:\Users\alice\HwangsLawyerMCP, /home/alice/HwangsLawyerMCP)

%USERPROFILE%\.claude.json 또는 프로젝트 .mcp.jsonmcpServers 에 추가:

{
  "mcpServers": {
    "lawyer": {
      "command": "uv",
      "args": ["--directory", "<REPO_DIR>", "run", "lawyer-mcp"]
    }
  }
}

JSON 에 Windows 경로를 넣을 때는 역슬래시를 두 번(C:\\Users\\alice\\...) 쓰거나 슬래시(C:/Users/alice/...)를 사용하세요.

또는 CLI 로 — 클론한 폴더 안에서 실행하면 절대경로를 직접 쓰지 않아도 됩니다:

# PowerShell (클론한 폴더에서)
claude mcp add lawyer -- uv --directory $PWD run lawyer-mcp
# bash/zsh (클론한 폴더에서)
claude mcp add lawyer -- uv --directory "$PWD" run lawyer-mcp

사용 예시

아래 반환값은 구조를 보여주기 위한 예시입니다. 실제 값이 아닙니다.

1. 경매 사건 조회 — 완전 자동

경매 사이트는 CAPTCHA 가 없어 한 번의 요청으로 끝납니다.

💬 순천지원 2024타경12345 경매 사건 조회해줘

auction_case_search 가 호출됩니다.

{ "case_no": "2024타경12345", "court": "순천지원" }
{
  "court": "순천지원",
  "case_no": "2024타경12345",
  "case_name": "부동산임의경매",
  "filed_date": "2024.03.11",
  "department": "경매1계",
  "claim_amount": "150,000,000원",
  "final_result": null,
  "parties_summary": "채권자 ○○은행 / 채무자 김OO",
  "items": [
    {
      "물건번호": "1",
      "용도": "아파트",
      "감정평가액": "280,000,000원",
      "물건상태": "유찰(1회)"
    }
  ],
  "listings": [
    { "소재지": "전남 순천시 ○○동 123 ○○아파트 101동 1004호" }
  ],
  "parties": [
    { "구분": "채권자", "이름": "○○은행" },
    { "구분": "채무자", "이름": "김OO" }
  ]
}

final_resultnull 이면 미종국(진행 중)입니다. 사건을 찾지 못하면 None 을 돌려줍니다.

2. 나의 사건검색 — CAPTCHA 2단계

민사·가사·제소전화해 등 일반 사건은 자동입력 방지문자 때문에 두 단계로 나뉩니다. 당사자명이 필수이며, 사건번호와 정확히 일치해야 조회됩니다.

[1단계] case_search_captcha

{
  "court": "광주지방법원 순천지원",
  "case_no": "2024가단12345",
  "party_name": "홍길동"
}
{
  "session_id": "a1b2c3d4e5f6",
  "captcha_image_path": "<REPO_DIR>/.captcha/captcha_a1b2c3d4e5f6.png",
  "message": "저장된 CAPTCHA 이미지를 열어 표시된 문자를 읽고, case_search_submit 툴에 session_id 와 함께 입력하세요. (세션 유효시간 600초)"
}

[2단계] 이미지의 문자를 읽어 case_search_submit 에 전달합니다.

{ "session_id": "a1b2c3d4e5f6", "captcha_text": "123456" }
{
  "court": "광주지방법원 순천지원",
  "case_no": "2024가단12345",
  "case_name": "[전자]대여금",
  "department": "민사1단독",
  "filed_date": "2024.03.11",
  "final_result": null,
  "parties_summary": "원고 김OO / 피고 홍OO",
  "basic_info": {
    "원고소가": "30,000,000원",
    "수리구분": "제소",
    "인지액": "140,000원"
  },
  "hearings": [
    {
      "일자": "2024.09.05",
      "시각": "14:10",
      "기일구분": "변론기일",
      "기일장소": "제100호 법정",
      "결과": "속행"
    },
    {
      "일자": "2024.10.17",
      "시각": "14:00",
      "기일구분": "판결선고기일",
      "기일장소": "제100호 법정",
      "결과": ""
    }
  ],
  "submissions": [
    { "일자": "2024.08.28", "내용": "원고 소송대리인 준비서면 제출" }
  ],
  "parties": [
    { "구분": "원고", "이름": "1. 김OO" },
    { "구분": "피고", "이름": "1. 홍OO" }
  ],
  "agents": [
    { "구분": "원고 소송대리인", "이름": "변호사 김OO" }
  ]
}

당사자 이름은 법원 사이트가 이미 마스킹해서 내려줍니다(홍OO). 이 서버가 가공하는 게 아닙니다.

CAPTCHA 자동 입력

LAWYER_MCP_CAPTCHA_DIRMCP 클라이언트가 읽을 수 있는 폴더로 지정하면, 클라이언트 쪽 모델이 이미지를 직접 읽어 2단계까지 한 번에 진행할 수 있습니다.

{
  "mcpServers": {
    "lawyer": {
      "command": "uv",
      "args": ["--directory", "<REPO_DIR>", "run", "lawyer-mcp"],
      "env": { "LAWYER_MCP_CAPTCHA_DIR": "<클라이언트가 접근 가능한 폴더>" }
    }
  }
}

3. 조회 실패

법원 사이트가 띄우는 경고창 문구를 그대로 전달합니다.

조회 실패: 자동입력 방지문자가 일치하지 않습니다.
          (사건번호·당사자명·자동입력 방지문자를 확인하세요)

경고창 없이 검색 폼으로 되돌아온 경우(당사자명 불일치 등)는 이렇게 나옵니다.

조회 결과를 찾을 수 없습니다. 사건번호와 당사자명이 정확한지 확인하세요.
(당사자명이 일치하지 않거나 해당 사건이 없을 수 있습니다.)

환경 변수

변수

기본값

설명

LAWYER_MCP_HEADLESS

1

0 으로 두면 브라우저 창을 띄움(디버깅/셀렉터 검증용)

LAWYER_MCP_CAPTCHA_DIR

<REPO_DIR>/.captcha

CAPTCHA 이미지 저장 경로

LAWYER_MCP_SESSION_TTL

600

나의 사건검색 세션 유효시간(초)

LAWYER_MCP_CAPTCHA_DIRMCP 클라이언트가 읽을 수 있는 폴더로 지정하면 클라이언트 쪽 모델이 이미지를 직접 읽어 CAPTCHA 를 입력할 수 있습니다.

CAPTCHA 이미지는 자동 정리됩니다. case_search_submit 이 끝나면 해당 이미지를 지우고, 조회를 중단해 버려진 세션은 TTL 이 지난 뒤 다음 호출 때 컨텍스트·이미지가 함께 정리됩니다. 세션 없이 남은 captcha_*.png 도 1시간이 지나면 걷어냅니다(그 폴더의 다른 파일은 건드리지 않습니다).

검증/탐침 스크립트 전용 (scripts/)

변수

기본값

설명

LAWYER_MCP_OUT_DIR

저장소 루트

스크린샷·DOM 덤프 등 산출물 저장 경로

LAWYER_MCP_TEST_COURT

○○시법원

검증에 쓸 법원명

LAWYER_MCP_TEST_CASE_NO

25자10000

검증에 쓸 사건번호

LAWYER_MCP_TEST_PARTY

홍길동

검증에 쓸 당사자명

scripts/ 의 검증 스크립트는 실제 사건으로 조회해야 의미가 있습니다. 실사건 정보는 저장소에 커밋하지 말고 위 환경변수로 주입하세요.

$env:LAWYER_MCP_TEST_COURT = "○○지방법원"
$env:LAWYER_MCP_TEST_CASE_NO = "24가단12345"
$env:LAWYER_MCP_TEST_PARTY  = "홍길동"
uv run python scripts/verify_full.py

법원명 표기 주의(나의 사건검색): 시·군법원은 단축명(여수시법원), 지방법원 본원·지원은 풀네임(광주지방법원 순천지원)이어야 select 옵션과 매칭됩니다. 경매 사이트는 지원을 단축명(순천지원)으로 받으니 서로 다릅니다.

출력 인코딩

scripts/_common.py 가 임포트 시점에 stdout/stderr 를 UTF-8 로 재설정합니다. Windows 기본 콘솔 인코딩(cp949)에서 한글이 깨지거나, 결과를 파일로 리다이렉트했을 때 cp949 로 기록되는 문제를 막기 위한 것으로, PYTHONIOENCODING 을 따로 지정하지 않아도 됩니다.

uv run python scripts/verify_full.py > result.txt   # result.txt 는 UTF-8

셀렉터 검증 상태

모듈

대상

폼 입력

결과 파싱

scourt.py

ssgo.scourt.go.kr

✅ 검증 완료(2026-06)

✅ 검증 완료(2026-06, 실사건 조회)

courtauction.py

courtauction.go.kr

✅ 검증 완료(2026-06)

✅ 검증 완료(2026-06, 실사건 조회)

scourt.py 는 실제 사건으로 폼 입력 → CAPTCHA → 결과 파싱까지 전 구간 검증을 마쳤습니다. (기본정보·기일내역·제출서류·당사자·대리인 그리드 모두 정상 추출) 재검증: scripts/verify_full.py, scripts/probe_scourt.py

courtauction.py 도 실제 사건으로 전 구간 검증을 마쳤습니다.

  • 경매사건검색(case_search): 법원+사건번호 → 기본정보·물건목록·당사자·목록 추출 검증(예: 2025타경602 순천지원, 당사자 16명). 무결과는 None.

  • 물건상세검색(search_by_case/item_detail): 결과 그리드 '물건 1건 = 행 2줄' 구조, 물건상세는 소재지 링크 클릭 시 같은 페이지 인라인 렌더, 기일내역 파싱까지 검증. 무결과·범위 밖 연도 등 예외도 명확한 에러/빈 결과로 처리. 재검증: scripts/verify_case_search.py, scripts/verify_auction.py, scripts/probe_case_*.py, scripts/probe_auction*.py

정부 사이트는 WebSquare 내부 ID 기반이라, 실제 페이지를 열어 element id 를 확인해야 합니다.

# 브라우저를 띄운 채 실제 DOM 확인
$env:LAWYER_MCP_HEADLESS = "0"
uv run mcp dev src/lawyer_mcp/server.py

개발자도구(F12)로 입력칸/버튼/결과 테이블의 실제 id 를 확인한 뒤 각 파일 상단의 _SEL_* 상수를 교체하세요. 사이트 개편 시에도 이 부분만 손보면 됩니다.

주의 / 한계

  • 법원 사이트의 이용약관과 robots 정책을 준수하고, 과도한 요청을 피하세요.

  • 전자소송(ecfs)의 사건 상세는 공동인증서 로그인이 필요해 이 서버 범위에 넣지 않았습니다.

  • 사이트 구조 변경 시 셀렉터 업데이트가 필요합니다.

Available Tools

5 tools
auction_item_detailA

법원경매 물건의 상세 정보(감정가/최저가/기일 내역)를 조회한다.

Args: case_no: 사건번호 (예: '2024타경12345'). item_no: 물건번호 (선택). 미지정 시 첫 번째 물건. court: 관할 법원명 (선택).

Returns: 물건 상세 정보. 없으면 None.

ParametersJSON Schema
NameRequiredDescriptionDefault
courtNo
case_noYes
item_noNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must cover behavioral traits. It only mentions returning None if no data, but fails to disclose read-only nature, permissions, side effects, or error handling. This is insufficient for a tool with no annotations.

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 brief and well-structured with Args and Returns sections. It is front-loaded with the purpose. Minor redundancy exists between the first sentence and the Args section, but overall it is concise.

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

Completeness3/5

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

With an output schema present and moderate complexity, the description covers parameter purpose and return behavior (None if missing). However, it lacks information on potential errors, rate limits, or authentication requirements, leaving some gaps.

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 in Korean, including an example format for case_no and default behavior for item_no. This adds significant meaning beyond the schema names and 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 it retrieves detailed information of a court auction item, including specific fields like appraised value and minimum price. This distinguishes it from sibling tools which are likely case search or captcha handling.

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?

The description does not provide guidance on when to use this tool vs alternatives, nor does it mention prerequisites or when not to use it. Users are left to infer usage context from parameter descriptions alone.

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

auction_search_by_caseA

법원경매 '진행 중 매각물건'을 사건번호로 검색한다(물건상세검색).

매각기일이 설정된 부동산 물건만 나온다. 미종국/취하 등 진행물건이 없는 사건은 빈 리스트가 된다(그 경우 auction_case_search 를 사용).

Args: case_no: 사건번호 (예: '2024타경12345'). court: 관할 법원명 (선택, 예: '서울중앙지방법원').

Returns: 물건 요약 정보 리스트. 결과가 없으면 빈 리스트.

ParametersJSON Schema
NameRequiredDescriptionDefault
courtNo
case_noYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It reveals key behaviors: only items with a sale date are returned, empty list means no ongoing items (not an error), and the return type is a list of item summaries. Though it does not mention authentication or read-only nature, those are implied and the description is sufficient for this simple 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 very concise, consisting of a few lines that efficiently convey purpose, usage guidance, parameter details, and return value. 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 tool's simplicity (2 parameters, simple list return) and the existence of an output schema, the description covers all necessary aspects: what it does, when to use it, parameters with examples, and return format. It is fully complete for an agent to understand and invoke the tool correctly.

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 compensate. It does so by providing clear Korean descriptions for both parameters: case_no with example '2024타경12345' and court with example '서울중앙지방법원', along with optionality. This fully covers the meaning and format 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 specifies the verb '검색한다' (search), the resource '법원경매 진행 중 매각물건' (court auction ongoing sale items), and the search key '사건번호' (case number). It explicitly distinguishes from the sibling tool auction_case_search by stating the condition under which that tool should be used instead.

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 clearly states when to use the tool: to find ongoing items with a sale date set. It also explicitly states when not to use it (when there are no ongoing items, resulting in an empty list) and directs the agent to the alternative tool auction_case_search.

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

case_search_captchaA

[1단계] 나의 사건검색을 시작하고 CAPTCHA 이미지를 반환한다.

CAPTCHA 는 자동 인식할 수 없으므로, 반환된 이미지 파일을 사용자가 직접 읽고 case_search_submit 으로 값을 전달해야 한다.

Args: court: 법원명 (예: '여수시법원'). 사이트 select 옵션과 정확히 일치해야 함. case_no: 사건번호 (예: '25자10010'). 사건구분은 여기서 자동 파싱. party_name: 당사자명. ssgo 사건검색은 당사자명이 필수입력이다.

Returns: session_id 와 captcha_image_path 를 담은 객체.

ParametersJSON Schema
NameRequiredDescriptionDefault
courtYes
case_noYes
party_nameYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description discloses key behavior: it returns a CAPTCHA image and creates a session_id. It also notes that automatic recognition is not feasible. However, it does not mention if the operation is read-only or any side effects beyond session creation.

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 step label, clear sections for arguments and returns. A bit verbose with Korean but front-loads the purpose efficiently. Minor redundancy in repeating parameter names could be condensed.

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 no output schema, the description adequately explains the return object (session_id, captcha_image_path). It covers the tool's role in the workflow and parameter requirements. Missing error cases or prerequisites, but overall sufficient for a tool with three required params.

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 the description must provide meaning. It does so with examples ('여수시법원', '25자10010'), constraints (exact match for court, required for party_name in ssgo), and explanations (case_no auto-parses case type). This adds critical value 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 the tool's specific role: step 1 of a case search, returning a CAPTCHA image. It explicitly distinguishes from the sibling tool 'case_search_submit' which handles submission.

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 explains the sequential dependency with 'case_search_submit' and warns that CAPTCHA cannot be auto-recognized, guiding the user to read the image. It does not explicitly state when not to use, but the context implies it's only for initializing a search.

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

case_search_submitA

[2단계] CAPTCHA 값을 입력해 사건 조회를 완료한다.

Args: session_id: case_search_captcha 가 반환한 세션 ID. captcha_text: 사용자가 이미지에서 읽은 문자.

Returns: 사건 기본정보와 진행/기일 내역.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
captcha_textYes

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the full burden. It describes input and output but does not disclose whether the operation is read-only, any potential side effects, or authentication requirements. Basic transparency is present but insufficient for a tool with no annotations.

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 with two sentences plus an args/returns section. It efficiently conveys the purpose, parameters, and return without 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 tool's low complexity (2 simple parameters, no output schema), the description fully covers the essential information: what it does, how to use it, and what it returns. No gaps are apparent.

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?

With 0% schema description coverage, the description adds crucial meaning: it explains that session_id comes from case_search_captcha and captcha_text is user-typed characters. This compensates well for the lack of schema descriptions.

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 completes a case search after CAPTCHA input, referencing the preceding tool (case_search_captcha) and specifying the return type. It distinguishes itself from siblings by being the second step in a two-phase process.

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 explicitly marks this as step 2, implying it should follow case_search_captcha. It provides clear context but does not explicitly state when not to use it or mention alternatives, which would be beneficial.

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. 5 tool updatesv0.1.0
    • First observedauction_case_search
    • First observedauction_item_detail
    • First observedauction_search_by_case
    • First observedcase_search_captcha
    • First observedcase_search_submit

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation3/5

The auction-related tools (auction_case_search, auction_search_by_case, auction_item_detail) have overlapping purposes, though descriptions try to differentiate. The captcha tools are distinct but add complexity. An agent may confuse auction_case_search and auction_search_by_case.

Naming Consistency4/5

All tool names use snake_case and are descriptive, but the order of terms varies (e.g., auction_case_search vs. case_search_captcha). This is mostly consistent with minor deviations.

Tool Count4/5

5 tools is a reasonable scope for a legal case and auction search server. It covers the core functionality without being excessive, though a few more search options could be added.

Completeness3/5

The tool set covers auction case and item details, plus a captcha-based case search. Missing are broader search capabilities (e.g., by date, party name without captcha) and update/delete operations, which are likely out of scope but still notable gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables automated collection of apartment listing data from Naver Real Estate using Playwright browser automation with passive network response capture. Provides MCP tools to search complexes, resolve property identifiers, and extract normalized listing information including duplicate properties.
    -
  • F
    license
    A
    quality
    D
    maintenance
    Enables searching and retrieving Korean Supreme Court precedents from the law.go.kr Open API, with support for keyword search and detailed judgment text.
    2
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables 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
    -