๊ณ์ฝ๋์นจ๋ฐ ๐งญ (Contract Compass)
Glama MCP server
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์ฝ/์ผ (์ ๋๊ตฌ) ยท ์ ๋ฃ ํค: ํ๋ ์ํฅ โ ์๊ธ ์๋ด
์๋ ํ๋ ๋ผ์ด๋ธ ์๋ฒ์ 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"}'
๋๊ตฌ ์ค๋ช
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 mcp add --transport http contract-compass https://contract.sallim.app/mcp
{ "mcpServers" : { "contract-compass" : { "url" : "https://contract.sallim.app/mcp" } } }
{ "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
๊ฐ ์ผ์ด์ค๋ ๊ณผ๊ฑฐ์ ์ค์ ๋ก ๋ฐ๊ฒฌยท์๋ฆฌ๋ ๊ฒฐํจ ์ ํ๊ท์
๋๋ค(์ญ์ ๋ ์กฐ๋ฌธ์ ๊ทผ๊ฑฐ์ฒ๋ผ
๋ฐํํ๋ ๋ฌธ์ , ์ง์์ฒด ํ์ ์ ๊ตญ๊ฐ ์์น๊ฐ ์์ด๋ ๋ฌธ์ ๋ฑ). ๋ฌด๋ฃ ํฐ์ด๋ 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 ์ง๋ฌธ๋ฑ
ํฌ
๋น ๋ฅธ ์์
pip install -r backend/requirements.txt
cd frontend && npm install && npm run build && cd ..
cp .env.example .env
python3 -m uvicorn backend.main:app --host 0.0.0.0 --port 8402
RAG ์ฝํผ์ค ๊ตฌ์ถ (์ ํ)
๋ฒ๋ น ์ฑ๋ดยท๊ทผ๊ฑฐ ๊ฒ์์ ์ฐ๋ ค๋ฉด ๊ณต๊ฐ ์ฝํผ์ค๋ฅผ ์ธ๋ฑ์ฑํฉ๋๋ค:
python3 tools/index_laws.py
python3 tools/fetch_admin_rules.py && python3 tools/parse_admin_rules.py
python3 tools/index_admin_rules.py
python3 tools/fetch_law_tables.py
python3 tools/reindex_qa.py
python3 tools/build_bm25_index.py
์ฝํผ์ค๊ฐ ์์ผ๋ฉด ์์ ๋(๋ฃฐ์์ง)๋ ์ ์ ๋์ํ๊ณ , RAG ๊ฒ์ ๊ฒฐ๊ณผ๋ง ๋น์ด ์์ต๋๋ค.
ํ๋กยท๋ฒ๋ นํด์๋ก ์กฐํ๋ ์ฝํผ์ค์ ๋ฌด๊ดํ๊ฒ law.go.kr Open API ํค(LAW_API_KEY)๋ง ์์ผ๋ฉด ๋์ํฉ๋๋ค.
๋ฐ์ดํฐ ์ถ์ฒ (์ ๋ถ ๊ณต๊ฐ ์๋ฃ)
๋ฒ๋ นยท์ํ๋ นยท์ํ๊ท์นยท๋ณํยทํ๋กยท๋ฒ๋ นํด์๋ก: ๊ตญ๊ฐ๋ฒ๋ น์ ๋ณด์ผํฐ Open API (์ถ์ฒํ์)
๊ณ์ฝ์๊ท(์ ๊ฒฉ์ฌ์ฌ๊ธฐ์คยท์ ๋ถ ์
์ฐฐยท๊ณ์ฝ ์งํ๊ธฐ์ค ๋ฑ): ๊ธฐํ์ฌ์ ๋ถ ํ์ ๊ท์น
์ ๊ฒฉ์ฌ์ฌ ์ธ๋ถ๊ธฐ์ค: ์กฐ๋ฌ์ฒญยทํ์ ์์ ๋ถ ํ์ ๊ท์น
๊ณต๊ณต๊ณ์ฝ ์ค๋ฌด๊ฐ์ด๋: ๊ฐ์ฌ์ ๊ณต๊ฐ ๊ฐํ๋ฌผ
๋ฌผํ๋ถ๋ฅยท์ค์๊ธฐ์
์๊ฐ ๊ฒฝ์์ ํ: ์กฐ๋ฌ์ฒญยท์ค์๋ฒค์ฒ๊ธฐ์
๋ถ ๊ณ ์
๋ผ์ด์ ์ค
MIT