原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。使用 Google 登录即可撰写评价。原型 · 每 30 分钟更新
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Contract Compass

作者:sallim-app版本 1.86.19i★ 0i在云端运行
注册名称app.sallim/contract-compass

安装方法

What it does

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

  • Connects 在云端运行
  • Account or key No key needed
  • Category 法律与政府数据

安装

选择你使用的 AI 应用,然后复制设置。

通过 4/4 项检查 · 你的提问会经过开发者的服务器(contract.sallim.app) · ✓ 命令已检查 2026年11月13日

第一步:你用哪个 AI?

选择你用的应用,步骤会显示在下方。

可连接 Claude · 约 2 分钟

不需要密钥,不用安装程序 · 在 claude.ai 或桌面应用设置一次,即可在聊天中使用 · 免费账户可添加 1 个 · Team/Enterprise 方案由所有者(Owner)添加

  1. 打开 Claude 的 Connectors 页面

    CustomizeConnectors

    CustomizeConnectors1Add2https://…3Add4
  2. 点击“Add” → “Custom” → “Web”,填写这 2 项

    把这里的内容复制到 Claude 中同名的输入框,然后点击 Continue

    Name · 名称Contract Compass
    Remote MCP server URL · 地址https://contract.sallim.app/mcp?via=official

    在 Claude 检测到的登录设置页点击 Continue · Authentication 按作者说明选择(Sign in now、Sign in when needed 或 No sign in),然后点击 Add

  3. 在聊天中开启

    +ConnectorsContract Compass

  4. 试一试

    用 Contract Compass 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Claude 说正在使用 Contract Compass,或回答中出现 Contract Compass 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同

能否连接 ChatGPT 取决于方案

完整 MCP:网页版 ChatGPT Business、Enterprise 或 Edu · Pro:以读取/获取权限连接,修改数据的工具可能用不了 · Plus:官方文档尚未确认,如果在插件页看到添加自定义 MCP 的选项可以试试 · 仅限网页

  1. 在网页版 ChatGPT 打开添加 MCP 的页面

    Plugins+Add custom MCP server

    ChatGPTPlugins1+2https://…3Create4
  2. 填写名称和地址

    输入名称,在 Connection 下粘贴地址,勾选风险提示,然后点击 Create as a plugin

    Name · 名称Contract Compass
    Connection · 地址https://contract.sallim.app/mcp?via=official
  3. 在聊天中选择 Contract Compass

    开启新聊天,输入前先从插件列表中选择 Contract Compass

  4. 试一试

    用 Contract Compass 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 ChatGPT 说正在使用 Contract Compass,或回答中出现 Contract Compass 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 OpenAI 帮助页面核实 · 你的界面可能因版本略有不同

可连接 Claude Code · 约 2 分钟

不需要密钥,不用安装程序

  1. 打开终端

    Mac:按 Command+空格,输入 Terminal · Windows:打开 PowerShell

  2. 粘贴这条命令并按 Enter

    claude mcp add --transport http --scope user contract-compass 'https://contract.sallim.app/mcp?via=official'
  3. 在 Claude Code 中输入 /mcp

    应能看到 Contract Compass 在列表中并显示已连接

  4. 试一试

    用 Contract Compass 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Claude Code 说正在使用 Contract Compass,或回答中出现 Contract Compass 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同

可连接 Cursor · 约 2 分钟

不需要密钥,不用安装程序

  1. 点击这个按钮打开 Cursor

    在 Cursor 中打开

    Cursor 会请你确认安装,点击 Install

  2. 在 Cursor 中以 Agent 模式打开 AI 聊天

  3. 试一试

    用 Contract Compass 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Cursor 说正在使用 Contract Compass,或回答中出现 Contract Compass 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 Cursor 帮助页面核实 · 你的界面可能因版本略有不同

可连接 VS Code · 约 2 分钟

不需要密钥,不用安装程序

  1. 点击这个按钮打开 VS Code

    在 VS Code 中打开

    VS Code 会请你确认安装,点击 Install

  2. 在 VS Code 中以 Agent 模式打开 AI 聊天

  3. 试一试

    用 Contract Compass 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 VS Code 说正在使用 Contract Compass,或回答中出现 Contract Compass 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 VS Code 帮助页面核实 · 你的界面可能因版本略有不同

