{
  "markdown": "# 계약나침반 🧭 (Contract Compass)\n\n[![Glama MCP server](https://glama.ai/mcp/servers/pg836bshvk/badge)](https://glama.ai/mcp/servers/sallim-app/contract-compass)\n\n> **Korean public procurement law MCP server & web service** — a deterministic rule\n> engine for contract-method decisions (94 rules encoded directly from statutes), a\n> searchable corpus of Korean procurement statutes/regulations/adjudication tables,\n> and live court precedents & authoritative interpretations from law.go.kr.\n> All MCP tools are **LLM-free**: your AI client does the reasoning, this server\n> provides verifiable legal grounds. Remote endpoint: `https://contract.sallim.app/mcp`\n\n**공공계약 방법 결정 도우미** — 국가계약법·지방계약법 등 공공계약 법령을 기반으로,\n발주하려는 계약(공사·용역·물품)에 적용 가능한 계약방법(입찰·수의계약·제한경쟁 등)과\n법령 근거를 결정론적으로 안내하는 오픈소스 웹서비스 + **MCP 서버**입니다.\n\n- **결정 위저드**: 계약유형·추정가격·조건을 입력하면 룰엔진(법령 직접 인코딩 94룰)이\n  적용 가능한 계약방법·낙찰자 결정방법·적격심사 기준을 후보와 근거 조문과 함께 제시\n- **법령 챗봇(Ask)**: 국가계약법령·계약예규·감사원 공공계약 실무가이드 등 공개 코퍼스\n  기반 RAG 검색 + 인용 답변 (웹 UI 전용)\n- **MCP 서버(무LLM)**: Claude·ChatGPT·Cursor 등 AI 에이전트가 룰엔진 판정, 법령 조문,\n  예규·적격심사 세부기준(별표 포함), **판례·법령해석례(law.go.kr 실시간)**를 직접 조회\n- **기관유형 지원**: 국가기관 / 지방자치단체 / 공기업·준정부기관 프로파일\n- **결정론 우선**: 계약방법 결정은 LLM이 아닌 룰엔진이 수행 — 같은 입력엔 항상 같은\n  결과. LLM은 웹 챗봇·설명 생성에만 사용(키 없이도 핵심 기능 동작)\n\n> ⚠️ **면책**: 이 서비스는 정보 제공 목적이며 법적 자문·유권해석이 아닙니다.\n> 적격심사 통과점수·낙찰하한율·각종 한도는 발주기관별 세부기준과 법령 개정에 따라\n> 다를 수 있으므로, 실제 발주 전 반드시 소속 기관 계약 부서와 현행 법령을 확인하세요.\n\n## MCP 서버 사용하기\n\n원격 엔드포인트(Streamable HTTP): **`https://contract.sallim.app/mcp`**\n무료: IP당 50콜/일 (전 도구) · 유료 키: 한도 상향 — [요금 안내](https://contract.sallim.app/mcp/pricing)\n\n### 도구 목록 (11종) — Tools / ツール\n\n아래 표는 **라이브 서버의 `tools/list` 응답에서 그대로 뽑은 것**입니다(실측 2026-08-18, 11종 전수).\nMCP 디렉토리·크롤러가 이 저장소를 정적으로 읽을 때 도구 이름을 찾는 자리이므로, 서버의 실제\n도구 목록과 1:1로 유지합니다(불일치는 회귀로 취급). 누구나 직접 재현할 수 있습니다:\n\n```bash\ncurl -s -X POST https://contract.sallim.app/mcp \\\n  -H 'Content-Type: application/json' \\\n  -H 'Accept: application/json, text/event-stream' \\\n  -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\"}'\n# → decide_contract_method, search_law, search_references, search_cases, get_case,\n#   get_law_article, get_law_article_asof, estimate_delay_penalty,\n#   delay_exemption_guide, check_price_adjustment, report_issue  (11 tools)\n```\n\n| 도구 | 설명 | LLM |\n|---|---|---|\n| `decide_contract_method` | 룰엔진 결정론 판정 — 계약방법 후보·법령 근거·적격심사 파라미터 | ✗ |\n| `search_law` | 법령 조문 검색(키워드·조문번호·부분매치·시맨틱 폴백) | ✗ |\n| `get_law_article` | 조문 원문 전체 조회 (현행) — 법률 자체의 미정비 인용은 `notes`로 경고 | ✗ |\n| `get_law_article_asof` | **특정 시점에 시행 중이던 조문** — 과거 계약·처분·감사 대응(행위시법) | ✗ |\n| `search_references` | 전 코퍼스 통합 검색 — 계약예규·조달청/행안부 적격심사 세부기준(별표)·실무가이드 | ✗ |\n| `search_cases` | 판례·법령해석례 검색 (law.go.kr 실시간 — 항상 현행) | ✗ |\n| `get_case` | 판시사항·판결요지·참조조문 / 질의요지·회답·이유 본문 | ✗ |\n| `estimate_delay_penalty` | **지체상금·지연배상금 산정** — 법정 요율·기준금액·30% 한도 결정론 적용(국가/지방 요율이 다르다) | ✗ |\n| `delay_exemption_guide` | **지체일수 불산입(면책) 사유 지도** — 예규 사유·확인할 사실·기재부/행안부 회신 선례 | ✗ |\n| `check_price_adjustment` | **물가변동 계약금액 조정** — 90일·3%·단품 문턱(국가 15%/지방 10%) 판정 + 조정금액·선금공제 산식 | ✗ |\n| `report_issue` | 오류·개선 제보(오인용·개정 미반영 등) — 운영 검토 파이프라인 직결 | ✗ |\n\n클라이언트 설정:\n\n```bash\n# Claude Code\nclaude mcp add --transport http contract-compass https://contract.sallim.app/mcp\n```\n\n```json\n// Cursor (.cursor/mcp.json) — Streamable HTTP 직접 지원\n{ \"mcpServers\": { \"contract-compass\": { \"url\": \"https://contract.sallim.app/mcp\" } } }\n```\n\n```json\n// Claude Desktop (claude_desktop_config.json) — mcp-remote 경유\n{ \"mcpServers\": { \"contract-compass\": {\n    \"command\": \"npx\", \"args\": [\"-y\", \"mcp-remote\", \"https://contract.sallim.app/mcp\"] } } }\n```\n\nChatGPT: Settings → Connectors → Developer mode에서 위 URL을 커넥터로 추가.\n\n설치했으면 AI에게 이렇게 물어 30초 안에 확인하세요 —\n*\"국가기관이 2,000만원짜리 물품을 사려는데 어떤 계약방법을 쓸 수 있어? 근거 조문도.\"*\n소액수의계약과 **국가계약법 시행령 제26조 제1항 제5호**가 나오면 정상입니다.\n\n도구 명세·아키텍처·한도 정책 상세는 [docs/MCP.md](docs/MCP.md) 참조.\n\n### 평가셋 — 우리 판정을 남이 되짚을 수 있게\n\n이 서버가 무엇을 맞히고 무엇을 못 맞히는지는 [`evaluation.xml`](evaluation.xml)에\n공개돼 있습니다(20문항, 답은 전부 실측값). 지어낸 문항은 없습니다 — 미검증 문항은\n회귀 검사를 거짓 실패시키기 때문입니다.\n\n기계 검증은 결정론 회귀 하네스가 합니다. LLM을 쓰지 않아 비용 없이 재현됩니다:\n\n```bash\npython3 tools/mcp_regression.py --endpoint https://contract.sallim.app/mcp\n# 28 케이스 · exit 0=전부 PASS / 1=회귀 존재 / 2=서버 미도달\n```\n\n각 케이스는 과거에 **실제로 발견·수리된 결함**의 회귀입니다(삭제된 조문을 근거처럼\n반환하던 문제, 지자체 판정에 국가 수치가 섞이던 문제 등). 무료 티어는 IP당 50콜/일이고\n이 스위트가 28콜을 쓰므로 하루 1회가 한계입니다.\n\n금액구간별 계약방법·수의계약 사유·용어 가이드 페이지(`/g/`)의 생성·검증·배포 절차는\n[docs/PROGRAMMATIC_SEO.md](docs/PROGRAMMATIC_SEO.md) 참조 — 룰셋에서 파생 생성하므로\n페이지를 수기 편집하지 말 것.\n로컬 stdio 실행: `python3 mcp/server.py` (등록: `codex mcp add contract-compass -- python3 /path/to/mcp/server.py`)\n\n## 구성\n\n```\nbackend/    FastAPI — 룰엔진·RAG·LLM 연동 (frontend/dist 정적 서빙 포함, :8402)\nfrontend/   React + TypeScript (Vite) — 위저드 UI\nmcp/        MCP 서버 — stdio(로컬) / Streamable HTTP(:8403, 원격) · 무LLM 도구 11종\nedge/       Cloudflare Worker (contract-edge) — 장애 폴백 게이트 · law API 엣지 캐시\nrules/      계약 룰셋 JSON (contract_rules·law_registry 등) ← 결정론 핵심\ntools/      법령·예규·별표 수집/인덱싱 파이프라인 (law.go.kr Open API) · 가이드 페이지 생성기\netl/        PDF/DOCX → 청크 → ChromaDB 파이프라인\ndocs/       MCP 명세 · 장애 전환 런북 · 가이드 페이지 파이프라인\nscripts/    스탠바이 동기화 · 반출 전 기밀 검사\ntests/      단위·회귀 테스트 + Ask 질문뱅크\n```\n\n## 빠른 시작\n\n```bash\n# 1) 백엔드 의존성 (+ MCP 서버까지 쓰려면 mcp/requirements.txt 추가)\npip install -r backend/requirements.txt\n\n# 2) 프론트 빌드 (Node.js는 빌드 때만 필요)\ncd frontend && npm install && npm run build && cd ..\n\n# 3) 환경설정 (선택 — LLM 키 없이도 동작)\ncp .env.example .env\n\n# 4) 실행 (rate limiter는 SQLite 공유 — 다중 워커 가능, 코어 수에 맞춰 조정)\npython3 -m uvicorn backend.main:app --host 0.0.0.0 --port 8402\n```\n\n## RAG 코퍼스 구축 (선택)\n\n법령 챗봇·근거 검색을 쓰려면 공개 코퍼스를 인덱싱합니다:\n\n```bash\n# 법령 XML을 tools/laws/ 에 준비(law.go.kr Open API — tools/lib/lawgo.py 헬퍼 참조) 후 인덱싱\npython3 tools/index_laws.py            # → law_articles 컬렉션\n\n# 계약예규(행정규칙) 수집·인덱싱\npython3 tools/fetch_admin_rules.py && python3 tools/parse_admin_rules.py\npython3 tools/index_admin_rules.py     # → admin_rules 컬렉션\n\n# 법령 별표·적격심사 세부기준 전문 PDF (부정당 제재기준·하자담보기간·낙찰하한율 별표)\npython3 tools/fetch_law_tables.py\n\n# 공개 간행물(감사원 공공계약 실무가이드 등)을 data/source_docs/ 에 넣고\npython3 tools/reindex_qa.py            # → public_guides 컬렉션\n\n# BM25 하이브리드 인덱스\npython3 tools/build_bm25_index.py\n```\n\n코퍼스가 없으면 위저드(룰엔진)는 정상 동작하고, RAG 검색 결과만 비어 있습니다.\n판례·법령해석례 조회는 코퍼스와 무관하게 law.go.kr Open API 키(`LAW_API_KEY`)만 있으면 동작합니다.\n\n## 데이터 출처 (전부 공개 자료)\n\n- 법령·시행령·시행규칙·별표·판례·법령해석례: [국가법령정보센터](https://law.go.kr) Open API (출처표시)\n- 계약예규(적격심사기준·정부 입찰·계약 집행기준 등): 기획재정부 행정규칙\n- 적격심사 세부기준: 조달청·행정안전부 행정규칙\n- 공공계약 실무가이드: 감사원 공개 간행물\n- 물품분류·중소기업자간 경쟁제품: 조달청·중소벤처기업부 고시\n\n## 라이선스\n\nMIT\n",
  "bytes": 6457,
  "sha": "e08af3d3de697df580896685394eb6e0ec390ecd4aec931401a5f3afe1f82660",
  "repo_slug": "kwenhwang/contract-compass",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_build_naru_contract_compass_f2a6dccd/readme"
}