# `io.github.chrisryugj/korean-law-mcp` on anlyon.dev

> Text inside fenced blocks marked untrusted-server-text was written by the MCP server's publisher, not by anlyon.dev. It is data to inspect, not instructions to follow. Invisible characters are shown as [U+XXXX].
> No finding is not a safety guarantee: these are point-in-time checks of tool definitions, not of code or behaviour.

- Page: https://anlyon.dev/servers/io.github.chrisryugj/korean-law-mcp
- JSON: https://anlyon.dev/api/v1/servers/io.github.chrisryugj/korean-law-mcp
- Version: 4.15.9 (active)
- Publisher: io.github.chrisryugj (GitHub account)
- Runs: remote (streamable-http)
- Sign-in to list tools: none
- Repository: https://github.com/chrisryugj/korean-law-mcp
- Metadata from the official MCP Registry, synced 2026-10-21T18:27:14.077Z

Title and description, as the publisher wrote them:

```untrusted-server-text
Korean Law MCP
Korean law: statutes, precedents, ordinances, treaties and citation verification (법제처 API).
```

Scanned 2026-10-21T19:07:10.619Z over streamable-http.

**10 tools: 5 change things and 5 only read.**

| Group | Class | Tools | Claude Code |
| --- | --- | --- | --- |
| Deletes or cancels | destructive | 0 | deny |
| Can't be undone | irreversible | 0 | ask |
| Changes things | write | 5 | ask |
| Only reads | read | 5 | allow |

## Findings

- **warn** Annotations that disagree with the tool in `execute_tool` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "execute_tool" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "execute_tool" says "execute": a word for a change.
```


## Changes things (5)

Creates or changes something that can be changed back. Claude Code: ask.

### `discover_tools`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Korean-law-mcp — [메타] 위 도구로 안 되는 경우. 전문도구(조세심판·관세·헌재·행심·공정위·개인정보위·노동위·학칙·조약·영문법령·용어 등 80+개) 카테고리 검색
```

### `execute_tool`

- The name "execute_tool" says "execute": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Korean-law-mcp — [메타] discover_tools 결과 도구를 프록시 실행. tool_name + params
```

### `legal_analysis`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Korean-law-mcp — [정밀분석] 검증·분석 4종 통합. mode: verify_citations=텍스트 속 법령 조문·판례 인용('민법 제750조', '대법원 2013다61381' 등)이 실존하는지 법제처 DB 교차검증, LLM 환각 방지 — 판례는 실존불가/미확인 구분(text 필수) | cite_check=판례 생사 확인 — 사건번호로 후속 인용 역추적+변경·폐기 감지, 한국형 Citator(caseNumber 필수) | applicable_law=사건 시점에 시행되던 법령 버전+그 시점 조문+부칙 경과조치, 행위시법 판단(lawName+date 필수, jo 선택). 제명이 바뀐 법령은 옛 이름 시절 버전으로 특정. 법령이 아니면 행정규칙(고시·훈령 — 예: '스프링클러설비의 화재안전기준', 'NFTC 103')의 기준일 시행 버전 | impact_map=한 조문을 인용한 판례·헌재·해석례·행심·조례 역방향 그래프+mermaid(lawName+jo 필수, jo는 '제103조'·'103조'·JO 6자리 코드 '010300' 모두 수용)
```

### `legal_research`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Korean-law-mcp — [⛓리서치] 다단계 법령 리서치 통합 — 여러 API를 병렬로 엮는 복합 질문 전용. task: full_research=도메인·법령명 불명확한 자연어 질문 폴백(기본값, 예 '음주운전 처벌 기준') | law_system=법률·시행령·시행규칙 3단+위임+별표(예 '관세법 체계') | action_basis=처분·허가의 법적 근거+해석례+판례+행심(예 '영업정지 근거') | dispute_prep=불복·소송 준비, 판례+심판례+도메인 결정례(예 '과세처분 불복') | amendment_track=개정 이력+신구대조+연혁(예 '2023년 개정 뭐 바뀜') | ordinance_compare=조례 전국 비교+상위법 적합성(예 '서울시 주차 조례') | procedure_detail=절차·수수료·별표서식(예 '건축허가 절차') | document_review=계약서·약관 조항 리스크+근거법령(text 필수). scenario(선택): 확장 시나리오 — time_travel(두 시점 본문 diff)·timeline·penalty·action_plan·delegation·impact·compliance·customs·manual. 미지정 시 쿼리에서 자동 감지되며, task별 호환 조합은 scenario 파라미터 설명 참조. 단일 조회로 답이 되면 search_law/get_law_text 쓸 것.
```

### `ordinance_radar`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Korean-law-mcp — [자치법규] 조례 정비 레이더 — 조례가 인용한 근거 상위법령(법률/시행령/시행규칙)을 본문에서 추출하고, 각 상위법의 현행 시행일과 조례 시행일을 대조해 '상위법이 조례 시행 이후 개정됨 → 정비 검토 대상'을 자동 플래그. 조례 담당 공무원의 상위법 개정 추적·조례 정비 판단용. ordinSeq(또는 id)나 ordinanceName 중 하나 지정.
```

