Skip to main content
Glama
LimEulYoung

legal-search-mcp

by LimEulYoung

sentence_statistics

Read-onlyIdempotent

Find Korean sentencing statistics for a criminal charge by entering the charge name or ID. Get first-instance sentence distributions, averages, and comparison cases to estimate a likely sentence range or support sentencing arguments.

Instructions

양형 선고 통계 — charges 또는 charge_id 중 하나는 필수. ① charges 하나로 정제된 죄명 후보(charge_id+표본수)를 반환(status=candidates), ② 후보에서 고른 charge_id 하나를 주면 그 죄명 하나만 유죄인 피고인의 1심 선고 분포(표본 30↑=형종별 평균·표준편차·집유율 + 11분위 비교판례 / 미만=개별 사례 그리드). 죄명이 이미 특정되면 곧바로 통계가 옵니다. 형량 전망·구형/양형 근거·자기 사건 위치를 가늠할 때 결론 전에 호출(compute_sentencing_range 공식 '범위'를 실데이터로 보완). status=candidates는 통계가 아니라 선택지 — 사안에 맞는 charge_id 하나로 재호출. 죄명·charge_id는 한 번에 하나씩. 경합 사안의 죄명별 단독 분포를 합산·평균·1.5배해 경합범 분포로 만들지 마세요. 형법 38조는 가장 중한 죄 장기(벌금은 다액)의 1/2까지 가중하되 각 죄 장기·다액 합계를 넘지 못하게 하는 처단형 상한이지 통계 결합식이 아닙니다. status=low_n_grid는 단독 개별 사례라 일반화 금지. Args: charges=죄명 텍스트 하나(후보 검색용; 구어 '보이스피싱·몰카·마약'·카테고리 '성범죄'·법률명 '도로교통법위반'도 인식). charge_id=후보에서 고른 pool id 하나(int; 통계 조회용, charges와 택일). year_from/year_to=판결 연도 범위. reference_year=비교 판례·그리드 기준 연도(가까운 사건 우선; None=최근). 비교 판례·그리드의 url만 인용 링크로, 집계 분포 수치는 링크 없이 제시.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chargesNo
year_toNo
charge_idNo
year_fromNo
reference_yearNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark the tool read-only and idempotent, so the description adds substantial behavior beyond them: sample-size-dependent output (30+ aggregated stats vs status=low_n_grid individual cases), status values, the prohibition on combining charge distributions, the Criminal Act 38 caveat, and the citation-link rule. This goes well beyond what annotations provide.

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 long and dense, but it is well structured with numbered modes, a usage-context sentence, warnings, and an Args section. Some sentences, such as the Criminal Act 38 explanation, are verbose, but they carry necessary misuse warnings. It is front-loaded with the core purpose and required-parameter condition, though it could be tightened.

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?

With 5 parameters, 0% schema coverage, and an output schema present, the description covers all essential operational aspects: required parameter choice, mode switching, sample-size thresholds, output statuses, and output citation rules. Nothing critical an agent needs to call it correctly 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?

Schema coverage is 0%, so the description is the only source of parameter meaning. It explains charges (candidate search, accepts colloquial/category/statute names), charge_id (pool id, mutually exclusive with charges), year_from/year_to (judgment year range), and reference_year (base year, None=recent). This fully compensates for the schema gap.

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 opens with '양형 선고 통계' and immediately explains the two-mode flow: charges returns charge candidates (status=candidates) and charge_id returns sentencing distribution for a single charge. It explicitly distinguishes itself from compute_sentencing_range by noting it complements that formula with real data. The verb+resource is specific and the two modes are clearly differentiated.

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?

It gives explicit when-to-use context: '형량 전망·구형/양형 근거·자기 사건 위치를 가늠할 때 결론 전에 호출' and names the alternative compute_sentencing_range as being complemented. It also provides when-not guidance: candidates are not statistics, one charge at a time, and do not combine distributions across charges. This is strong usage guidance even though it does not explicitly mention precedent_search or statute_lookup.

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