Skip to content

Releases: lapiogga/caseLaw

v0.11.0 — Outcome Prediction (4 prediction tools)

07 May 16:56

Choose a tag to compare

v0.11.0 — Outcome Prediction (4 prediction tools)

법제처 OpenAPI 기반 한국 판례·법령 MCP 서버. 활성 MCP Tool 52종, 단위 테스트 352 PASS, 자동 생성 문서 4종 + 결과 예측 4종.

v0.11.0 의 변화 한 줄: 변호사가 의뢰인에게 가장 먼저 받는 질문 3종("이길 수 있나요?·얼마 받을까요?·얼마나 걸릴까요?")에 유사 판례 N건의 통계로 답하는 도구 4종 추가.

추가된 4 Tool

Tool 입력 출력
predict_sentencing 형사 검색 키워드 + 법원·기간·표본수 양형 분포 (벌금/집유/실형/무죄/분류불가 비율) + 표본 N + 라벨링 한계
predict_civil_outcome 민사 검색 키워드 인용/일부/기각/취하/분류불가 비율 + 인정 금액 통계 (평균·중앙값·min·max)
estimate_case_duration 사건유형(민사/형사) + 심급(1·2·3) + 복잡도(단순/보통/복잡) 평균 소요 개월 + 95% CI (사법연감 시드)
dispute_resolution_options 분쟁유형 + 청구금액 + 우선순위(관계/속도/비용) 소송 vs 조정 vs 화해 vs 중재 4-옵션 매트릭스 + 본건 추천

사용 예시

자연어 채팅 (Claude Desktop · Gemini CLI):

음주운전 양형 분포 알려줘. caselaw 의 predict_sentencing 으로
대법원 판례 30건 표본으로.

→ 형사 양형 분포 표 + 의뢰인 보고 권장 표현 + 가중·감경 요인 안내 회수.

대여금 5천만원 청구. 6개월 안에 끝내고 싶고 상대방과 관계는
유지하고 싶어. caselaw 의 dispute_resolution_options 추천?

→ 화해(settlement) 우선 추천 + 매트릭스 + 적합/비적합 케이스 회수.

표본 크기 가드 (필수 정책)

  • N < 5ValueError 즉시 거부 ("표본 부족, 키워드 넓히세요")
  • 5 ≤ N < 10 → "참고용 그림자 데이터" 강한 경고 (결과는 표시)
  • 10 ≤ N < 30 → "신뢰구간 넓을 수 있음" 경고
  • N ≥ 30 → 정상

의뢰인에게 "통계지 보장이 아님" 을 명확히 전달하기 위한 면책 블록 자동 부착.

라벨링 휴리스틱 (정직한 한계 보고)

  • 민사: granted / partial / dismissed / withdrawn / unknown
  • 형사: acquitted / suspended_sentence / fine / imprisonment / unknown
  • 사건명만으로는 양형 분류가 어려운 경우 unknown 카테고리에 솔직 모음
  • use_full_text=True 옵션으로 본문(판시사항)까지 라벨링 → 정확도 ↑ (느림, 캐시 활용)

drafting 모듈과 시너지

predict_sentencing 결과 → draft_criminal_defense 의 양형 의견 입력
predict_civil_outcome 결과 → draft_legal_opinion 의 결론 입력
estimate_case_durationdraft_civil_complaint 작성 시 의뢰인 기대 관리

검색 → 예측 → 문서 작성 한 줄 워크플로 완성.

통계 변화 (v0.10.0 → v0.11.0)

항목 v0.10.0 v0.11.0 차이
활성 MCP Tool 48 52 +4 (prediction)
단위 테스트 314 PASS 352 PASS +38 (prediction 모듈)
Python 모듈 27 32 +5 (tools/prediction/ 5 파일)
패키지 시드 데이터 citizen_data citizen_data + prediction_data +1 (사법연감 베이스라인)
새 의존성 starlette · uvicorn (변경 없음) 0

