Skip to main content
Glama

Server Details

Korean public procurement law: rule-engine rulings, statutes search, live court precedents

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
sallim-app/contract-compass
GitHub Stars
0
Server Listing
Contract Compass

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.7/5 across 11 of 11 tools scored.

Server CoherenceA
Disambiguation4/5

The rule-engine tools are cleanly separated by legal issue and contract phase, and the retrieval/search tools are distinguished by corpus scope and current-versus-historical status. Search_law and search_references overlap somewhat, and get_law_article vs get_law_article_asof could be confused, but the descriptions explicitly clarify when each should be used.

Naming Consistency4/5

Most tools follow a clear lowercase snake_case verb + object pattern: check_, decide_, estimate_, get_, search_, report_. The one outlier is delay_exemption_guide, which uses a noun-phrase structure instead of a verb-first name, but the overall style is still predictable and consistent.

Tool Count5/5

11 tools is well within the ideal scope for a specialized legal advisory server. Each tool earns its place: four decision/calculation tools, six research/retrieval tools, and one feedback mechanism, with no obvious filler or redundant duplicates.

Completeness4/5

Core contract workflows are covered: contract method selection, price adjustment, delay penalties and exemptions, plus robust legal research across statutes, cases, and guidelines. Gaps exist for other common areas like sanctions or defect liability, but the search/reference tools let agents research those matters without hitting a dead end.

Available Tools

11 tools
check_price_adjustmentA
Read-onlyIdempotent
Inspect

물가변동 계약금액 조정(에스컬레이션) 요건 판정 + 산식 적용 — 이행단계 Phase 3.

"자재값이 올랐는데 계약금액을 올려받을 수 있나", "90일 지났나", "단품 조정 되나"에 쓰라.

**이 도구는 조정률을 산정하지 못한다.** 품목조정률·지수조정률은 산출내역서와 지수·단가
원천(한국은행 생산자물가지수 등)으로 계산하는 값인데 이 서버는 그 데이터를 갖고 있지
않다 — 그러니 `adjustment_rate_pct`는 **사용자·발주기관이 산정한 값**을 받아 쓰고,
안 주면 요건 ②를 `met: null`로 두고 판정을 보류한다. 없는 값을 지어내지 마라.

판정하는 것(결정론): ①기간 요건(계약체결일 또는 직전 조정기준일부터 90일 이상)
②등락률 3% 문턱 ③**단품 조정 문턱 — 국가·공기업 15%, 지방 10%(2024 개정으로 갈렸다)**
④조정 방식 결정 규칙(계약서에 지수조정률 명시가 없으면 품목조정률)
⑤조정금액 = 물가변동적용대가 × 조정률, 선금 공제 = 위 값 × 선금급률.

응답의 verdict: requirements_met / requirements_not_met / exception_path(천재지변·
원자재 급등 예외 검토 대상 — 인정 주체는 발주기관) / undetermined(조정률 미제공).

Args:
    org_type: "national"|"local"|"public_corp" — **추측 금지**(단품 문턱이 다르다)
    contract_date: 계약체결일 "YYYY-MM-DD". 장기계속계약은 **제1차계약 체결일**
    check_date: 조정 검토·청구 시점 "YYYY-MM-DD"
    last_adjustment_date: 직전 조정기준일(있으면 기간 기산점이 이쪽으로 바뀐다)
    adjustment_rate_pct: 산정된 품목·지수 조정률(%). 감액도 그대로(음수) 넣어라
    method_specified_in_contract: 계약서에 지수조정률이 명시됐으면 "index", 품목이면
        "item". 모르면 생략 — 기본값(품목조정률)으로 안내하되 그 사실을 응답에 밝힌다
    urgent_exception: 천재지변·원자재 급등으로 90일 이내 조정을 검토하는가
    single_item_rate_pct: 단품 조정 검토 시 해당 자재 가격증감률(%)
    single_item_share_over_5permille: 그 자재가 재료비·노무비·경비 합계액의 1천분의 5를
        초과하는가(산출내역서로 확인 — 우리가 계산하지 못한다)
    is_construction: 공사계약인가(단품 조정은 공사 전용 제도)
    adjustment_base_amount: 물가변동적용대가(원) — 조정기준일 **이후** 이행분의 대가
    advance_payment_ratio: 선금급률(비율, 30%면 0.3)