其他支持 MCP 的应用(如 Windsurf、Zed、Gemini CLI)添加方式各不相同,请在应用列表中查看

查看所有支持 MCP 的应用 →

通过网页连接的应用使用的地址

地址https://contract.sallim.app/mcp?via=official

JSON 设置在下方“开发者专用”中

卡住了?问问正在用 Contract Compass 的人💬 讨论 →
开发者专用:终端命令和 JSON 设置

通过网页连接

Claude Code

claude mcp add --transport http --scope user contract-compass 'https://contract.sallim.app/mcp?via=official'

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "contract-compass": {
      "url": "https://contract.sallim.app/mcp?via=official"
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "contract-compass": {
      "type": "http",
      "url": "https://contract.sallim.app/mcp?via=official"
    }
  }
}

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

一览

每周下载量i
不在 npm/PyPI 上
已验证域名
✓ sallim.app
连接方式
在云端运行
传输方式
streamable-http
最新版本i
1.86.19
发布到注册中心i
2026年11月14日
代码最后更新i
2026年8月17日
作者
sallim-app
注册状态
活跃

哪些应用可以使用它

依据这个服务器的连接方式和各应用自己的文档,检查于 2026年11月10日。

通过互联网连接,适用于

ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

全部应用及其优缺点 →

它能做什么