Out of Scope (Phase 15+ 후보)

  • ML 라벨링 (현재 휴리스틱). 변호사 검수 데이터로 학습 시 정확도 ↑
  • 재판부별 경향 분석 (특정 판사·재판부의 판단 경향)
  • 실시간 신판례 알림 (특정 키워드 새 판례 등록 시 푸시)
  • 외국 판례 통합 (CourtListener, Find Case Law UK 등)
  • 인용 그래프 (referenced_by 역검색, 인용 깊이별 정렬)
  • opposing counsel strategy predict (상대방 변호사 예상 전략)

동결 코드 영역 (v0.11.0)

  • src/caselaw_mcp/server.py52 tool signature
  • src/caselaw_mcp/tools/prediction/labels.py 의 5×5 라벨 universe (CIVIL_LABELS · SENTENCING_LABELS) — 추가만 가능, 기존 라벨 제거·rename 금지
  • src/caselaw_mcp/prediction_data/duration_baselines.json 의 18 baseline (추가만 가능)
  • 모든 predict_* 출력 dict 의 키 (doc_type·sample_size·label_distribution·markdown 필수)
  • DISCLAIMER_MARKER 문자열 (회귀 가드 grep 대상)
  • 표본 크기 가드 임계값 (5/10/30) — 변경 시 변호사 가이드 동시 갱신

설치

PyPI (자동 — Trusted Publishing)

uvx caselaw-mcp@0.11.0 --help

본 Release 가 published 상태로 전환되면 .github/workflows/publish.yml 이 자동 실행되어 PyPI 업로드.

로컬 클론

git clone https://github.com/lapiogga/caseLaw.git
cd caseLaw
git checkout v0.11.0
uv sync

비기술자 ZIP installer

CaseLaw-installer-v0.11.0.zip (PyPI latest 자동 받음, 사용자 무액션 v0.10.0 → v0.11.0 자동 업그레이드)

v0.10.0 — Practitioner Doc Drafting (4 doc types)

07 May 16:33

Choose a tag to compare

v0.10.0 — Practitioner Doc Drafting

법제처 OpenAPI 기반 한국 판례·법령 MCP 서버. 활성 MCP Tool 48종, 단위 테스트 314 PASS, 자동 생성 문서 4종, 5언어(ko/en/zh/vi/ja).

v0.10.0 의 변화 한 줄: 변호사 트랙이 검색·분석에서 멈추지 않고 소장·의견서·준비서면·변호인 의견서까지 한국 표준 양식 마크다운 초안을 자동 생성.

추가된 4 Tool (한국 변호사 실무 4대 문서)

Tool 용도 출력
draft_civil_complaint 민사 소장 청구취지 (지연손해금 옵션) / 청구원인 6하 / 갑호증 자동 번호 / 적용법조 / 관련 판례 / 부속서류
draft_legal_opinion 법률의견서 사실관계 / 검토 쟁점 / 관련 법령 / 판례 분석 / 결론 / 권장 다음 단계
draft_preparatory_brief 준비서면 우리 입장 / 상대방 주장 / 반박 / 적용법조 / 관련 판례 / 추가 입증방법
draft_criminal_defense 형사 변호인 의견서 피고인 인적사항 / 공소사실 / 변호인 의견 / 양형 감경 / 요청 처분 / 유사 판례

기존 compare_precedents + format_citation + analyze_precedent_trend 의 출력을 입력으로 받아 한국 표준 양식 마크다운에 채우는 순수 조합 작업. 새 의존성 0.

면책 정책 (보안 책임)

모든 draft_* 출력 끝에 면책 블록 자동 부착:

  • 변호사 모드 (user_mode="lawyer"): "법원 제출 전 변호사 검토 필수" 단문
  • 일반인 모드 (user_mode="citizen"): 강한 경고 + 무료 상담 안내 (대한법률구조공단 132 / 여성긴급전화 1366)
  • 회귀 가드: 4 doc type parametrized 단위 테스트 — DISCLAIMER_MARKER 누락 시 fail

사용 예시 (Claude Desktop · Gemini CLI · ChatGPT)

자연어 채팅:

대여금 5천만 원, 원고 박원고 (서울 강남구), 피고 김피고 (서울 송파구).
2022. 3. 15. 대여, 변제기 2023. 3. 14., 미상환. 차용증·통장사본 첨부.
caselaw 의 draft_civil_complaint 로 소장 초안 만들어 줘.

