contract-compass
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.
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.
Tool Definition Quality
Average 4.7/5 across 10 of 10 tools scored. Lowest: 4.1/5.
Each tool has a distinct role: contract method selection, penalty calculation, exemption guidance, legal research, and feedback. The research tools are clearly differentiated by corpus (law vs. cases vs. references) and temporal scope (current vs. historical).
Most tools follow a consistent verb_noun pattern (e.g., decide_contract_method, estimate_delay_penalty, search_law), but delay_exemption_guide is a noun phrase, breaking the convention. This is a minor inconsistency.
With 10 tools, the server is well-scoped. Every tool addresses a specific aspect of the domain, from calculation to research, without redundancy.
The tool set covers the full workflow: deciding contract methods, computing delay penalties, guiding on exemptions, and retrieving legal references. Both current and historical law are supported, and calculators link to research tools, leaving no dead ends.
Available Tools
11 toolscheck_price_adjustmentARead-onlyIdempotentInspect
물가변동 계약금액 조정(에스컬레이션) 요건 판정 + 산식 적용 — 이행단계 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)
| Name | Required | Description | Default |
|---|---|---|---|
| org_type | Yes | ||
| check_date | Yes | ||
| contract_date | Yes | ||
| is_construction | No | ||
| urgent_exception | No | ||
| adjustment_rate_pct | No | ||
| last_adjustment_date | No | ||
| single_item_rate_pct | No | ||
| advance_payment_ratio | No | ||
| adjustment_base_amount | No | ||
| method_specified_in_contract | No | ||
| single_item_share_over_5permille | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly/openWorld/idempotent/non-destructive, but the description adds crucial behavioral depth: it is deterministic, cannot calculate adjustment rates, sets 'met: null' if the rate is absent, and reveals default decision rules (e.g., item method unless index specified). It includes explicit 'do not fabricate' and 'no guessing' instructions, going well beyond annotation hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Although long, the description is well-structured: a bold limitation up front, a numbered list of deterministic checks, and bulleted parameter explanations. Every sentence conveys essential domain knowledge or an operational rule; there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's high complexity (12 parameters, multiple thresholds, conditional verdicts) and the absence of an output schema, the description thoroughly covers decision rules, verdict enum, missing-rate behavior, and exceptional paths. It is fully self-sufficient for an agent to decide when to invoke the tool and how to interpret its response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 0% of parameter meaning, but the description provides rich semantics for all 12 parameters. It adds critical constraints like org_type not being guessable, long-term contract date special rule, negative adjustment_rate_pct for decreases, and the server's inability to verify single_item_share_over_5permille. This fully compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description immediately states the tool performs '물가변동 계약금액 조정(에스컬레이션) 요건 판정 + 산식 적용' and enumerates five specific deterministic checks and response verdicts. This precise verb+resource+scope clearly distinguishes it from siblings like delay-exemption or law-search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly frames when to use the tool with example user questions and identifies the contract lifecycle phase ('이행단계 Phase 3'). It also warns against using it when the adjustment rate is unknown, telling users to supply the rate or expect an 'undetermined' verdict. It does not explicitly name alternative sibling tools, so a small deduction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decide_contract_methodARead-onlyIdempotentInspect
계약방법 결정론 판정 — 룰엔진이 적용 가능한 계약방법 후보와 법령 근거를 반환.
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천만 이하) 요건 충족 시에만 수의 가능하므로,
해당하면 플래그를 세워라. 미충족이면 경쟁입찰이 원칙이다.
| Name | Required | Description | Default |
|---|---|---|---|
| org_type | No | public_corp | |
| project_name | No | MCP 조회 | |
| service_type | No | ||
| contract_type | Yes | ||
| estimated_price | Yes | ||
| is_youth_startup | No | ||
| negotiation_reason | No | ||
| is_small_enterprise | No | ||
| is_women_enterprise | No | ||
| is_social_enterprise | No | ||
| construction_specialty | No | ||
| is_disabled_enterprise | No | ||
| is_sme_competition_product | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond the annotations (readOnlyHint, idempotentHint, etc.). It explicitly warns about the consequence of missing required flags: '[빠뜨리면] 수의계약 후보가 통째로 빠지고 경쟁입찰만 제시된다' (if omitted, negotiated-contract candidates are entirely dropped and only competitive bidding is offered). It also clarifies nuanced rules like '국가·공기업 2천만원 초과~1억원 이하는 무조건 소액수의가 아니다' (national/public corp over 20M~100M won is not automatically small-amount negotiation), which are behavioral disclosures beyond what structured fields provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is intentionally lengthy due to the tool's complexity (13 parameters), but it remains structured and front-loaded with a clear purpose sentence. Each parameter explanation serves a purpose, and the critical warnings (e.g., for is_small_enterprise) are placed within the relevant parameter line. However, the length is at the upper edge of conciseness; a few sentences could be trimmed if legal citations were abbreviated, but overall every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is highly complete for input parameters, providing extensive context for each flag and their legal basis. It also states the high-level output (candidates and legal basis). However, it does not describe the output format or structure (e.g., whether it returns a list of objects with reason codes), which would be useful given there is no output schema. The description also does not explicitly mention the openWorldHint or that the tool may infer missing flags, but the annotations cover that. Overall, the description is thorough for the given complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema_description_coverage at 0%, the description carries the full burden of explaining parameters. It provides detailed meaning and legal context for 12 of 13 parameters, including enum values, conditions, and special cases. For example, it explains that is_women_enterprise is needed specifically for local government product/service contracts between 20M and 100M won, and that is_social_enterprise requires an additional administrative rule (행정안전부 고시 취약계층 고용비율 충족). It even documents parameters absent from the schema description (e.g., is_small_enterprise) with legal references. Only project_name is not elaborated, but it is a trivial default parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '계약방법 결정론 판정 — 룰엔진이 적용 가능한 계약방법 후보와 법령 근거를 반환' (Determines contract method and returns applicable candidates and legal basis). It uses a specific verb ('판정' = decide) and resource ('계약방법' = contract method), and clearly distinguishes itself from sibling tools like search_law or get_law_article by being a decision/analysis tool rather than a retrieval tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when contract type, estimated price, and relevant flags are known) but does not explicitly state when not to use it or mention alternatives. The extensive parameter guidance (e.g., '2천만원 초과 1억원 이하 수의계약 판정에 필요') provides contextual usage hints for specific flags, but there is no direct 'use this vs. use that' guidance relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delay_exemption_guideARead-onlyIdempotentInspect
지체일수에서 빼는(불산입) 사유 지도 — 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: 특정 사유 하나만 상세히 볼 때. 생략하면 그 계약유형의 전체 목록
| Name | Required | Description | Default |
|---|---|---|---|
| ground | No | ||
| contract_kind | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses significant behavioral traits: it does not determine eligibility ('해당 여부를 판정하지 않는다'), requires user-confirmed facts (must_establish), returns three distinct outputs, handles sw_requirement_change as half credit, and truncates quotes when quote_truncated is true. No contradiction 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place: purpose, usage, workflow, caveats, parameter semantics, and warning are all tightly packed. The bolded lead and structured flow with numbered items make it scannable despite the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex advisory tool with no output schema, the description fully covers what it returns (three items), how to use it in sequence, what must be established, and a critical failure mode (truncated citations). It also integrates with sibling tools and warns against hallucination, making it complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries full parameter burden. It explains contract_kind as the same value expected by estimate_delay_penalty, mapping to general conditions and warning that the actually incorporated terms are ground truth. It also clarifies ground as an optional filter and the meaning of omission ('생략하면 그 계약유형의 전체 목록'), adding meaning the enum schema alone does not provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific purpose: '지체일수에서 빼는(불산입) 사유 지도' and explicitly distinguishes itself from estimate_delay_penalty ('estimate_delay_penalty가 정하지 않는 부분'). It clearly identifies the resource (delay-day exemption reasons) and the action (guide/narrow down), making its role distinct from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete use cases in question form ('동절기 공사중지 기간도 지체일수인가'), a step-by-step workflow ('쓰는 순서'), and explicitly references alternative tools: use search_references for truncated quotes and feed excluded_days into estimate_delay_penalty. It also warns when not to rely on truncated items, providing excellent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_delay_penaltyARead-onlyIdempotentInspect
지체상금(국가·공기업)·지연배상금(지방) 산정 — 법정 요율·기준금액·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: 설계·제조 일괄 + 발주기관 승인이 필요한 물품인지(요율 예외)
| Name | Required | Description | Default |
|---|---|---|---|
| org_type | Yes | ||
| delay_days | Yes | ||
| contract_kind | Yes | ||
| excluded_days | No | ||
| contract_amount | Yes | ||
| design_build_approved | No | ||
| accepted_portion_amount | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses that delay_days/excluded_days are used as declared (not independently verified), that counted_days.disclaimer reveals this, and that rate.inferred indicates non-statutory interpretation. It also explains deterministic application and warnings behavior, adding significant transparency not available from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Although lengthy, the description is tightly structured with bold warnings, a response-field list, and an Args block; each section conveys non-obvious, necessary legal and usage detail. It front-loads purpose and priority caveats before parameter definitions, so every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 enumerates response fields (term, rate, base_amount, counted_days, amount_raw/cap/amount, warnings, legal_basis) and their meaning. Given the tool's legal complexity and 7 params, this makes the description self-sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates fully by explaining every parameter, including enum meanings, critical caveats (e.g., contract_amount for long-term continuing contracts, delay_days including excluded days), and defaults. This exceeds the bare schema by providing domain-specific semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: '지체상금(국가·공기업)·지연배상금(지방) 산정' and clearly delineates the calculation scope (legal rates, base amount, 30% cap). It distinguishes from siblings by pointing users to search_references for excuse determinations and to get_law_article for statutory text, so the tool's unique role is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-to-use/when-not-to-use guidance: '이 도구는 지체일수를 정하지 않는다' and directs users to search_references when excuse applicability is the issue. It also mandates confirming org_type with the user ('org_type을 반드시 사용자에게 확인해서 넣어라'), which is actionable usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_caseARead-onlyIdempotentInspect
판례/해석례 본문 조회 — 판시사항·판결요지·참조조문(판례) 또는 질의요지·회답·이유(해석례).
응답의 `source_url`은 국가법령정보센터 원문 주소다 — 판례·해석례를 인용할 때는
**이 링크를 함께 제시하라**(감사·보고서에서 근거를 되짚을 수 있어야 한다).
Args:
kind: "prec" | "expc" (search_cases 결과의 kind)
case_id: search_cases 결과의 case_id
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| case_id | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation as read-only and idempotent. The description adds valuable behavioral context by disclosing that the response includes a `source_url` pointing to the original National Law Information Center document and instructs to present this link when citing, supporting traceability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a concise purpose line, an important output-tracking note, and an Args section. Every sentence earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two parameters and no output schema, the description covers purpose, input provenance, and the key output field (source_url). It could detail the full response structure, but the current information is sufficient for correct invocation and downstream use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining that `kind` accepts 'prec' or 'expc' and that both parameters are derived from search_cases results. This adds relational meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the full text of precedents/interpretations ('판례/해석례 본문 조회') and enumerates specific content sections (판시사항, 판결요지, 참조조문 or 질의요지, 회답, 이유). This specificity distinguishes it from sibling tools like get_law_article and search_cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies that `kind` and `case_id` come from `search_cases` results, implying a search-then-retrieve workflow. It does not explicitly name alternatives or when-not-to-use, but the parameter provenance gives clear contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_law_articleARead-onlyIdempotentInspect
법령 조문 원문 전체 조회.
응답의 `notes`가 비어 있지 않으면 **법률 자체의 미정비 상호인용**이 탐지된
것이다(예: 제5항이 '제2항 각 호'를 인용하나 제2항에 각 호가 없음). 원문은
law.go.kr 현행 그대로이며 우리가 고치지 않는다 — 그 조문을 근거로 답할 때는
notes의 내용을 사용자에게 함께 알리고 단정을 피하라.
응답에 `assumption`이 있으면 **법령명을 우리가 추정해 채운 것**이다(예: "시행령
제26조" → 국가계약법 시행령). 지방계약 질문이었다면 틀린 법을 보고 있는 것이니
assumption.hint대로 법령명을 붙여 다시 부르고, 어느 법령 기준인지 사용자에게 밝혀라.
Args:
ref: 정확한 조문 참조 (예: "국가계약법 시행령 제26조")
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, openWorldHint, idempotentHint), the description discloses important behaviors: it returns unmodified current text from law.go.kr, notes field indicates a cross-reference defect in the law itself, and assumption field means the law name was guessed. It also tells the agent how to act on these signals, adding significant context beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear one-sentence purpose, then uses structured paragraphs and inline emphasis to explain the special response fields (notes, assumption) and their handling. Every sentence adds value, and the length is justified by the complexity of the tool's behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the meaningful return contexts: the main content (full original text), the notes field, and the assumption field, including how to proceed in each case. It also clarifies the current-version nature of the text. This is complete for an AI agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only says 'Ref' with no description, and schema coverage is 0%. The description compensates by defining ref as '정확한 조문 참조' (exact article reference) and providing a concrete example: '국가계약법 시행령 제26조'. This adds meaningful guidance for a single-parameter tool, though it could be even more detailed about formatting variations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with '법령 조문 원문 전체 조회' (retrieve the full original text of a statute article), which is a specific verb plus resource. It further differentiates itself from sibling tools by noting the returned text is 'law.go.kr 현행 그대로' (current as-is), implicitly distinguishing it from get_law_article_asof.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on how to handle responses: if notes are non-empty, the agent should inform the user and avoid assertions; if assumption exists, the agent should re-call with the correct law name per assumption.hint and disclose the law to the user. However, it does not explicitly contrast with alternatives like get_law_article_asof or search_law, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_law_article_asofARead-onlyIdempotentInspect
특정 시점에 시행 중이던 조문 원문 조회 (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" (예: 계약 체결일)
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | ||
| date | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive. The description adds valuable behavioral context: it returns historical versions with effective_date, is_current, prev/next_effective_date, and warns about unmanaged cross-references. This enriches transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but well-structured: purpose, contrast, usage examples, response fields, and args. Uses bold for emphasis. Every sentence adds value; no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 required parameters, no output schema), the description covers all necessary aspects: what it does, when to use it, how parameters work, and what the response contains. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage for parameters, but the description's 'Args' section explains both 'ref' (with examples like '국가계약법 제27조') and 'date' (with format YYYY-MM-DD or YYYYMMDD). This sufficiently compensates for the schema deficiency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the original text of a law article as of a specific date (historical version). It explicitly contrasts with sibling 'get_law_article' (which returns current version), making the purpose unambiguous and well-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage guidelines: 'must use this tool' for past events like contracts, bids, audits, and disputes. It also provides concrete examples of when using the current version would be incorrect, establishing clear when-to-use and when-not-to-use criteria.
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: 올바르다고 생각하는 값·조문 (알고 있다면)
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | ||
| category | Yes | ||
| expected | No | ||
| related_tool | No | ||
| related_query | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are neutral (no readOnly/destructive hints), but description adds that the report goes to an operator pipeline and server attaches previous call logs, providing useful context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with a clear header, usage rules, and parameter list. Slightly longer than necessary but each sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers purpose, usage, parameters, and behavioral notes. It doesn't explain return values but that's acceptable for a reporting tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides detailed explanations for all 5 parameters in the Args section, including enum values for category, and guidance for message, which the schema lacks entirely (0% coverage).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The Korean title and description clearly state it's for reporting errors/improvements to operators, with specific examples. It's distinct from sibling tools which are for searching or retrieving legal info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit instructions: use when user points out an error or when tool results conflict with statutes; first report then correct; do not use for guesses. Also notes server auto-attaches logs, reducing agent burden.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_casesARead-onlyIdempotentInspect
판례·법령해석례 검색 — law.go.kr 실시간 조회(항상 현행). LLM 미사용.
분쟁·처분취소·해석 다툼("~해도 되나", "~취소될 수 있나")에 조문만으로 부족할 때
쓰라. 본문은 get_case(kind, case_id)로 이어서 조회.
Args:
query: 핵심 명사 위주 검색어 (예: "부정당업자 제한", "유찰 수의계약")
top_k: 종류당 반환 건수 (기본 5, 최대 10)
kind: "prec"(법원 판례) | "expc"(법제처 법령해석례) | "all"(둘 다, 기본)
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | all | |
| query | Yes | ||
| top_k | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, non-destructive behavior. The description adds valuable context: real-time query from law.go.kr, always current, no LLM used. No contradiction 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two short sentences plus a bullet list of parameters. It front-loads the purpose and use case, and every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, but comprehensive annotations, the description provides complete guidance: what the tool searches, when to use, parameter details, and next step (get_case). No gaps remain for effective usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema descriptions are empty (0% coverage), the tool description itself explains each parameter: query as keyword-focused search term, top_k as result count per kind (default 5, max 10), kind as enum with options and default 'all'. This fully compensates for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches court precedents and legal interpretation cases from law.go.kr in real-time. It specifies the use case (when statutes are insufficient for disputes, cancellations, etc.) and distinguishes 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: for disputes or interpretations where statutes alone are inadequate. It also directs users to get_case for full text after finding a case. However, it does not explicitly state when not to use this tool or mention alternatives beyond get_case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_lawARead-onlyIdempotentInspect
법령 조문 검색 — 키워드 또는 조문번호로 조문 스니펫 반환(상위 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)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, the description adds crucial behavioral context: it returns only snippets (not full text), hits may carry notes indicating deletion/abolishment (which should not be cited), and the no_corpus_match error means the query is outside the corpus, not that the regulation doesn't exist. This goes beyond annotations and is essential for correct tool use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then flows into usage alternatives, special-case warnings, and parameter explanations. Each sentence adds critical information without redundancy. It's dense but efficient, with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description covers return type (snippets), special conditions (deleted clauses via 'note'), and error handling (no_corpus_match guidance). Combined with the tool's moderate complexity and the clear parameter documentation, the description is complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes only types and defaults; the description provides meaningful semantics: query is exemplified as '수의계약', '시행령 제26조', '제21조' etc., clarifying allowed formats, and top_k is defined as '반환 건수 (기본 8, 최대 20)' (return count with default and max). This fully compensates for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: '법령 조문 검색 — 키워드 또는 조문번호로 조문 스니펫 반환' (search statute clauses by keyword or clause number, returning snippets). It distinguishes itself from sibling tools by explicitly naming get_law_article for full-text retrieval, and the context signals show siblings like get_law_article_asof, making this tool specific to snippet-level search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: '전문이 필요하면 get_law_article(ref)로 이어서 조회' (use get_law_article for full text) and special handling instructions for hits with notes (deleted/abolished clauses) and for no_corpus_match errors. It also states what not to do ('그렇게 답하지 말고') and directs users to corpus_laws and law.go.kr, offering clear usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_referencesARead-onlyIdempotentInspect
전 코퍼스 통합 검색 — 법령+계약예규+조달청·행안부 세부기준+실무가이드. LLM 미사용.
search_law가 법령 조문 전용인 것과 달리 예규·적격심사 세부기준·실무가이드까지
검색한다. 낙찰하한율·적격심사 배점·실무 절차 등 법령 본문 밖 질문에 사용하라.
AI 생성 없이 검색 근거 원문만 반환한다(백엔드 LLM 예산 미차감).
Args:
query: 자연어 검색어 (예: "적격심사 낙찰하한율 50억 미만")
top_k: 반환 건수 (기본 6, 최대 12)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent. Description adds that no LLM is used and only source text is returned, including backend budget implications. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-organized: header, purpose, usage, args. Front-loaded with key info. Slightly verbose but each sentence adds value. Could be a bit more terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers scope, differentiation from sibling, output nature (source text only), and key constraints. No output schema, but description adequately sets expectations. Could mention return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 0% so description must compensate. Provides example for query and notes default and max for top_k. But lacks detailed format or operators for query. Some value added but incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it searches across multiple reference types (laws, contracts, standards) and explicitly contrasts with search_law. Uses specific verb+resource (integrated search of corpus) and distinguishes from sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises when to use: for questions outside law text (e.g., bid rates, evaluation scores). Contrasts with search_law. Provides example query. Could explicitly state when not to use, but the contrast implies it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityDmaintenanceIntegrates 6 Korean public procurement APIs to search, analyze, and manage procurement data using natural language.83MIT
- AlicenseBqualityCmaintenanceSearch, compare, and analyze Korean national laws and public institution internal regulations via MCP.100122MIT
- Alicense-qualityBmaintenanceEnables AI programs to search and retrieve approved public regulations with citations, supporting PDF, HWP, HWPX, and DOCX formats.31MIT
- Alicense-qualityCmaintenanceEnables searching Korean procurement notices from the public data portal, with support for integrated search across categories, flexible date ranges, and attachment extraction.MIT
Your Connectors
Sign in to create a connector for this server.