工具名称和描述与服务器在 2026年11月10日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。

  • decide_contract_method

    계약방법 결정론 판정 — 룰엔진이 적용 가능한 계약방법 후보와 법령 근거를 반환. 상대방 지위(소기업·여성기업 등)를 안 넣었는데 그 지위로만 열리는 수의 후보가 있으면 `vendor_conditional_candidates`로 따로 온다 — 지위를 추정하지 말고 사용자에게 확인하라. `law_currency`는 이 판정이 기대는 법령(공기업이면 계약사무규칙 포함 — `laws_checked`)의 현행 여부다(2026-10-15). `status`가 "verified"가 아니면 `note_curr

  • search_law

    법령 조문 검색 — 키워드 또는 조문번호로 조문 스니펫 반환(상위 top_k건). **법령(법률·시행령·시행규칙·별표)만 본다 — 계약예규는 여기 없다.** 공사계약일반조건·정부 입찰·계약 집행기준·예정가격작성기준·용역계약일반조건 같은 예규는 search_references에 있다. 설계변경·물가변동· 기성·준공·지체·계약보증처럼 **계약 집행 실무 질문은 정답의 과반이 예규다**(실측 2026-11-01: 조달청 실무자 질의 306건 중 52%가 예규만 인용) — 그런 질문은 search_ref

  • search_references

    공공계약 코퍼스 통합 검색 — 법령+계약예규+조달청·행안부 세부기준+실무가이드. LLM 미사용. search_law가 법령 조문 전용인 것과 달리 예규·적격심사 세부기준·실무가이드까지 검색한다. 낙찰하한율·적격심사 배점·실무 절차 등 법령 본문 밖 질문에 사용하라. AI 생성 없이 검색 근거 원문만 반환한다(백엔드 LLM 예산 미차감). 국가·지방 자료를 함께 찾는다. 질의에 지방·지자체 표시가 없을 때 지방 자료(지방계약법령·지자체 예규)를 빼도록 설정된 배포에서는 뺀 수를 `local_excl

  • search_cases

    판례·법령해석례 검색 — law.go.kr 실시간 조회(항상 현행). LLM 미사용. 분쟁·처분취소·해석 다툼("~해도 되나", "~취소될 수 있나")에 조문만으로 부족할 때 쓰라. 본문은 get_case(kind, case_id)로 이어서 조회. **응답은 무엇으로 몇 건을 봤는지까지 말한다**(2026-08-29). `search_scope`가 "title"이면 사건명·안건명만, "body"면 본문까지 본 것이다. `searched`에 시도한 질의·범위·law.go.kr 총계(`total_cn

  • get_case

    판례/해석례 본문 조회 — 판시사항·판결요지·참조조문(판례) 또는 질의요지·회답·이유(해석례). 응답의 `source_url`은 국가법령정보센터 원문 주소다 — 판례·해석례를 인용할 때는 **이 링크를 함께 제시하라**(감사·보고서에서 근거를 되짚을 수 있어야 한다). **`error:"case_body_unavailable"`이면 `source_url`은 null이고 `existence_verified`는 false다**(2026-09-04). 이건 "본문만 없다"가 아니다 — 우리는 ①본문 미

  • get_law_article

    법령 조문 원문 조회 — 6,000자를 넘으면 잘라서 주고 `truncated`로 공시한다. **긴 조문은 잘린다(2026-10-15).** 원문이 6,000자를 넘으면 `truncated: true`와 `content_total_chars`(원문 총 글자수)·`content_shown_chars`·`paragraphs_shown`· `paragraphs_omitted`·`paragraph_cut`·`truncation_note`가 온다. 그때 content는 조문 전체가 아니다 — 생략된 항을

  • get_law_article_asof

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

  • estimate_delay_penalty

    지체상금(국가·공기업)·지연배상금(지방) 산정 — 법정 요율·기준금액·30% 한도를 결정론 적용. **국가와 지방은 요율이 다르다**(물품 0.75/1000 ↔ 0.8/1000, 용역 1.25/1000 ↔ 1.3/1000) — org_type을 반드시 사용자에게 확인해서 넣어라. 법정 용어도 다르다(국가=지체상금, 지방=지연배상금). **이 도구는 지체일수를 정하지 않는다.** 준공검사 소요기간·검사 불합격 재검사 기간· 발주기관 귀책 일수 같은 것은 사실 판단이다 — delay_days/excl

  • delay_exemption_guide

    지체일수에서 **빼는(불산입) 사유** 지도 — estimate_delay_penalty가 정하지 않는 부분. "이 지연은 우리 책임이 아닌데 지체상금을 물어야 하나", "동절기 공사중지 기간도 지체일수인가", "관급자재가 늦게 와서 늦어졌다" 같은 질문에 쓰라. **이 도구는 해당 여부를 판정하지 않는다.** 일반조건 문언 자체가 "계약담당공무원이 인정할 때"를 요건으로 두므로 판단은 발주기관 몫이다. 도구가 주는 것은 셋이다 — ①예규에 있는 사유 목록과 원문 인용 ②각 사유가 인정되려면 **

  • check_price_adjustment

    물가변동 계약금액 조정(에스컬레이션) 요건 판정 + 산식 적용 — 이행단계 Phase 3. "자재값이 올랐는데 계약금액을 올려받을 수 있나", "90일 지났나", "단품 조정 되나"에 쓰라. **이 도구는 조정률을 산정하지 못한다.** 품목조정률·지수조정률은 산출내역서와 지수·단가 원천(한국은행 생산자물가지수 등)으로 계산하는 값인데 이 서버는 그 데이터를 갖고 있지 않다 — 그러니 `adjustment_rate_pct`는 **사용자·발주기관이 산정한 값**을 받아 쓰고, 안 주면 요건 ②를 `m

  • report_issue

    사용자가 **오류 제보·개선 요청·문의를 운영자에게 전해 달라고 했을 때만** 쓴다. 쓰는 때: 사용자가 "이 조문 인용이 틀렸으니 신고해 줘", "운영자에게 알려 줘", "이런 질문도 답하게 해 달라고 전해 줘"처럼 제보·요청을 부탁했을 때. 보내기 전에 무엇이 전달되는지 사용자에게 알린다. 사용자가 오류·불만·개선 희망·기관 도입 같은 이용 문의·후원 의사를 말했지만 전달을 부탁하지는 않았다면, 부르지 말고 "운영자에게 전해 드릴까요?"를 한 줄로 물어 동의할 때만 부른다(거절·무반응이면 다시

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月15日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过域名 sallim.app 验证(注册中心会核实域名所有权)

  • ✓ 通过

    仍在维护

    代码最后更新于3个月前

  • – 不适用

    有许可证

    不适用:由 sallim.app 的所有者自己运行的云端服务器,你不会运行仓库里的代码

  • ✓ 通过

    端点有响应

    在 516 毫秒内响应(HTTP 200)

  • – 不适用

    使用 OAuth 登录

    无需登录

  • ✓ 通过

    工具描述中没有隐藏指令

    已读取 11 个工具描述,未发现针对 AI 的隐藏指令

我们检查什么 → · JSON

作者:申请重新检查或报告信息错误

讨论

提问、分享技巧或报告无法使用。按“有帮助”数量排序。

还没有帖子,欢迎第一个提问或分享。

此处内容由用户撰写,不代表 PopNx 团队。

登录后发帖

用户评价

还没有评价

登录后写评价

与“法律与政府数据”中的其他服务器比较i

  • 星标数多于此分类中其他 1857 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 1857 个服务器的 96% 更新
  • 基础检查结果等于或优于此分类中其他 1857 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Contract Compass 安全吗?

它在 4 项适用的基础检查中通过了 4 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。

它还在维护吗?

GitHub 仓库最后更新于3个月前,最新版本(1.86.19)于昨天进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,因此也能用于接受远程 MCP 的应用,例如网页版 ChatGPT(Business 及以上为完整 MCP;Pro 为只读)。

有什么可以替代它?

同一分类中有:Global law, Open Legal Data (Germany), LibreJustice, InfraNode, Fedlex Connector

功能相近的其他选择

同一分类、其他作者、命令已通过检查。官方的排在前面,再按星标排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Global law

The law of nearly every country on earth, any date: read it, see what changed it, check citations.

作者:lexifina广泛使用★ 19815天前更新

在云端运行✓ lexifina.com

Open Legal Data (Germany)

German court decisions (Rechtsprechung) and laws (Gesetze) with citation graph and citation checks.

作者:openlegaldata正在增长★ 1614天前更新

在云端运行✓ 服务方 · openlegaldata.io

LibreJustice

Search French-language and European case law and French legal texts (codes, statutes, treaties).

作者:librejustice起步阶段★ 352个月前更新

在云端运行✓ 服务方 · librejustice.fr

InfraNode

Keyless open data for 84 German cities: 12 lean read-only MCP tools covering 67 data types.

作者:street1983nk起步阶段★ 174个月前更新

在云端运行✓ 服务方 · infranode.dev

Fedlex Connector

Search Swiss federal legislation: laws, articles, amendments via the Fedlex SPARQL endpoint.

作者:JayTheSkier起步阶段★ 87个月前更新

在云端运行✓ 服务方 · fedlex-connector.ch

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

계약나침반 🧭 (Contract Compass)

Korean public procurement law MCP server & web service — a deterministic rule

engine for contract-method decisions (94 rules encoded directly from statutes), a

searchable corpus of Korean procurement statutes/regulations/adjudication tables,

and live court precedents & authoritative interpretations from law.go.kr.

All MCP tools are LLM-free: your AI client does the reasoning, this server

provides verifiable legal grounds. Remote endpoint: https://contract.sallim.app/mcp

공공계약 방법 결정 도우미 — 국가계약법·지방계약법 등 공공계약 법령을 기반으로, 발주하려는 계약(공사·용역·물품)에 적용 가능한 계약방법(입찰·수의계약·제한경쟁 등)과 법령 근거를 결정론적으로 안내하는 오픈소스 웹서비스 + MCP 서버입니다.

  • 결정 위저드: 계약유형·추정가격·조건을 입력하면 룰엔진(법령 직접 인코딩 94룰)이 적용 가능한 계약방법·낙찰자 결정방법·적격심사 기준을 후보와 근거 조문과 함께 제시
  • 법령 챗봇(Ask): 국가계약법령·계약예규·감사원 공공계약 실무가이드 등 공개 코퍼스 기반 RAG 검색 + 인용 답변 (웹 UI 전용)
  • MCP 서버(무LLM): Claude·ChatGPT·Cursor 등 AI 에이전트가 룰엔진 판정, 법령 조문, 예규·적격심사 세부기준(별표 포함), 판례·법령해석례(law.go.kr 실시간)를 직접 조회
  • 기관유형 지원: 국가기관 / 지방자치단체 / 공기업·준정부기관 프로파일
  • 결정론 우선: 계약방법 결정은 LLM이 아닌 룰엔진이 수행 — 같은 입력엔 항상 같은 결과. LLM은 웹 챗봇·설명 생성에만 사용(키 없이도 핵심 기능 동작)

⚠️ 면책: 이 서비스는 정보 제공 목적이며 법적 자문·유권해석이 아닙니다.

적격심사 통과점수·낙찰하한율·각종 한도는 발주기관별 세부기준과 법령 개정에 따라

다를 수 있으므로, 실제 발주 전 반드시 소속 기관 계약 부서와 현행 법령을 확인하세요.

MCP 서버 사용하기

원격 엔드포인트(Streamable HTTP): `https://contract.sallim.app/mcp` 무료: IP당 50콜/일 (전 도구) · 유료 키: 한도 상향 — 요금 안내

도구 목록 (11종) — Tools / ツール

아래 표는 라이브 서버의 `tools/list` 응답에서 그대로 뽑은 것입니다(실측 2026-08-18, 11종 전수). MCP 디렉토리·크롤러가 이 저장소를 정적으로 읽을 때 도구 이름을 찾는 자리이므로, 서버의 실제 도구 목록과 1:1로 유지합니다(불일치는 회귀로 취급). 누구나 직접 재현할 수 있습니다:

curl -s -X POST https://contract.sallim.app/mcp \

-H 'Content-Type: application/json' \ -H 'Accept: application/json, text/event-stream' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

→ decide_contract_method, search_law, search_references, search_cases, get_case,

get_law_article, get_law_article_asof, estimate_delay_penalty,

delay_exemption_guide, check_price_adjustment, report_issue (11 tools)

도구설명LLM
decide_contract_method룰엔진 결정론 판정 — 계약방법 후보·법령 근거·적격심사 파라미터✗
search_law법령 조문 검색(키워드·조문번호·부분매치·시맨틱 폴백)✗
get_law_article조문 원문 전체 조회 (현행) — 법률 자체의 미정비 인용은 notes로 경고✗
get_law_article_asof특정 시점에 시행 중이던 조문 — 과거 계약·처분·감사 대응(행위시법)✗
search_references전 코퍼스 통합 검색 — 계약예규·조달청/행안부 적격심사 세부기준(별표)·실무가이드✗
search_cases판례·법령해석례 검색 (law.go.kr 실시간 — 항상 현행)✗
get_case판시사항·판결요지·참조조문 / 질의요지·회답·이유 본문✗
estimate_delay_penalty지체상금·지연배상금 산정 — 법정 요율·기준금액·30% 한도 결정론 적용(국가/지방 요율이 다르다)✗
delay_exemption_guide지체일수 불산입(면책) 사유 지도 — 예규 사유·확인할 사실·기재부/행안부 회신 선례✗
check_price_adjustment물가변동 계약금액 조정 — 90일·3%·단품 문턱(국가 15%/지방 10%) 판정 + 조정금액·선금공제 산식✗
report_issue오류·개선 제보(오인용·개정 미반영 등) — 운영 검토 파이프라인 직결✗

클라이언트 설정:

# Claude Code

claude mcp add --transport http contract-compass https://contract.sallim.app/mcp

// Cursor (.cursor/mcp.json) — Streamable HTTP 직접 지원

{ "mcpServers": { "contract-compass": { "url": "https://contract.sallim.app/mcp" } } }

// Claude Desktop (claude_desktop_config.json) — mcp-remote 경유

{ "mcpServers": { "contract-compass": { "command": "npx", "args": ["-y", "mcp-remote", "https://contract.sallim.app/mcp"] } } }

ChatGPT: Settings → Connectors → Developer mode에서 위 URL을 커넥터로 추가.

설치했으면 AI에게 이렇게 물어 30초 안에 확인하세요 — *"국가기관이 2,000만원짜리 물품을 사려는데 어떤 계약방법을 쓸 수 있어? 근거 조문도."* 소액수의계약과 국가계약법 시행령 제26조 제1항 제5호가 나오면 정상입니다.

도구 명세·아키텍처·한도 정책 상세는 docs/MCP.md 참조.

평가셋 — 우리 판정을 남이 되짚을 수 있게

이 서버가 무엇을 맞히고 무엇을 못 맞히는지는 evaluation.xml에 공개돼 있습니다(20문항, 답은 전부 실측값). 지어낸 문항은 없습니다 — 미검증 문항은 회귀 검사를 거짓 실패시키기 때문입니다.

기계 검증은 결정론 회귀 하네스가 합니다. LLM을 쓰지 않아 비용 없이 재현됩니다:

python3 tools/mcp_regression.py --endpoint https://contract.sallim.app/mcp

28 케이스 · exit 0=전부 PASS / 1=회귀 존재 / 2=서버 미도달

각 케이스는 과거에 실제로 발견·수리된 결함의 회귀입니다(삭제된 조문을 근거처럼 반환하던 문제, 지자체 판정에 국가 수치가 섞이던 문제 등). 무료 티어는 IP당 50콜/일이고 이 스위트가 28콜을 쓰므로 하루 1회가 한계입니다.

금액구간별 계약방법·수의계약 사유·용어 가이드 페이지(/g/)의 생성·검증·배포 절차는 docs/PROGRAMMATIC_SEO.md 참조 — 룰셋에서 파생 생성하므로 페이지를 수기 편집하지 말 것. 로컬 stdio 실행: python3 mcp/server.py (등록: codex mcp add contract-compass -- python3 /path/to/mcp/server.py)

구성

backend/    FastAPI — 룰엔진·RAG·LLM 연동 (frontend/dist 정적 서빙 포함, :8402)

frontend/ React + TypeScript (Vite) — 위저드 UI mcp/ MCP 서버 — stdio(로컬) / Streamable HTTP(:8403, 원격) · 무LLM 도구 11종 edge/ Cloudflare Worker (contract-edge) — 장애 폴백 게이트 · law API 엣지 캐시 rules/ 계약 룰셋 JSON (contract_rules·law_registry 등) ← 결정론 핵심 tools/ 법령·예규·별표 수집/인덱싱 파이프라인 (law.go.kr Open API) · 가이드 페이지 생성기 etl/ PDF/DOCX → 청크 → ChromaDB 파이프라인 docs/ MCP 명세 · 장애 전환 런북 · 가이드 페이지 파이프라인 scripts/ 스탠바이 동기화 · 반출 전 기밀 검사 tests/ 단위·회귀 테스트 + Ask 질문뱅크

빠른 시작

# 1) 백엔드 의존성 (+ MCP 서버까지 쓰려면 mcp/requirements.txt 추가)

pip install -r backend/requirements.txt

2) 프론트 빌드 (Node.js는 빌드 때만 필요)

cd frontend && npm install && npm run build && cd ..

3) 환경설정 (선택 — LLM 키 없이도 동작)