ParametersJSON Schema
NameRequiredDescriptionDefault
org_typeYes
check_dateYes
contract_dateYes
is_constructionNo
urgent_exceptionNo
adjustment_rate_pctNo
last_adjustment_dateNo
single_item_rate_pctNo
advance_payment_ratioNo
adjustment_base_amountNo
method_specified_in_contractNo
single_item_share_over_5permilleNo
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true. The description goes further: it reveals that missing adjustment_rate_pct leads to met:null and deliberation (not fabrication), that org_type must not be guessed because thresholds differ (15% vs 10%), and it explains the verdict enums including exception_path. All consistent with the annotations, adding depth beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Long but intentionally structured: bolded key concepts, a clear verdict list, and a parameter-by-parameter breakdown. Every sentence carries useful information—no filler. The length is justified given 12 parameters and the domain complexity.

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 no output schema, the description fully covers return values (verdict categories) and all decision rules: period requirement, 3% threshold, single-item threshold, method selection default, and adjustment amount formula including advance-payment deduction. An agent can operate this tool without external domain knowledge.

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 description coverage is 0%, yet the description manually explains every parameter: format (YYYY-MM-DD, decimals), defaults, special rules (e.g., long-term contracts use first contract date, negative rates for decreases), and constraints (single_item_share_over_5permille must be verified from bill of quantities, not calculated). This fully compensates for the bare JSON schema.

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 a specific verb and resource: '물가변동 계약금액 조정(에스컬레이션) 요건 판정 + 산식 적용' (judge price adjustment requirements + apply formula), and scopes it to Phase 3. It clearly distinguishes this tool from siblings like estimate_delay_penalty by focusing on escalation/adjustment, not delays or contract method decisions.

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 provides concrete usage examples ('자재값이 올랐는데 계약금액을 올려받을 수 있나'), and explicitly warns '이 도구는 조정률을 산정하지 못한다' (cannot compute the adjustment rate), telling the agent to accept user-provided rates and set requirements to undetermined if absent. This is strong when-to-use and when-not-to-use guidance, even without naming a sibling tool.

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

decide_contract_methodA
Read-onlyIdempotent
Inspect

계약방법 결정론 판정 — 룰엔진이 적용 가능한 계약방법 후보와 법령 근거를 반환.

Args:
    contract_type: "construction"(공사) | "service"(용역) | "product"(물품)
    estimated_price: 추정가격(원)
    org_type: "national"(국가기관) | "local"(지자체) | "public_corp"(공기업·준정부, 기본)
    service_type: 용역일 때 "technical"|"academic"|"facility"|"it_service"|"other"
    construction_specialty: 공사일 때 "general"(종합)|"electrical"|"ict"|"fire_safety" 등
    is_sme_competition_product: 중소기업자간 경쟁제품 여부
    negotiation_reason: 수의 사유 "urgent"|"rebid_failure"|"technical_difficulty"|
        "patent_new_tech"|"specific_person"|"small_repeat"|"other_justified"
    is_women_enterprise: 여성기업 여부 — 지자체 물품·용역 2천만원 초과 1억원 이하
        수의계약(시행령 제25조제1항제5호바목) 판정에 필요. 사용자가 "여성기업",
        "장애인기업", "사회적기업"이라고 말하면 **반드시 해당 플래그를 세워라** —
        빠뜨리면 수의계약 후보가 통째로 빠지고 경쟁입찰만 제시된다.
    is_disabled_enterprise: 장애인기업 여부 (위와 같은 목)
    is_social_enterprise: 사회적기업·사회적협동조합·자활기업·마을기업 여부 (위와 같은 목).
        이 유형은 행정안전부 고시 취약계층 고용비율 충족이 추가 요건이다.
    is_youth_startup: 청년창업기업 여부 — 물품·용역 2천만원 초과 5천만원 이하
        수의계약(지방 제5호 다목 / 국가 시행령 제26조①5호가목7, 중소기업창업
        지원법 제2조제11호)
    is_small_enterprise: 상대방이 소기업·소상공인인지 여부 — 2천만원 초과 1억원
        이하 수의계약(국가 시행령 제26조①5호가목3 / 지방 시행령 제25조①5호라목)
        판정에 필요. **주의: 국가·공기업 2천만원 초과~1억원 이하는 무조건
        소액수의가 아니다** — 소기업·소상공인/특수 지식·기술(academic)/여성·
        장애인·사회적기업/청년창업(5천만 이하) 요건 충족 시에만 수의 가능하므로,
        해당하면 플래그를 세워라. 미충족이면 경쟁입찰이 원칙이다.