→ 한국 민사소송 표준 마크다운 (청구취지·청구원인·갑호증 정렬·면책 부착) 즉시 회수.

입력 검증 (시스템 경계 패턴)

  • validate_party: name 필수, 빈 문자열·non-dict 거부
  • validate_amount: 정수 KRW 만 허용, 음수·bool·float 거부
  • validate_non_empty_list: 빈 리스트 거부 (사실관계·증거·쟁점 등)
  • 모든 거부는 ValueError 즉시 발생

통계 변화 (v0.9.0 → v0.10.0)

항목 v0.9.0 v0.10.0 차이
활성 MCP Tool 44 48 +4 (drafting)
단위 테스트 267 PASS 314 PASS +47 (drafting 모듈)
Python 모듈 22 27 +5 (tools/drafting/ 5 파일)
자동 생성 문서 0 4 신규 트랙
새 의존성 starlette · uvicorn (변경 없음) 0

Out of Scope (Phase 14+ 후보)

  • PDF/DOCX 직접 생성 — 현재 마크다운만 출력, 변환은 사용자 측 (워드/한글 복붙 패턴)
  • 자동 한자 병기 — 한글 우선, 한자 OCR 필요 시 별도 도구
  • 대법원 전자소송 API 연동 — 자동 제출은 별도 인증 부담
  • finalize_draft 워크플로 — 검토→확정→pdf 변환 체인
  • 영문 문서 생성 — 외국 로펌 협업용 (Phase 15+ 후보)
  • OAuth 2.1 Resource Server — ChatGPT 직결 (Phase 12 미해결, v0.11+ 검토)

동결 코드 영역 (v0.10.0)

이후 변경 시 후방호환 책임:

  • src/caselaw_mcp/server.py48 tool signature (4 drafting 추가)
  • src/caselaw_mcp/tools/drafting/templates.pyDISCLAIMER_MARKER 문자열 (회귀 가드 grep 대상)
  • 모든 draft_* 의 output dict 키 (doc_type·markdown 필수, 그 외 메타)
  • user_mode 파라미터 두 값 ("lawyer", "citizen") 의미
  • HTTP 엔드포인트 기본값 127.0.0.1:8000/mcp (변경 시 가이드 동시 갱신)
  • CASELAW_AUTH_TOKEN 환경변수 + Authorization: Bearer 검증 동작

설치

PyPI (자동 — Trusted Publishing)

uvx caselaw-mcp@0.10.0 --help

본 Release 가 published 상태로 전환되면 .github/workflows/publish.yml 이 자동 실행되어 PyPI 업로드. 토큰 노출 0 (OIDC).

로컬 클론

git clone https://github.com/lapiogga/caseLaw.git
cd caseLaw
git checkout v0.10.0
uv sync

비기술자 ZIP installer

CaseLaw-installer-v0.10.0.zip (본 Release 첨부 — setup-for-novice.ps1 가 PyPI latest 자동 받음)

자세한 등록 절차는 클라이언트별 가이드 참조 (Claude Desktop · Gemini CLI · Cursor · VS Code · ChatGPT).

v0.9.0 — Multi-Client Edition (Claude · Gemini CLI · ChatGPT)

07 May 15:22

Choose a tag to compare

v0.9.0 — Multi-Client Edition

법제처 OpenAPI 기반 한국 판례·법령 MCP 서버. 활성 MCP Tool 44종, 단위 테스트 267 PASS, 5언어(ko/en/zh/vi/ja).

v0.9.0의 변화 한 줄: Claude Desktop 외 Gemini CLI + (HTTP transport 통한) ChatGPT 등 원격 클라이언트도 같은 서버를 공유.

지원 클라이언트 매트릭스

클라이언트 Transport 가이드 추가 인프라
Claude Desktop stdio INSTALL.md · 원클릭 scripts/install-caselaw-mcp.ps1 없음
Gemini CLI (Google 공식) stdio INSTALL_GEMINI.md · 원클릭 scripts/install-caselaw-gemini.ps1 없음
Cursor / VS Code stdio INSTALL.md §2~3 없음
ChatGPT (Apps SDK / Developer Mode) streamable-http INSTALL_CHATGPT.md Cloudflare Tunnel + (현재 베타) OAuth 2.1