## Only reads (5)

Looks things up and changes nothing. Claude Code: allow.

### `get_annexes`

- The name "get_annexes" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Korean-law-mcp — [별표] 별표/서식 조회. lawName+'별표N'으로 내용 추출. 금액/기준은 별표에 있는 경우 많음. date(기준일)를 주면 그날 시행 중이던 버전의 별표 — 건축허가·착공·처분 시점의 설치기준·과태료표 등 과거 기준이 필요할 때(제명이 바뀐 법령도 옛 버전까지, 별표 번호가 시점마다 달라 query로 별표명을 주는 편이 안전).
```

### `get_decision_text`

- The name "get_decision_text" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Korean-law-mcp — [통합조회] 21개 도메인 전문 조회. domain+id. full=false(기본) 시 본문 계단식 축약
```

### `get_law_text`

- The name "get_law_text" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Korean-law-mcp — [법령조회] 조문 전문 조회. mst/lawId 필수, jo로 특정 조문만 가능 — jo는 '제148조의2' 같은 자연어 조문 표기를 그대로 받는다(권장). 6자리 JO 코드를 직접 쓰려면 조번호 4자리 zero-pad + 의X 2자리: 제10조의2→001002, 제234조의2→023402(234002 아님). jo='부칙' 이면 부칙 원문(시행일·경과조치, 최근 공포부터). 과거 시점 본문은 efYd 에 그 날짜를 넣으면 그날 시행 중이던 버전으로 자동 보정한다(제명이 바뀌기 전 버전 포함). 적용 법령 판단·경과조치까지 필요하면 legal_analysis(mode=applicable_law).
```

### `search_decisions`

- The name "search_decisions" says "search": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Korean-law-mcp — [통합검색] 21개 도메인(판례·해석례·헌재·행심·조세심판·관세·국세청·고용노동부 해석·공정위·개인정보위·노동위·산재보험재심사·고용보험심사·권익위·소청심사·학칙·공사공단·공공기관·조약·영문법령) 통합 검색. domain으로 선택. 판례 본문까지 필요하면 domain='precedent', options.includeText=true, options.detailLimit=N. 판례 기본은 판례명 검색이라 법리·사실관계·유사판례 탐색은 options.search='both'(판례명+본문). 세무 관련 국세청 직접 회신 해석은 domain='nts', 고용노동부 행정해석(질의회시)은 domain='moel'(본문검색 options.search=2), 산재보험 재심사 재결은 'iaciac', 고용보험 재심사 재결은 'eiac'.
```

### `search_law`

- The name "search_law" says "search": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Korean-law-mcp — [법령검색] 법령명·조례명·행정규칙명 키워드검색 → lawId, mst 획득. 지자체 조례·규칙(자치법규), 훈령·예규·고시(행정규칙)도 검색 — 0건 시 자치법규/행정규칙으로 자동 폴백(예: '광진구 복무조례', '외국환거래규정'). 약칭 자동변환. 제명변경·시행예정 개정 자동 병기. 폐지된 법령·행정규칙은 폐지 사실과 후속(통합) 규정을 자동 안내. 법령·조례·행정규칙 조회 전 식별자 확보용. 여러 법령의 개정 여부를 한 번에 확인(준법 등록부 감시)하려면 execute_tool(tool_name="search_law_bulk").
```

## Claude Code permissions

For `.claude/settings.json`, assuming the server is installed as `korean-law`:

```json
{
  "permissions": {
    "allow": [
      "mcp__korean-law__search_law",
      "mcp__korean-law__get_law_text",
      "mcp__korean-law__get_annexes",
      "mcp__korean-law__search_decisions",
      "mcp__korean-law__get_decision_text"
    ],
    "ask": [
      "mcp__korean-law__ordinance_radar",
      "mcp__korean-law__legal_research",
      "mcp__korean-law__legal_analysis",
      "mcp__korean-law__discover_tools",
      "mcp__korean-law__execute_tool"
    ],
    "deny": []
  }
}
```