cp .env.example .env

4) 실행 (rate limiter는 SQLite 공유 — 다중 워커 가능, 코어 수에 맞춰 조정)

python3 -m uvicorn backend.main:app --host 0.0.0.0 --port 8402

RAG 코퍼스 구축 (선택)

법령 챗봇·근거 검색을 쓰려면 공개 코퍼스를 인덱싱합니다:

# 법령 XML을 tools/laws/ 에 준비(law.go.kr Open API — tools/lib/lawgo.py 헬퍼 참조) 후 인덱싱

python3 tools/index_laws.py # → law_articles 컬렉션

계약예규(행정규칙) 수집·인덱싱

python3 tools/fetch_admin_rules.py && python3 tools/parse_admin_rules.py python3 tools/index_admin_rules.py # → admin_rules 컬렉션

법령 별표·적격심사 세부기준 전문 PDF (부정당 제재기준·하자담보기간·낙찰하한율 별표)

python3 tools/fetch_law_tables.py

공개 간행물(감사원 공공계약 실무가이드 등)을 data/source_docs/ 에 넣고

python3 tools/reindex_qa.py # → public_guides 컬렉션

BM25 하이브리드 인덱스

python3 tools/build_bm25_index.py

코퍼스가 없으면 위저드(룰엔진)는 정상 동작하고, RAG 검색 결과만 비어 있습니다. 판례·법령해석례 조회는 코퍼스와 무관하게 law.go.kr Open API 키(LAW_API_KEY)만 있으면 동작합니다.

데이터 출처 (전부 공개 자료)

  • 법령·시행령·시행규칙·별표·판례·법령해석례: 국가법령정보센터 Open API (출처표시)
  • 계약예규(적격심사기준·정부 입찰·계약 집행기준 등): 기획재정부 행정규칙
  • 적격심사 세부기준: 조달청·행정안전부 행정규칙
  • 공공계약 실무가이드: 감사원 공개 간행물
  • 물품분류·중소기업자간 경쟁제품: 조달청·중소벤처기업부 고시

라이선스

MIT