Skip to main content
Glama

law_article

Read-onlyIdempotent

Get statute text as in force on a date, with optional Act → Decree → Rule chain. 조문 원문(기준일 시행본)과 3단 위임.

Instructions

Get statute text as in force on a date, with optional Act → Decree → Rule chain. 조문 원문(기준일 시행본)과 3단 위임.

사실관계에 사업연도·귀속연도·과세기간이 있으면 as_of에 그 기간 말일을 넣는다(생략하면 오늘 시행본). 언제: 세액·요건 판단처럼 사실 발생 시점의 법령이 필요할 때. 해석·판례는 회신 당시 법 기준이므로 이 도구로 적용 연도 조문과 대조. 조문 번호를 모르면 find_article로 먼저 찾는다. 긴 조문(4,000자 초과)은 keyword(키워드가 든 항만) 또는 paragraph(특정 항)로 필요한 항만 조회 — 둘 다 없으면 항 목록과 안내 반환. 결과의 '연결'에 상위·하위 조문 위치가 있으니 그 조를 law_article로 이어서 조회. 반환: {법령, 조, 적용 시행일, 적용 기준일, 본문, 링크, 반환 범위, 연결, 읽기 주의(돌려준 본문의 단서·우선·제외 구절 원문, 최대 3개), 기준일 안내?, 최근 개정?, 다시 조회?} 또는 {위임체계: [{단계, 법령, 조, 적용 시행일, 본문}]} (+ 기본통칙·집행기준). 읽기 전용. 법제처 공식 API — 환경변수 LAW_OC(무료) 필요, 없으면 발급 안내 오류.

Input Schema