핵심 추가

1. HTTP transport 모드

caselaw-mcp --transport http --host 0.0.0.0 --port 8000
  • FastMCP stateless_http=True, json_response=True (Cloudflare Tunnel · 원격 클라이언트 호환)
  • Starlette + uvicorn 위에 mcp.streamable_http_app() 마운트
  • 기본 endpoint: http://127.0.0.1:8000/mcp

2. Bearer 토큰 인증

export CASELAW_AUTH_TOKEN="$(python -c 'import secrets; print(secrets.token_urlsafe(32))')"
  • CASELAW_AUTH_TOKEN 환경변수 설정 시 모든 HTTP 요청에 Authorization: Bearer 검증
  • secrets.compare_digest 로 타이밍 공격 방어
  • 미설정 시 인증 비활성 (로컬 신뢰 네트워크 한정)
  • 401 응답에 WWW-Authenticate: Bearer 헤더

3. 가이드 + 원클릭 등록 스크립트

  • docs/INSTALL_GEMINI.mdgemini mcp add 명령 + settings.json 직접 편집 두 경로
  • docs/INSTALL_CHATGPT.md — Cloudflare Tunnel(권장, 무료) / ngrok(대안) + Developer Mode 커넥터 등록 절차
  • scripts/install-caselaw-gemini.ps1-UseUvx 스위치 (PyPI / 로컬 클론 자동 분기)

클라이언트별 라이브 검증 결과

Claude Desktop ✅

  • 음주운전 대법원 판례 5건 자연어 검색 + 사건번호 표 정리 (v0.3.0 시점부터 통과 유지)

Gemini CLI ✅ — v0.9.0 신규

  • gemini mcp add 등록 → OAuth Google 인증 → 헤드리스 모드(gemini -p ... --yolo)에서 ping + search_precedent 정상 호출
  • 사건번호 5건 (2025도15970·6752·8137·9717·7665) 회수 — Claude Desktop 결과와 일치

HTTP + Bearer 인증 ✅

  • 127.0.0.1:18765 라이브 boot
  • 토큰 누락 → HTTP 401 / 잘못된 토큰 → HTTP 401 / 정상 토큰 → HTTP 200 + initialize 응답
  • 외부 cloudflared 임시 도메인 통한 실제 인터넷 호출도 동일 결과

통계

항목 v0.8.0 v0.9.0 차이
활성 MCP Tool 44 44 동일 (transport 추가만)
단위 테스트 250 PASS 267 PASS +17 (auth 11 + transport_cli 6)
지원 transport stdio stdio + streamable-http +1
지원 클라이언트 Claude Desktop · Cursor · VS Code + Gemini CLI · ChatGPT +2
Python 모듈 20 22 (auth.py 추가) +1 (config 갱신)

Bug Fixes

  • fix(auth): .envCASELAW_AUTH_TOKEN 이 인증 미들웨어에 도달 못 하는 silent bypass 결함 해소. pydantic-settings 가 .env 를 자기 Settings 객체에만 로드하고 os.environ 에는 주입하지 않아, os.environ 직접 호출이 항상 None 을 리턴 → 인증이 비활성 모드로 fallback 되던 문제. Settings 기반으로 일관 경로 변경. (26bed9c)
  • build(sdist): GitHub Release sdist 가 promo 영상까지 포함해 62MB 로 비대해지던 문제 해소 (157KB 로 정상화). (94c89b2)
  • style: docs/promo/automation/capture_pages.py ruff format — CI 빨강 해소. (2a438cc)

Out of Scope (Phase 13+ 후보)

  • OAuth 2.1 Resource Server — ChatGPT custom MCP 가 Bearer 직접 인증 대신 OAuth 2.1 + Dynamic Client Registration 만 정식 지원 (OpenAI Apps SDK Auth). Auth0/Stytch 같은 IdP 와의 통합이 필요한 별도 큰 작업이라 v0.9.0 에는 미포함. v0.9.0 은 ChatGPT 직결 시 "인증 없음" 임시 검증만 가능.
  • 외국 판례 (CourtListener, Case Law Access Project) 통합
  • Vector DB 의미 검색
  • open-webui 자체 호스팅 가이드 (Chrome 웹 UI 대안)

