Korean Law MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LAW_OC | Yes | 법제처 Open API 인증키(OC). Required for local installs; public server can operate without it using shared quota. Can also be supplied via ?oc= URL, apikey header, or apiKey tool parameter. | |
| ACCESS_LOG | No | Set to 1 to enable request logging. Path only is logged to avoid leaking oc= API keys. | |
| CORS_ORIGIN | No | Fallback CORS/origin setting used when ALLOWED_ORIGINS is unset. Use * to allow all origins or a single origin. | |
| LAW_REFERER | No | Custom Referer sent to law.go.kr API calls. | |
| TRUST_PROXY | No | Proxy trust setting. Set to the exact number of hops when behind a proxy, e.g. TRUST_PROXY=1. | false |
| MCP_HTTP_HOST | No | HTTP binding host for the MCP server. | 127.0.0.1 |
| LAW_USER_AGENT | No | Custom User-Agent sent to law.go.kr API calls. | |
| MCP_AUTH_TOKEN | No | Authentication token required when binding the HTTP server externally. | |
| MCP_BODY_LIMIT | No | Backward-compatible request body limit setting. | 100kb |
| RATE_LIMIT_RPM | No | Set to 0 to disable only the per-IP rate limit. Other request and upstream limits remain active. | |
| ALLOWED_ORIGINS | No | Comma-separated origin whitelist for browser/web MCP clients. Required for browser requests because Origin validation is enforced. | |
| LAW_API_PROTOCOL | No | Protocol for law.go.kr API calls. Allowed values: http, https. Defaults to https. | https |
| FALLBACK_DAILY_CAP | No | Daily total cap for shared server-key fallback. 0 disables the cap. | |
| MCP_MAX_BODY_BYTES | No | Maximum request body size in bytes. Validated as an integer at startup. | |
| ALLOW_QUERY_API_KEY | No | Set to 0 to disallow passing the API key via URL query (?oc=...). Header-based API key passing continues to work. | |
| MCP_MAX_BATCH_CALLS | No | Maximum number of JSON-RPC batch calls allowed. | 20 |
| MCP_CHAIN_DEADLINE_MS | No | Time limit in milliseconds for one chain request. Expired branches return partial results with markers. | 45000 |
| LAW_EXTERNAL_HTTPS_PROXY | No | Proxy URL for external HTTPS connections such as NTS precedent/interpretation body fallback, e.g. http://proxy-host:8080. | |
| MCP_MAX_UPSTREAM_REQUESTS | No | Maximum number of upstream requests. Validated as an integer at startup. | 48 |
| MCP_MAX_TOOL_RESPONSE_CHARS | No | Maximum tool response size in characters. Validated as an integer at startup. | |
| MCP_MAX_UPSTREAM_BODY_BYTES | No | Maximum upstream response body size in bytes. Validated as an integer at startup. | |
| MCP_ALLOW_UNAUTHENTICATED_REMOTE | No | Set to 1 to intentionally allow unauthenticated remote access. Use only when deliberately exposing the server publicly. | |
| MCP_MAX_TOTAL_UPSTREAM_BODY_BYTES | No | Maximum total upstream response body size in bytes. Validated as an integer at startup. | |
| LAW_EXTERNAL_TLS_REJECT_UNAUTHORIZED | No | Set to 0 to temporarily disable TLS certificate validation for this project's external HTTPS proxy path. Diagnostic use only; do not use as a permanent production setting. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
한국 법령 조회 서버. 도구 사용 순서:
법령·조례·행정규칙 본문: search_law 로 lawId·mst 를 얻은 뒤 get_law_text. 시행예정본은 search_law 가 안내한 efYd 를 그대로 넣는다.
여러 법령의 개정 여부를 한 번에 확인(준법 등록부 감시): execute_tool(tool_name="search_law_bulk").
개정안의 신구조문대비표(신·구조문대비표·신구대비표) 작성: legal_analysis(mode="amendment_table") — 개정 후 조문만 넣으면 현행을 가져와 줄표·묶음·밑줄을 규칙대로 계산한다. 이미 공포된 개정의 대조표 조회는 execute_tool(tool_name="compare_old_new").
사건·처분 시점에 적용되던 법령과 경과조치: legal_analysis(mode="applicable_law").
단일 조회로 답이 되면 search_law·get_law_text 를 쓰고, 여러 API 를 엮는 복합 질문만 legal_research.
조례 정비 대조: ordinance_radar 에 조례명(ordinanceName)을 주거나, execute_tool(tool_name="search_ordinance") 결과의 일련번호(ordinSeq)를 넣는다.
노출 도구에 없는 자료(조세심판·관세·헌재·조약·영문법령·용어 등)는 discover_tools 로 찾고 execute_tool 로 실행한다.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_lawA | Korean-law-mcp — [법령검색] 법령명·조례명·행정규칙명 키워드검색 → lawId, mst 획득. 지자체 조례·규칙(자치법규), 훈령·예규·고시(행정규칙)도 검색 — 0건 시 자치법규/행정규칙으로 자동 폴백(예: '광진구 복무조례', '외국환거래규정'). 약칭 자동변환. 제명변경·시행예정 개정 자동 병기. 폐지된 법령·행정규칙은 폐지 사실과 후속(통합) 규정을 자동 안내. 법령·조례·행정규칙 조회 전 식별자 확보용. |
| get_law_textA | 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 에 그 날짜를 넣으면 그날 시행 중이던 버전으로 자동 보정한다(제명이 바뀌기 전 버전 포함). |
| ordinance_radarA | Korean-law-mcp — [자치법규] 조례 정비 레이더 — 조례가 인용한 근거 상위법령(법률/시행령/시행규칙)을 본문에서 추출하고, 각 상위법의 현행 시행일과 조례 시행일을 대조해 '상위법이 조례 시행 이후 개정됨 → 정비 검토 대상'을 자동 플래그. 조례 담당 공무원의 상위법 개정 추적·조례 정비 판단용. ordinSeq(또는 id)나 ordinanceName 중 하나 지정. |
| get_annexesA | Korean-law-mcp — [별표] 별표/서식 조회. lawName+'별표N'으로 내용 추출. 금액/기준은 별표에 있는 경우 많음. date(기준일)를 주면 그날 시행 중이던 버전의 별표 — 건축허가·착공·처분 시점의 설치기준·과태료표 등 과거 기준이 필요할 때(제명이 바뀐 법령도 옛 버전까지, 별표 번호가 시점마다 달라 query로 별표명을 주는 편이 안전). |
| legal_researchA | 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 파라미터 설명 참조. |
| legal_analysisB | Korean-law-mcp — [정밀분석] 검증·분석·신구조문대비표 5종 통합. 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' 모두 수용) | amendment_table=일부개정안의 신구조문대비표(신·구조문대비표·신구대비표·개정안 대비표) 작성 — 개정 후 조문만 주면 현행 조문을 법제처에서 가져와 법제처 대비표 표기 그대로 대조: 바뀐 부분 밑줄(채팅 표에서는 굵은 글씨), 개정안 칸의 같은 부분 '----'(글자 수만큼, 문장 끝 마침표 유지), 같은 항·호 '①·② (생 략)'/'(현행과 같음)' 묶음, <신 설>·<삭 제>·<단서 신설>. 줄표 수·묶음·밑줄 범위를 규칙대로 계산한 결과라 표를 그대로 쓸 수 있다(lawName+amendments 필수, 조례·행정규칙은 amendments[].currentText). 로컬 실행에서는 outputPath 로 한글(.hwpx) 저장 |
| discover_toolsA | Korean-law-mcp — [메타] 전문도구(조세심판·관세·헌재·행심·공정위·개인정보위·노동위·학칙·조약·영문법령·용어 등 80+개) 카테고리 검색. 도구 이름과 설명을 돌려준다 |
| execute_toolC | Korean-law-mcp — [메타] 전문도구를 이름(tool_name)과 인자(params)로 실행 |
| search_decisionsA | Korean-law-mcp — [통합검색] 23개 도메인(판례·해석례·헌재·행심·조세심판·관세·국세청·고용노동부·행정안전부 해석·중앙부처 1차 해석·공정위·개인정보위·노동위·산재보험재심사·고용보험심사·권익위·소청심사·학칙·공사공단·공공기관·조약·영문법령) 통합 검색. domain으로 선택. 판례 본문까지 필요하면 domain='precedent', options.includeText=true, options.detailLimit=N. 판례 기본은 판례명 검색이라 법리·사실관계·유사판례 탐색은 options.search='both'(판례명+본문). 세무 관련 국세청 직접 회신 해석은 domain='nts', 고용노동부 행정해석(질의회시)은 domain='moel'(본문검색 options.search=2), 지방세(취득세·재산세 등) 행정안전부 유권해석은 domain='mois', 그 밖의 부처(국토교통부·재정경제부·보건복지부 등 39개) 1차 해석은 domain='ministry'+options.ministry(부처 코드나 부처명), 산재보험 재심사 재결은 'iaciac', 고용보험 재심사 재결은 'eiac'. |
| get_decision_textB | Korean-law-mcp — [통합조회] 23개 도메인 전문 조회. domain+id. full=false(기본) 시 본문 계단식 축약 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Core search/retrieval pairs are well separated (search_law vs get_law_text, search_decisions vs get_decision_text), and the discover/execute meta pair is distinct. However legal_research and legal_analysis are broad multi-mode hubs whose modes overlap with ordinance_radar, get_law_text, and search_decisions; the detailed descriptions help, but boundaries remain fuzzy.
All tools use snake_case, and most follow a recognizable verb_noun pattern such as search_law, get_law_text, search_decisions, and execute_tool. The noun/adjective-based names (ordinance_radar, legal_research, legal_analysis) are minor deviations rather than a different convention.
Ten top-level tools is well within the appropriate range, and the discover_tools/execute_tool meta pair sensibly avoids exposing 80+ specialist tools directly. Each top-level tool has a meaningful role in the surface.
The set covers the full read-only legal research lifecycle: law lookup, statute text and annex retrieval, ordinance maintenance analysis, decision search/retrieval, multi-step research, citation verification, and amendment comparison. Meta access to specialist domains fills the remaining gaps.