NameRequiredDescriptionDefault
langNoOutput language. 'en': English keys and labels, official English texts where available (tax treaties, statutes), other Korean texts returned with a host_ai_translate instruction (your AI translates); Solar machine translation only when UPSTAGE_API_KEY or on-prem Solar is configured. 기본 'ko'ko
as_ofNo기준일 YYYYMMDD. 사실관계에 사업연도·귀속연도·과세기간이 있으면 그 기간 말일을 넣는다(생략하면 오늘 시행본). 거래처·거래일처럼 특정 날짜가 필요하면 그 날짜
articleYes조문 번호. '제52조' 또는 '제28조의2' 형식. '제52조 제1항'처럼 항을 함께 줄 수 있음
keywordNo키워드가 들어간 항(①②…/제1항…)만 반환. 긴 조문(4,000자 초과)에서 항 번호 모를 때 사용
law_nameYes법령 정식 명칭. 예: '법인세법', '법인세법 시행령', '법인세법 시행규칙'
paragraphNo원하는 항만 지정. '①'·'1'·'제1항'·'②' 등. 호 지정: '②2호'·'제2항 제2호', 여러 항: '2,3'·'②,③'·'제2항, 제3항'. 그 항만 반환
with_rulesNoTrue면 그 조의 기본통칙 전문과 집행기준 항목도 함께
with_delegationNoTrue면 법률 조문에 연결된 시행령·시행규칙 위임 조문 전부(3단)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.11.1
    • changedInput schema / properties / as_of / description
      Previous value: -"기준일 YYYYMMDD. 그날 시행 중이던 연혁본. 생략하면 오늘"New value: +"기준일 YYYYMMDD. 사실관계에 사업연도·귀속연도·과세기간이 있으면 그 기간 말일을 넣는다(생략하면 오늘 시행본). 거래처·거래일처럼 특정 날짜가 필요하면 그 날짜"
  2. Changed1 schema field changedv0.11.0
    • changedInput schema / properties / paragraph / description
      Previous value: -"원하는 항만 지정. '①'·'1'·'제1항'·'②' 등. 그 항만 반환"New value: +"원하는 항만 지정. '①'·'1'·'제1항'·'②' 등. 호 지정: '②2호'·'제2항 제2호', 여러 항: '2,3'·'②,③'·'제2항, 제3항'. 그 항만 반환"
  3. Changed4 schema fields changedv0.9.1
    • changedInput schema / properties / article / description
      Previous value: -"조문 번호. '제52조' 또는 '제28조의2' 형식"New value: +"조문 번호. '제52조' 또는 '제28조의2' 형식. '제52조 제1항'처럼 항을 함께 줄 수 있음"
    • addedInput schema / properties / keyword
      Added value: +{
      +  "default": "",
      +  "description": "키워드가 들어간 항(①②…/제1항…)만 반환. 긴 조문(4,000자 초과)에서 항 번호 모를 때 사용",
      +  "title": "Keyword",
      +  "type": "string"
      +}
    • changedInput schema / properties / lang / description
      Previous value: -"Output language. 'en': English keys and labels, official English texts where available (tax treaties, statutes), titles/summaries machine-translated by Upstage Solar when UPSTAGE_API_KEY is set. 기본 'ko'"New value: +"Output language. 'en': English keys and labels, official English texts where available (tax treaties, statutes), other Korean texts returned with a host_ai_translate instruction (your AI translates); Solar machine translation only when UPSTAGE_API_KEY or on-prem Solar is configured. 기본 'ko'"
    • addedInput schema / properties / paragraph
      Added value: +{
      +  "default": "",
      +  "description": "원하는 항만 지정. '①'·'1'·'제1항'·'②' 등. 그 항만 반환",
      +  "title": "Paragraph",
      +  "type": "string"
      +}
  4. Changed6 schema fields changedv0.4.0
    • addedInput schema / properties / article / description
      Added value: +"조문 번호. '제52조' 또는 '제28조의2' 형식"
    • addedInput schema / properties / as_of / description
      Added value: +"기준일 YYYYMMDD. 그날 시행 중이던 연혁본. 생략하면 오늘"
    • addedInput schema / properties / lang
      Added value: +{
      +  "default": "ko",
      +  "description": "Output language. 'en': English keys and labels, official English texts where available (tax treaties, statutes), titles/summaries machine-translated by Upstage Solar when UPSTAGE_API_KEY is set. 기본 'ko'",
      +  "enum": [
      +    "ko",
      +    "en"
      +  ],
      +  "title": "Lang",
      +  "type": "string"
      +}
    • addedInput schema / properties / law_name / description
      Added value: +"법령 정식 명칭. 예: '법인세법', '법인세법 시행령', '법인세법 시행규칙'"
    • addedInput schema / properties / with_delegation / description
      Added value: +"True면 법률 조문에 연결된 시행령·시행규칙 위임 조문 전부(3단)"
    • addedInput schema / properties / with_rules / description
      Added value: +"True면 그 조의 기본통칙 전문과 집행기준 항목도 함께"
  5. First observedv0.1.1

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare read-only/idempotent, but the description adds what they don't: a required LAW_OC environment variable with a specific failure mode ('없으면 발급 안내 오류'), the long-article truncation fallback, and a full enumeration of the return envelope including '읽기 주의', '기준일 안내?' and the delegation-chain alternative shape. That is substantive behavioral disclosure, not restatement.

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?

It is front-loaded with the one-line purpose, then uses labeled segments (언제, 반환) that scan well. It is dense but nearly every clause carries operational value; the main waste is the as_of advice appearing in both the description and the schema's as_of field.

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 8 parameters and no output schema, the description carries the return-shape burden and does so: it enumerates the keys of the normal response, the delegation-chain variant, and the caveats field. Nothing an agent needs to call this correctly or interpret the result appears to be missing.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds selection strategy beyond the schema: put the period-end date in as_of when the facts contain a fiscal/imputation year or tax period, and choose keyword vs paragraph based on whether the paragraph number is known. The as_of guidance is partly duplicated from the schema field text, limiting it to a 4.

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 opening sentence names a specific verb and resource ('Get statute text as in force on a date') plus the optional Act → Decree → Rule chain, which is a scope claim no sibling makes. The Korean subtitle repeats the same precise scope (조문 원문 + 3단 위임), so the agent can distinguish it from find_article (article lookup) and article_history.

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 states when to use it ('세액·요건 판단처럼 사실 발생 시점의 법령이 필요할 때'), how it relates to rulings/interpretations (compare against the law in force at the year in question), and routes to the alternative explicitly ('조문 번호를 모르면 find_article로 먼저 찾는다'). It also gives an intra-tool decision rule: for articles over 4,000 characters use keyword or paragraph, otherwise get the paragraph list.

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