동결 코드 영역 (v0.9.0)

이후 변경 시 후방호환 책임:

  • src/caselaw_mcp/server.py 의 44 tool signature
  • src/caselaw_mcp/server.py 의 CLI flag 4 (--transport, --host, --port, --path) — 인자 이름·기본값
  • src/caselaw_mcp/auth.pyCASELAW_AUTH_TOKEN 환경변수 + Authorization: Bearer 검증 동작
  • src/caselaw_mcp/parsers.py 의 응답 키 매핑 (영문 snake_case)
  • client.py 의 OC 환경변수·캐시 경로
  • tools/citizen/{mode,locale}.py 의 파일 기반 상태 (~/.caselaw_mcp/{mode,locale}.json)
  • citizen_data/*.json 시드 (추가만, 기존 ID 변경·제거 금지)
  • docs/API_REFERENCE.md 에 명시된 입출력 스키마
  • HTTP 엔드포인트 기본값 127.0.0.1:8000/mcp (변경 시 가이드 동시 갱신)

설치

한 줄 설치 (uvx, PyPI)

주의: PyPI v0.9.0 배포는 본 Release 와 별도. 미배포 시 uvx caselaw-mcp 가 v0.8.0 받음. 첨부 wheel 직접 사용 권장.

uvx --from caselaw_mcp-0.9.0-py3-none-any.whl caselaw-mcp --help

로컬 클론

git clone https://github.com/lapiogga/caseLaw.git
cd caseLaw
git checkout v0.9.0
uv sync

자세한 등록 절차는 클라이언트별 가이드 참조.

v0.8.0 — Tri-Track (변호사 + 일반인 + 외국인)

05 May 06:05

Choose a tag to compare

v0.8.0 — Tri-Track 통합 (변호사 + 일반인 + 외국인)

법제처 OpenAPI 기반 한국 판례·법령 MCP 서버. 활성 MCP Tool 44종, 단위 테스트 250 PASS, 5언어(ko/en/zh/vi/ja).

트랙별 도달 상태

트랙 1 — 변호사·로펌 (27 tool)

판례·법령·헌재·해석례·심판례·위원회 12·특별심판 4·중앙부처 39·법령용어

  • helper (analyze_trend, format_citation, compare_precedents)
  • citation 역검색 (find_precedent_by_citation)
  • 첨부 다운로드 (download_attachment, extract_attachment_links)

트랙 2 — 일반인 사전진단 (12 tool)

  • triage_dispute (50종 분쟁 카테고리)
  • check_statute_of_limitations (30종 시효, 5단계 상태)
  • estimate_litigation_cost (인지법 4구간 + 변호사비 9종)
  • interview_facts (6턴 인터뷰)
  • evaluate_case_strength (라벨 9종)
  • recommend_pro_bono (전국 14 + 지역 14 + KLAC 6 + 도메인특화)
  • prepare_consultation_kit (13섹션 마크다운, 변호사 질문 10개 자동)
  • set_user_mode / get_disclaimer / triage_dispute

트랙 3 — 외국인 사용자 (5 tool)

  • set/get_user_locale (ko/en/zh/vi/ja)
  • get_disclaimer_localized / list_disclaimers_localized
  • get_foreigner_resources — 외국인종합안내센터 1345·이주여성긴급전화 1577-1366·다누리콜센터 1577-5432·이주민건강협회

통계

항목
MCP Tools 44
Python 모듈 20
단위 테스트 250 PASS
통합 smoke 19 시나리오
시드 데이터 JSON 6 (categories 50 + limitations 30 + court_fees 4구간 + pro_bono 30+ + interview 6턴 + i18n 5언어)
면책 문구 30개 (6종 × 5언어)
한국어 별칭 200+
법제처 OpenAPI target 60+

설치 (Windows + Claude Desktop)

git clone https://github.com/lapiogga/caseLaw.git
cd caseLaw
uv sync --extra dev
"CASELAW_OC=발급받은_ID" | Out-File -Encoding ASCII .env
.\scripts\install-caselaw-mcp.ps1
# Claude Desktop 재시작 → "caselaw 로 ping 해줘"

상세: docs/INSTALL.md, README