ParametersJSON Schema
NameRequiredDescriptionDefault
org_typeNopublic_corp
project_nameNoMCP 조회
service_typeNo
contract_typeYes
estimated_priceYes
is_youth_startupNo
negotiation_reasonNo
is_small_enterpriseNo
is_women_enterpriseNo
is_social_enterpriseNo
construction_specialtyNo
is_disabled_enterpriseNo
is_sme_competition_productNo
Behavior5/5

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

Annotations already indicate read-only, idempotent, open-world, and non-destructive. The description adds significant behavioral context beyond annotations, including warnings about missing enterprise flags causing negotiation candidates to be omitted, the nuance that national/public corp small-amount contracts require specific requirements, and the additional social enterprise condition. This transparently discloses consequences of input choices.

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 but well-structured with an intro and an Args block. Every sentence adds value, though the length is substantial. It is not overly repetitive, but could be slightly more front-loaded; the most critical parameter warnings are placed later.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 parameters and no output schema, the description is quite complete. It covers all parameter semantics, legal bases, and critical caveats. However, it does not describe the return format beyond 'candidates and legal basis' or address error conditions (e.g., what happens with invalid combinations), which keeps it from a 5.

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 description coverage is 0%, so the description carries the full burden. It explains every parameter in detail, including enum values, conditional relevance, and legal references. For example, is_small_enterprise is explained with the exact regulation clauses and the caveat about national/public corp thresholds. This far exceeds baseline.

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 clearly states the tool's purpose: '계약방법 결정론 판정 — 룰엔진이 적용 가능한 계약방법 후보와 법령 근거를 반환' (contract method determination rule — returns applicable candidates and legal basis). This is a specific verb+resource that distinguishes it from sibling tools like legal case/law search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use certain flags and parameters, e.g., explaining that is_women_enterprise is needed for specific local government contract thresholds and that missing enterprise flags will cause negotiation candidates to be omitted. However, it does not explicitly contrast this tool with sibling alternatives or state when not to use it, so a 4 is given.

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

delay_exemption_guideA
Read-onlyIdempotent
Inspect

지체일수에서 빼는(불산입) 사유 지도 — estimate_delay_penalty가 정하지 않는 부분.

"이 지연은 우리 책임이 아닌데 지체상금을 물어야 하나", "동절기 공사중지 기간도
지체일수인가", "관급자재가 늦게 와서 늦어졌다" 같은 질문에 쓰라.

**이 도구는 해당 여부를 판정하지 않는다.** 일반조건 문언 자체가 "계약담당공무원이
인정할 때"를 요건으로 두므로 판단은 발주기관 몫이다. 도구가 주는 것은 셋이다 —
①예규에 있는 사유 목록과 원문 인용 ②각 사유가 인정되려면 **확정돼야 할 사실**
(must_establish — 사용자와 하나씩 확인하라) ③기재부·행안부 회신 선례.

쓰는 순서: 이 도구로 사유를 좁힌다 → must_establish를 사용자와 확인한다 →
불산입 일수가 정해지면 estimate_delay_penalty의 excluded_days에 넣어 다시 계산한다.
(sw_requirement_change는 해당 일수의 **1/2**만 넣는다 — 예규가 절반만 빼준다.)

주의: `quote_truncated: true`인 항목은 우리가 회수한 조문 인용이 중간에서 끊긴 것이다
— 그대로 인용하지 말고 search_references로 전문을 확인하라. 끊긴 문장을 이어서
지어내면 그것이 이 서버가 막으려는 오답이다.

Args:
    contract_kind: estimate_delay_penalty와 같은 값. 일반조건 계열(공사/물품/용역)로
        매핑되며, 실제로 계약서에 편입된 일반조건이 진실원임을 응답이 경고한다
    ground: 특정 사유 하나만 상세히 볼 때. 생략하면 그 계약유형의 전체 목록
