app.sallim/contract-compass
REMOTE · CONTRACT.SALLIM.APP · SCANNED AUG 19
Korean public procurement law: rule-engine rulings, statutes search, live court precedents
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security74
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability56
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 4892 tokens (~444/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management33
- Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage67
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · contract.sallim.app
claude mcp add --transport http app-sallim-contract-compass https://contract.sallim.app/mcp?via=official
[mcp_servers.app-sallim-contract-compass] url = "https://contract.sallim.app/mcp?via=official"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"app-sallim-contract-compass": {
"type": "remote",
"url": "https://contract.sallim.app/mcp?via=official",
"enabled": true
}
}
} openclaw mcp add app-sallim-contract-compass --url https://contract.sallim.app/mcp?via=official --transport streamable-http
mcp_servers:
app-sallim-contract-compass:
url: "https://contract.sallim.app/mcp?via=official" {
"mcpServers": {
"app-sallim-contract-compass": {
"type": "http",
"url": "https://contract.sallim.app/mcp?via=official"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 19 Aug 26 0
- Tool “search_law” rewrote its description, which is the text the model reads security
- Server version: 1.6.4 → 1.7.0 functional
- 17 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Aug 26 +1
- Server version: 1.6.0 → 1.6.4 functional
- 14 Aug 26 0
- Tool “get_case” rewrote its description, which is the text the model reads security
- Tool “get_law_article” rewrote its description, which is the text the model reads security
- Schema quality: 317 → 439 ▼ functional
- Server version: 1.1.3 → 1.6.0 functional
- New tool “check_price_adjustment” functional
- New tool “estimate_delay_penalty” functional
- New tool “delay_exemption_guide” functional
- 12 Aug 26 0
- Tool “decide_contract_method” rewrote its description, which is the text the model reads security
- “decide_contract_method” added an optional parameter “is_small_enterprise” cosmetic
- 11 Aug 26 +2
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 10 Aug 26 +1
- Stability: unverified → 0.03 ▲ functional
- 9 Aug 26 62
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 19 Aug 2026 · Probed https://contract.sallim.app/mcp?via=official
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=sallim.app | CN=WE1,O=Google Trust Services,C=US | 29 Jul 2026 | 27 Oct 2026 | ECDSA 256 | ECDSA-SHA256 | 4f7a368021d5589b0e5f3dc06b547f3e |
| SANs: sallim.app, *.sallim.app | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC insecure
Validation of contract.sallim.app. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| app. | present | 23684 | 8 | Verified |
| sallim.app. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://contract.sallim.app/mcp?via=official | Verified | 200 | |
| http (plaintext) | http://contract.sallim.app/mcp?via=official | HTTPS enforced | 301 | https://contract.sallim.app/mcp?via=official |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
check_price_adjustment ~895
물가변동 계약금액 조정(에스컬레이션) 요건 판정 + 산식 적용 — 이행단계 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 | Type | Req | Description |
|---|---|---|---|
| adjustment_base_amount | – | – | – |
| adjustment_rate_pct | – | – | – |
| advance_payment_ratio | – | – | – |
| check_date | string | yes | – |
| contract_date | string | yes | – |
| is_construction | boolean | – | – |
| last_adjustment_date | – | – | – |
| method_specified_in_contract | – | – | – |
| org_type | string | yes | – |
| single_item_rate_pct | – | – | – |
| single_item_share_over_5permille | – | – | – |
| urgent_exception | boolean | – | – |
No output schema declared.
No examples provided.
decide_contract_method ~773
계약방법 결정론 판정 — 룰엔진이 적용 가능한 계약방법 후보와 법령 근거를 반환. 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 | Type | Req | Description |
|---|---|---|---|
| construction_specialty | – | – | – |
| contract_type | string | yes | – |
| estimated_price | integer | yes | – |
| is_disabled_enterprise | boolean | – | – |
| is_small_enterprise | boolean | – | – |
| is_sme_competition_product | boolean | – | – |
| is_social_enterprise | boolean | – | – |
| is_women_enterprise | boolean | – | – |
| is_youth_startup | boolean | – | – |
| negotiation_reason | – | – | – |
| org_type | string | – | – |
| project_name | string | – | – |
| service_type | – | – | – |
No output schema declared.
No examples provided.
delay_exemption_guide ~475
지체일수에서 **빼는(불산입) 사유** 지도 — 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 | Type | Req | Description |
|---|---|---|---|
| contract_kind | string | yes | – |
| ground | – | – | – |
No output schema declared.
No examples provided.
estimate_delay_penalty ~771
지체상금(국가·공기업)·지연배상금(지방) 산정 — 법정 요율·기준금액·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 | Type | Req | Description |
|---|---|---|---|
| accepted_portion_amount | integer | – | – |
| contract_amount | integer | yes | – |
| contract_kind | string | yes | – |
| delay_days | integer | yes | – |
| design_build_approved | boolean | – | – |
| excluded_days | integer | – | – |
| org_type | string | yes | – |
No output schema declared.
No examples provided.
get_case ~161
판례/해석례 본문 조회 — 판시사항·판결요지·참조조문(판례) 또는 질의요지·회답·이유(해석례). 응답의 `source_url`은 국가법령정보센터 원문 주소다 — 판례·해석례를 인용할 때는 **이 링크를 함께 제시하라**(감사·보고서에서 근거를 되짚을 수 있어야 한다). Args: kind: "prec" | "expc" (search_cases 결과의 kind) case_id: search_cases 결과의 case_id
| Name | Type | Req | Description |
|---|---|---|---|
| case_id | string | yes | – |
| kind | string | yes | – |
No output schema declared.
No examples provided.
get_law_article ~247
법령 조문 원문 전체 조회. 응답의 `notes`가 비어 있지 않으면 **법률 자체의 미정비 상호인용**이 탐지된 것이다(예: 제5항이 '제2항 각 호'를 인용하나 제2항에 각 호가 없음). 원문은 law.go.kr 현행 그대로이며 우리가 고치지 않는다 — 그 조문을 근거로 답할 때는 notes의 내용을 사용자에게 함께 알리고 단정을 피하라. 응답에 `assumption`이 있으면 **법령명을 우리가 추정해 채운 것**이다(예: "시행령 제26조" → 국가계약법 시행령). 지방계약 질문이었다면 틀린 법을 보고 있는 것이니 assumption.hint대로 법령명을 붙여 다시 부르고, 어느 법령 기준인지 사용자에게 밝혀라. Args: ref: 정확한 조문 참조 (예: "국가계약법 시행령 제26조")
| Name | Type | Req | Description |
|---|---|---|---|
| ref | string | yes | – |
No output schema declared.
No examples provided.
get_law_article_asof ~326
**특정 시점에 시행 중이던** 조문 원문 조회 (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 | Type | Req | Description |
|---|---|---|---|
| date | string | yes | – |
| ref | string | yes | – |
No output schema declared.
No examples provided.
report_issue ~307
오류·개선 제보 — 운영자에게 전달된다(웹 피드백과 같은 검토 파이프라인). 사용자가 "틀렸다"고 지적하면 **먼저 이 도구로 제보한 뒤** 정정 답을 제시하라. 도구 결과가 조문·수치·판례와 명백히 불일치할 때도 제보하라. 추측으로 부르지 말 것. 서버가 직전 도구 호출 기록을 자동 첨부하므로 도구명·인자를 기억으로 적을 필요 없다. Args: category: "wrong_citation"(오인용) | "outdated_law"(개정 미반영) | "wrong_ruling"(룰엔진 오판정) | "tool_error"(도구 오류) | "feature_request"(기능 요청) | "other" message: 무엇이 어떻게 잘못됐는지 구체적으로 (근거 조문·기대값 포함 권장) related_tool: 문제가 난 도구명 (예: "search_references") related_query: 문제를 재현하는 질의·입력 expected: 올바르다고 생각하는 값·조문 (알고 있다면)
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | – |
| expected | – | – | – |
| message | string | yes | – |
| related_query | – | – | – |
| related_tool | – | – | – |
No output schema declared.
No examples provided.
search_cases ~201
판례·법령해석례 검색 — law.go.kr 실시간 조회(항상 현행). LLM 미사용. 분쟁·처분취소·해석 다툼("~해도 되나", "~취소될 수 있나")에 조문만으로 부족할 때 쓰라. 본문은 get_case(kind, case_id)로 이어서 조회. Args: query: 핵심 명사 위주 검색어 (예: "부정당업자 제한", "유찰 수의계약") top_k: 종류당 반환 건수 (기본 5, 최대 10) kind: "prec"(법원 판례) | "expc"(법제처 법령해석례) | "all"(둘 다, 기본)
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | – | – |
| query | string | yes | – |
| top_k | integer | – | – |
No output schema declared.
No examples provided.
search_law ~199
법령 조문 검색 — 키워드 또는 조문번호로 조문 스니펫 반환(상위 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 | Type | Req | Description |
|---|---|---|---|
| query | string | yes | – |
| top_k | integer | – | – |
No output schema declared.
No examples provided.
search_references ~202
전 코퍼스 통합 검색 — 법령+계약예규+조달청·행안부 세부기준+실무가이드. LLM 미사용. search_law가 법령 조문 전용인 것과 달리 예규·적격심사 세부기준·실무가이드까지 검색한다. 낙찰하한율·적격심사 배점·실무 절차 등 법령 본문 밖 질문에 사용하라. AI 생성 없이 검색 근거 원문만 반환한다(백엔드 LLM 예산 미차감). Args: query: 자연어 검색어 (예: "적격심사 낙찰하한율 50억 미만") top_k: 반환 건수 (기본 6, 최대 12)
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | – |
| top_k | integer | – | – |
No output schema declared.
No examples provided.