ParametersJSON Schema
NameRequiredDescriptionDefault
groundNo
contract_kindYes
Behavior5/5

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

Annotations already indicate read-only and non-destructive behavior, but the description adds critical context: the tool does not make determinations (the contracting agency's judgment), it returns must_establish facts and precedents, and it warns about truncated quotes (quote_truncated). It also cautions against fabricating continuations, which is valuable behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every section earns its place: purpose, example questions, non-determination caveat, three outputs, usage order, special rule, warning, and args. It uses bold headers and clear lists, making it easy to scan despite its length.

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 no output schema, the description thoroughly explains what the tool returns (list of reasons with citations, must_establish facts, precedents) and how to use the results. It also connects to sibling tools and warns about truncated quotes, making the tool's behavior and integration complete.

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?

The schema has 0% description coverage, but the Args section fully explains both parameters: contract_kind is aligned with estimate_delay_penalty and maps to general conditions with a warning that actual incorporated terms are authoritative; ground is optional and filters to a specific reason, otherwise a full list is returned. This 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 clearly states the tool's function as a guide for reasons excluded from delay days, and explicitly distinguishes it from sibling estimate_delay_penalty by noting it covers the part that 'estimate_delay_penalty가 정하지 않는 부분'. It gives specific example questions, making the scope concrete.

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?

The description provides explicit usage context with example questions and a sequential workflow: narrow reasons with this tool → confirm must_establish → feed excluded_days into estimate_delay_penalty. It also includes a special rule for sw_requirement_change and a warning about quote_truncated items, guiding proper usage.

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

estimate_delay_penaltyA
Read-onlyIdempotent
Inspect

지체상금(국가·공기업)·지연배상금(지방) 산정 — 법정 요율·기준금액·30% 한도를 결정론 적용.

**국가와 지방은 요율이 다르다**(물품 0.75/1000 ↔ 0.8/1000, 용역 1.25/1000 ↔ 1.3/1000)
— org_type을 반드시 사용자에게 확인해서 넣어라. 법정 용어도 다르다(국가=지체상금,
지방=지연배상금).

**이 도구는 지체일수를 정하지 않는다.** 준공검사 소요기간·검사 불합격 재검사 기간·
발주기관 귀책 일수 같은 것은 사실 판단이다 — delay_days/excluded_days는 사용자가
선언한 값으로 계산에 그대로 쓰이고, 응답의 counted_days.disclaimer가 이 사실을 밝힌다.
면책 사유 해당 여부가 쟁점이면 search_references로 예규·감사원 실무가이드를 찾아라.

응답 필드:
  term/counterpart_term  기관유형에 따른 법정 용어(+반대편 용어)
  rate                   적용 요율·근거 조문(호까지). inferred=true면 법문이 아니라 우리 해석
  base_amount            계약금액 − 인수분 산출 내역
  counted_days           선언 지체일수 − 선언 면책일수
  amount_raw / cap / amount   한도 적용 전 금액 / 30% 한도 / 최종(한도 적용 후)
  warnings               미선언 항목·한도 적용·용어 비대칭 등 실토
  legal_basis            근거 조문 — get_law_article로 원문 확인 가능

Args:
    contract_kind: 요율 호와 1:1. "construction"(공사) | "product_manufacture"(물품
        제조·구매) | "product_repair"(물품 수리·가공·대여) | "service"(용역·기타) |
        "military_food"(군용 음·식료품) | "transport_storage"(운송·보관·양곡가공)
    org_type: "national"(국가기관) | "local"(지자체) | "public_corp"(공기업·준정부).
        **추측 금지** — 요율이 달라 틀린 금액이 된다
    contract_amount: 계약금액(원). **장기계속계약이면 총액이 아니라 연차별 계약금액**
    delay_days: 지체일수(총 지체일수 — 면책일수를 포함해서 넣고, 면책분은 아래에 따로)
    excluded_days: 계약상대자 책임 없는 사유 일수(모르면 0으로 두되 응답 경고를 전달하라)
    accepted_portion_amount: 검사를 거쳐 인수한 기성·기납 부분 금액(원)
    design_build_approved: 설계·제조 일괄 + 발주기관 승인이 필요한 물품인지(요율 예외)
ParametersJSON Schema
NameRequiredDescriptionDefault
org_typeYes
delay_daysYes
contract_kindYes
excluded_daysNo
contract_amountYes
design_build_approvedNo
accepted_portion_amountNo
Behavior5/5

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

Beyond the readOnlyHint and idempotentHint annotations, the description discloses that delay_days and excluded_days are used as user-declared values without verification, and that responses include a disclaimer. It also explains that rates may be inferred (as our interpretation) and warnings highlight undeclared items. This adds rich behavioral context without contradicting any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but exceptionally well-structured with clear sections (purpose, key caveats, response fields, args). Every sentence adds value—no fluff or repetition. It front-loads the most critical information (rate differences, org_type confirmation) and maintains readability despite its density.

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?

Despite having no output schema, the description comprehensively lists response fields and their meanings, explains the calculation logic (base amount, 30% cap, accepted portion), and includes pointers to related tools. The description covers all necessary context for an agent to correctly invoke the tool and interpret results, making it complete for a complex calculation tool.

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?

With 0% schema description coverage, the description compensates fully by explaining all 7 parameters in the Args section. It provides detailed semantics, including contract kind enum values, rate differences between national and local, special notes for long-term contracts, and the requirement to confirm org_type. Each parameter is given practical meaning beyond the schema's bare types.

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 clearly states the tool calculates delay penalties for national/public and local entities, applying statutory rates, base amount, and a 30% cap. It explicitly differentiates between national and local terminology and rates, and references sibling tools (search_references, get_law_article) for specific subtasks. The purpose is unambiguous and well-distinguished.

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?

The description explicitly states that this tool does not determine delay days or excuse applicability, directing users to search_references for such fact-based issues. It instructs to always confirm org_type with the user to avoid incorrect rates, and mentions get_law_article for verifying legal basis. This provides clear when-to-use and when-not-to-use guidance.

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

get_caseA
Read-onlyIdempotent
Inspect

판례/해석례 본문 조회 — 판시사항·판결요지·참조조문(판례) 또는 질의요지·회답·이유(해석례).

응답의 `source_url`은 국가법령정보센터 원문 주소다 — 판례·해석례를 인용할 때는
**이 링크를 함께 제시하라**(감사·보고서에서 근거를 되짚을 수 있어야 한다).

Args:
    kind: "prec" | "expc" (search_cases 결과의 kind)
    case_id: search_cases 결과의 case_id
ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
case_idYes
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior, so the bar is lowered. The description adds valuable context: the response includes a source_url from the National Law Information Center, and instructs to present this link when citing, which is a behavioral expectation beyond the annotations. It also clarifies the response components, but no contradiction with annotations exists.

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 efficiently organized: a one-sentence purpose, a highlighted citation instruction, and a compact args list. It avoids fluff and gets to the essential points, though the args list could have been formatted more compactly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only lookup with two parameters, the description covers the essential aspects: the source of parameters, the content of the response, and the special need to include source_url in citations. No output schema exists, but the description provides enough detail for an agent to correctly invoke the tool and handle the result.

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 0%, so the description must define the parameters. It does so by stating kind accepts 'prec' or 'expc' and that both values should be taken directly from search_cases results. This gives provenance and avoids ambiguity. It doesn't spell out what each enum value stands for, but the opening line makes the distinction between cases and interpretations, and since the values are passed through from search_cases, this is sufficient.

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 clearly states the tool retrieves full text for cases (prec) and interpretations (expc), enumerating the included components (e.g., 판시사항, 판결요지, 참조조문). It differentiates from sibling search_cases by being the detail lookup after a search, and mentions the source_url for citation, making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly notes that kind and case_id come from search_cases results, telling the agent this tool is to be used after a search to fetch the full text. It also instructs to include the source_url when citing, providing additional usage guidance. It doesn't explicitly exclude other uses, but the context is clear enough for a straightforward retrieval tool.

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

get_law_articleA
Read-onlyIdempotent
Inspect

법령 조문 원문 전체 조회.

응답의 `notes`가 비어 있지 않으면 **법률 자체의 미정비 상호인용**이 탐지된
것이다(예: 제5항이 '제2항 각 호'를 인용하나 제2항에 각 호가 없음). 원문은
law.go.kr 현행 그대로이며 우리가 고치지 않는다 — 그 조문을 근거로 답할 때는
notes의 내용을 사용자에게 함께 알리고 단정을 피하라.

응답에 `assumption`이 있으면 **법령명을 우리가 추정해 채운 것**이다(예: "시행령
제26조" → 국가계약법 시행령). 지방계약 질문이었다면 틀린 법을 보고 있는 것이니
assumption.hint대로 법령명을 붙여 다시 부르고, 어느 법령 기준인지 사용자에게 밝혀라.

Args:
    ref: 정확한 조문 참조 (예: "국가계약법 시행령 제26조")
ParametersJSON Schema
NameRequiredDescriptionDefault
refYes
Behavior5/5

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

The description discloses important behavioral traits beyond the annotations: it explains that non-empty `notes` indicates detected legal self-inconsistencies, that `assumption` indicates an inferred law name, and that the text is not corrected from law.go.kr. These details are not implied by the read-only and idempotent annotations and add significant transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a one-line purpose statement followed by two clearly labeled paragraphs explaining the `notes` and `assumption` behaviors. Every sentence adds essential value without redundancy, and the formatting improves skimmability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Since there is no output schema, the description covers the non-obvious response fields (`notes` and `assumption`) that are critical for interpreting results. It does not fully enumerate the entire response structure, but the primary content (full article text) is clearly stated, and the special cases are adequately handled.

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?

The parameter `ref` has no schema description, so the description compensates by specifying it should be an exact article reference and provides a concrete example ('국가계약법 시행령 제26조'). This adds meaningful semantic information beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: '법령 조문 원문 전체 조회' (retrieve full original text of a law article), which is a specific verb and resource. However, it does not explicitly differentiate from sibling tools like get_law_article_asof, so it lacks sibling discrimination.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for use: retrieve a specific article by reference. It also provides handling instructions for special response fields (notes, assumption), including when to re-call with a different law name. It does not explicitly mention alternatives or when-not to use, but the situational guidance is strong.

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

get_law_article_asofA
Read-onlyIdempotent
Inspect

특정 시점에 시행 중이던 조문 원문 조회 (law.go.kr 연혁 라이브).

get_law_article은 항상 현행이다. 과거 사건에 현행 조문을 적용하면 조용히 틀린
답이 된다 — 계약 체결·입찰공고·처분 시점이 과거이면 **반드시 이 도구를 쓰라**:
  - "2023년에 체결한 계약인데 지체상금률이 맞나"
  - "재작년 부정당업자 제재가 당시 기준으로 적법했나"
  - 감사·분쟁·소송 대응(적용법령은 행위시법이 원칙)

응답 필드:
  effective_date  그 시점에 시행 중이던 판의 시행일자
  is_current      그 판이 지금도 현행인가 (False면 이후 개정됨)
  prev/next_effective_date  직전·직후 개정 시행일 — 경계 판단용
  notes           미정비 상호인용 경고 (get_law_article과 동일)

Args:
    ref: 조문 참조 (예: "국가계약법 제27조", "국가계약법 시행령 제26조")
    date: 기준일 "YYYY-MM-DD" 또는 "YYYYMMDD" (예: 계약 체결일)
ParametersJSON Schema
NameRequiredDescriptionDefault
refYes
dateYes
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive. The description adds context about the historical data source (law.go.kr 연혁 라이브) and response fields (effective_date, is_current, prev/next_effective_date), enhancing transparency without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: bold emphasis on the core purpose, concise use-case examples, listed response fields, and clear parameter descriptions. Every sentence adds value and it is front-loaded with the most critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains response fields adequately. With two parameters and clear usage examples, it is mostly complete, though it could mention error handling for invalid ref or date.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description provides example values for ref ('국가계약법 제27조') and date format ('YYYY-MM-DD' or 'YYYYMMDD'), but does not fully specify allowed formats or validation rules, so it partially compensates but leaves gaps.

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 states it retrieves the original text of an article in effect at a specific time ('특정 시점에 시행 중이던 조문 원문 조회') and contrasts with get_law_article which always returns current version, clearly specifying the verb and resource and distinguishing from sibling.

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 explicitly warns that using get_law_article for past events silently yields wrong answers ('과거 사건에 현행 조문을 적용하면 조용히 틀린 답이 된다') and lists specific scenarios (계약 체결, 입찰공고, 처분 시점) where this tool must be used, providing both when-to and when-not-to guidance.

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

report_issueAInspect

오류·개선 제보 — 운영자에게 전달된다(웹 피드백과 같은 검토 파이프라인).

사용자가 "틀렸다"고 지적하면 **먼저 이 도구로 제보한 뒤** 정정 답을 제시하라.
도구 결과가 조문·수치·판례와 명백히 불일치할 때도 제보하라. 추측으로 부르지 말 것.
서버가 직전 도구 호출 기록을 자동 첨부하므로 도구명·인자를 기억으로 적을 필요 없다.

Args:
    category: "wrong_citation"(오인용) | "outdated_law"(개정 미반영) |
        "wrong_ruling"(룰엔진 오판정) | "tool_error"(도구 오류) |
        "feature_request"(기능 요청) | "other"
    message: 무엇이 어떻게 잘못됐는지 구체적으로 (근거 조문·기대값 포함 권장)
    related_tool: 문제가 난 도구명 (예: "search_references")
    related_query: 문제를 재현하는 질의·입력
    expected: 올바르다고 생각하는 값·조문 (알고 있다면)
ParametersJSON Schema
NameRequiredDescriptionDefault
messageYes
categoryYes
expectedNo
related_toolNo
related_queryNo
Behavior4/5

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

The description adds behavioral context beyond empty annotations: it states the report is forwarded to operators and the server auto-attaches previous tool call history. It does not mention rate limits or response details, but provides useful information for a non-destructive reporting action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (about 10 lines) and front-loads the purpose and key usage guideline. The parameter list is well-organized and easy to parse. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, usage, parameters, and behavioral notes (server auto-attach). It lacks details on the output/response after reporting, but for a reporting tool this is adequate given the absence of an output schema.

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?

With 0% schema description coverage, the description fully explains each parameter: lists enum values with Korean translations, advises what to include in 'message', and provides examples for 'related_tool' and 'related_query'. This adds significant meaning beyond the raw schema.

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 clearly states the tool is for reporting errors and improvements to operators, with a specific verb ('제보하다' - report) and resource ('오류·개선' - error/improvement). It is distinct from sibling tools which are for searching and retrieving legal information.

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?

The description explicitly instructs when to use: first report when the user points out a mistake, and also when tool results clearly disagree with known provisions or numbers. It provides clear context and no ambiguity.

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

search_casesA
Read-onlyIdempotent
Inspect

판례·법령해석례 검색 — law.go.kr 실시간 조회(항상 현행). LLM 미사용.

분쟁·처분취소·해석 다툼("~해도 되나", "~취소될 수 있나")에 조문만으로 부족할 때
쓰라. 본문은 get_case(kind, case_id)로 이어서 조회.

Args:
    query: 핵심 명사 위주 검색어 (예: "부정당업자 제한", "유찰 수의계약")
    top_k: 종류당 반환 건수 (기본 5, 최대 10)
    kind: "prec"(법원 판례) | "expc"(법제처 법령해석례) | "all"(둘 다, 기본)
ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoall
queryYes
top_kNo
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, etc. The description adds valuable behavioral context: it is real-time ('항상 현행'), does not use LLM ('LLM 미사용'), and the data source is law.go.kr. No contradictions with annotations.

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 efficiently structured: a concise headline defining the tool, a usage context paragraph, and a clean parameter list. It is front-loaded with key info. Minor verbosity in parameter examples but overall well-organized for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While usage guidelines and parameter semantics are strong, the description lacks information about the return format of search results. No output schema exists, so the agent must infer what fields are returned. The mention of using get_case for full text partially compensates, but more detail on search result structure would improve completeness.

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 description coverage is 0%, so the description bears full burden. It comprehensively explains all three parameters: query (핵심 명사 위주 검색어 with examples), top_k (setzen per kind, default 5, max 10), and kind (enum values with Korean labels). This adds significant meaning beyond the schema.

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 clearly states it searches '판례·법령해석례' (case law and statutory interpretation examples) from law.go.kr in real-time. It specifies when to use (when disputes or interpretation questions arise and law articles are insufficient) and how to follow up with get_case. This distinguishes it from sibling tools like get_case and search_law.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs when to use this tool ('분쟁·처분취소·해석 다툼에 조문만으로 부족할 때') and directs the agent to use get_case for full text retrieval. It does not explicitly state when not to use it, but the context makes it clear.

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

search_lawA
Read-onlyIdempotent
Inspect

법령 조문 검색 — 키워드 또는 조문번호로 조문 스니펫 반환(상위 top_k건).

전문이 필요하면 get_law_article(ref)로 이어서 조회.
hit에 note가 있으면 삭제·폐지된 조문이다 — 판단 근거로 인용하지 마라.
error가 "no_corpus_match"면 질의한 법령이 이 코퍼스 밖이다 — **그런 규정이 없다는
뜻이 아니므로** 그렇게 답하지 말고 corpus_laws로 범위를 밝힌 뒤 law.go.kr을 안내하라.

Args:
    query: "수의계약", "시행령 제26조", "제21조" 등
    top_k: 반환 건수 (기본 8, 최대 20)
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
top_kNo
Behavior5/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and idempotentHint=true, and the description adds critical context beyond them: the meaning of the 'note' field (deleted/repealed law) with an explicit instruction not to cite such hits, and the nuanced handling of the 'no_corpus_match' error, warning against assuming a law doesn't exist just because it's outside the corpus.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but efficient: each sentence serves a distinct purpose. The structure flows from purpose → follow-up → critical safety notes → error handling → Args. The bold formatting of critical negative instructions ('그런 규정이 없다는 뜻이 아니므로') highlights the most important caveat, and nothing feels redundant or padded.

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?

For a search tool with only 2 simple parameters and no output schema, the description covers all essential aspects: return scope (snippets), count (top_k), note semantics, error handling, and cross-referencing for full text. It even addresses the compliance/safety-critical scenario of citing repealed provisions, which is comprehensive for a legal domain tool.

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?

With schema description coverage at 0%, the Args section does the heavy lifting and fully compensates: it documents query with concrete examples ('수의계약', '시행령 제26조', '제21조') and specifies top_k's default (8) and maximum (20) — details not present in the schema. This matches the description's burden given low coverage.

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 first sentence uses a specific verb (검색/반환) with a clear resource (법령 조문) and scope (키워드 또는 조문번호, top_k건). It clearly distinguishes itself from siblings like get_law_article (full text retrieval) and get_law_article_asof, which are explicitly named as follow-ups.

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?

Explicitly instructs when to switch to get_law_article(ref) if full text is needed, names this alternative directly, and specifies the exact error condition ('no_corpus_match') that should trigger a different response. Also provides guidance on how to handle deleted statutes rather than citing them, giving the agent clear decision criteria.

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

search_referencesA
Read-onlyIdempotent
Inspect

전 코퍼스 통합 검색 — 법령+계약예규+조달청·행안부 세부기준+실무가이드. LLM 미사용.

search_law가 법령 조문 전용인 것과 달리 예규·적격심사 세부기준·실무가이드까지
검색한다. 낙찰하한율·적격심사 배점·실무 절차 등 법령 본문 밖 질문에 사용하라.
AI 생성 없이 검색 근거 원문만 반환한다(백엔드 LLM 예산 미차감).

Args:
    query: 자연어 검색어 (예: "적격심사 낙찰하한율 50억 미만")
    top_k: 반환 건수 (기본 6, 최대 12)
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
top_kNo
Behavior4/5

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

Annotations already declare readOnly, openWorld, idempotent, non-destructive behavior. The description adds valuable context: no LLM usage, returns only original text, and does not consume backend LLM budget. This goes beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with no redundant sentences. It front-loads the core purpose and uses bullet-style formatting for clarity. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a multi-source search tool and no output schema, the description covers scope, usage, and return type (original text only). It lacks details on ordering or pagination, but overall complete for agent understanding.

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 description coverage is 0%, so the description carries the burden. It provides an example query for 'query' and specifies 'top_k' maximum of 12 (not in schema), adding meaning. However, no detailed format or constraints beyond that.

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 clearly states it performs a full corpus search across laws, contracts, guidelines, etc., distinguishing it from the sibling tool 'search_law' which is limited to law articles. The verb 'search' and specific scope are well-defined.

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?

The description explicitly advises when to use this tool (questions about procedures, lowest winning bid ratio, etc., outside law text) and contrasts with 'search_law'. It also states that it does not use LLM, providing clear guidance.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.