Skip to main content
Glama

๐Ÿฉบ ์‹ธ์ธ์ „์— (SafeSign)

์นด์นด์˜ค AGENTIC PLAYER 10 ์ถœํ’ˆ์ž‘ ยท ๊ณ„์•ฝ์„œ ๊ฑด๊ฐ•๊ฒ€์ง„ MCP ์‚ฌ์ธํ•˜๊ธฐ ์ „์—, 30์ดˆ ๊ฑด๊ฐ•๊ฒ€์ง„.

๊ณ„์•ฝ์„œยท์•ฝ๊ด€์„ **์•ˆ์ „๋„ ์ ์ˆ˜ยท๋“ฑ๊ธ‰(A~F)**์œผ๋กœ ์ง„๋‹จํ•˜๊ณ , ๋…์†Œ์กฐํ•ญยท๋น ์ง„ ๋ณดํ˜ธ์žฅ์น˜๋ฅผ ์žก๊ณ , ์‹ค์ œ ๋ถ„์Ÿ ๋‹ค๋ฐœ ์œ ํ˜•๊ณผ์˜ ์ผ์น˜๋„ยท์˜ˆ์ƒ ํ”ผํ•ดยท๊ถŒ์žฅ ์ˆ˜์ •์•ˆ๊นŒ์ง€ ๋”ํ•ด ๊ฑด๊ฐ•๊ฒ€์ง„ ์นด๋“œ ํ•œ ์žฅ์œผ๋กœ ๋Œ๋ ค์ฃผ๋Š” MCP ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. ("AI๊ฐ€ ๊ณ„์•ฝ์„œ ์ฝ์–ด์คŒ"์ด ์•„๋‹ˆ๋ผ "์‚ฌ์ธ ์ „ 30์ดˆ ๊ฑด๊ฐ•๊ฒ€์ง„"์ž…๋‹ˆ๋‹ค.)

์™œ ๋‹ค๋ฅธ๊ฐ€ (ChatGPT๋กœ๋Š” ๋ถˆ๊ฐ€๋Šฅ)

๐Ÿฉบ ์•ˆ์ „๋„ ์ ์ˆ˜ยท๋“ฑ๊ธ‰

๊ณ„์•ฝ์„ 100์  ๋งŒ์  + A~F ๋“ฑ๊ธ‰์œผ๋กœ. "๋‚ด ์ „์„ธ๊ณ„์•ฝ 62์  ใ„ทใ„ท"์ด ์นดํ†ก์— ํผ์ง‘๋‹ˆ๋‹ค.

๐Ÿšจ ๋ถ„์Ÿ ๋‹ค๋ฐœ ์œ ํ˜• ๋งค์นญ

"์ด ์กฐํ•ญ, ์ „์„ธ ๋ณด์ฆ๊ธˆ ๋ฐ˜ํ™˜ ์ง€์—ฐ ๋ถ„์Ÿ์—์„œ ์ž์ฃผ ๋“ฑ์žฅํ•˜๋Š” ์œ ํ˜•" + ์˜ˆ์ƒ ํ”ผํ•ด + ๊ถŒ์žฅ ์ˆ˜์ •์•ˆ.

๐Ÿ  ์‹œ์„ธ ๊ต์ฐจ๊ฒ€์ฆ

๊ตญํ† ๋ถ€ ์‹ค๊ฑฐ๋ž˜๊ฐ€๋กœ ๊นกํ†ต์ „์„ธ(์ „์„ธ๊ฐ€์œจ) ๋ฅผ ๋ฐ์ดํ„ฐ๋กœ ํŒ์ • (์ „๊ตญ ์‹œ๊ตฐ๊ตฌ 268๊ณณ).

โš–๏ธ ๊ฒ€์ฆ๋œ ์กฐ๋ฌธ ์›๋ฌธ

์œ„ํ—˜๋งˆ๋‹ค ์‹ค์ œ ์กฐ๋ฌธ ์›๋ฌธ ์ธ์šฉ(๊ตญ๊ฐ€๋ฒ•๋ น์ •๋ณด์„ผํ„ฐ). ํ™˜๊ฐ ๋ฐฉ์ง€ โ€” ํŒ์ •์€ ๋ฃฐ, ์ถ”์ถœ์€ LLM.

๐Ÿ”Ž ๋ˆ„๋ฝ ์—ญํƒ์ง€

"์žˆ๋Š” ์œ„ํ—˜"์ด ์•„๋‹ˆ๋ผ "์—†์–ด์„œ ์œ„ํ—˜ํ•œ ๊ฒƒ"(ํ™•์ •์ผ์žยท๋ณด์ฆ๋ณดํ—˜ ํŠน์•ฝ ๋“ฑ)์„ ์žก์Šต๋‹ˆ๋‹ค.

Related MCP server: Contract Review AI MCP

๋น ๋ฅธ ์‹œ์ž‘

npm install
npm start                  # MCP ์„œ๋ฒ„ + ๋ฐ๋ชจ: http://127.0.0.1:8787
# โ†’  /            ์นด์นด์˜คํ†ก ์Šคํƒ€์ผ ๋ฐ๋ชจ (์ƒ˜ํ”Œ 1ํƒญ ์ฒดํ—˜)
# โ†’  /health      ๋ฐฐํฌ ํ”„๋กœ๋ธŒ
# โ†’  POST /mcp    MCP (tools/list, tools/call)
npm test                   # ๋„๋ฉ”์ธยท์„œ๋ฒ„ e2e (์ „ ํ…Œ์ŠคํŠธ ํ†ต๊ณผ)
npm run typecheck

๋„์ปค(์นด์นด์˜ค ํด๋ผ์šฐ๋“œ ๋ฐฐํฌ):

docker build -t safesign-mcp . && docker run -p 8787:8787 --env-file .env safesign-mcp

๋ฐฐํฌยท๋“ฑ๋ก: docs/deploy/kakao-cloud.md ยท docs/deploy/playmcp-registration.md

๋ถ„์„ ํ˜ธ์ถœ(์˜ˆ):

curl -X POST http://127.0.0.1:8787/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"analyze_contract","arguments":{"text":"<๊ณ„์•ฝ์„œ ํ…์ŠคํŠธ>"}}}'

MCP ๋„๊ตฌ

  • analyze_contract โ€” ํ…์ŠคํŠธยท์‚ฌ์ง„(๋น„์ „ OCR)ยทPDF ๋ฌด์—‡์ด๋“  ์ž…๋ ฅ โ†’ ์•ˆ์ „๋„ ์ ์ˆ˜ยท๋“ฑ๊ธ‰ + ์œ„ํ—˜์กฐํ•ญ + ๋ถ„์Ÿ์œ ํ˜•/์˜ˆ์ƒํ”ผํ•ด + ๊ฒ€์ฆ์กฐ๋ฌธ + ์ž„๋Œ€์ฐจ ๊นกํ†ต์ „์„ธ(์ „์„ธ๊ฐ€์œจ) + ์นด๋“œ PNG URL

  • situation_guide โ€” "โ—‹โ—‹ํ•  ๋•Œ ๋ญ ๋ด์•ผ ํ•ด?" โ†’ ์›๋ฃธ/์ „์„ธ/์˜คํ”ผ์Šคํ…”ยท๊ตํ†ต์‚ฌ๊ณ ยท๋ณ‘์›ยท๋ณดํ—˜์ฒญ๊ตฌยท์ค‘๊ณ ๊ฑฐ๋ž˜ยท๋Œ€์ถœ ๋“ฑ ์ƒํ™ฉ๋ณ„ ์ฒดํฌ๋ฆฌ์ŠคํŠธยท์ฑ™๊ธธ์„œ๋ฅ˜ยทํ™•์ธ์‚ฌํ•ญยทํ•จ์ •

  • explain_for_family โ€” ๋ถ€๋ชจ๋‹˜ยท์นœ๊ตฌ์—๊ฒŒ ์„ค๋ช…ํ•˜๋“ฏ ์–ด๋ ค์šด ์šฉ์–ด ์—†์ด ์‰ฌ์šด ๋ง๋กœ ํ’€์–ด์ฃผ๋Š” ์š”์•ฝ

  • explain_term โ€” ํ™•์ •์ผ์žยท๋Œ€ํ•ญ๋ ฅยท์ œ์†Œ์ „ํ™”ํ•ด ๋“ฑ ์šฉ์–ด ํ‰์ด ์„ค๋ช…

  • suggest_negotiation โ€” ๋ถˆ๋ฆฌ ์กฐํ•ญ์— ๋Œ€ํ•œ ์š”๊ตฌยท์ˆ˜์ • ๋ฌธ๊ตฌ ์ƒ์„ฑ

์•ˆ์ „ยท์ฑ…์ž„

๋ฒ•๋ฅ  ์ž๋ฌธ์ด ์•„๋‹Œ ์ฐธ๊ณ ์šฉ 1์ฐจ ์ ๊ฒ€์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์‘๋‹ต์— ๋ฉด์ฑ… + ์ „๋ฌธ๊ฐ€ ํ™•์ธ CTA๋ฅผ ํฌํ•จํ•˜๋ฉฐ, ๊ฐœ์ธ์ •๋ณด(PII)๋Š” ๊ธฐ๋ณธ ๋น„์ €์žฅ + ๊ฒฝ๊ณ„ ๋งˆ์Šคํ‚นํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์„œ

์•„ํ‚คํ…์ฒ˜

MCP ๋„๊ตฌ โ†’ Express(Streamable HTTP) โ†’ ๋„๋ฉ”์ธ(์ˆœ์ˆ˜ ๋ฃฐ์—”์ง„: ํŒ์ •) โ† ์„œ๋น„์Šค(๋น„์ „์ถ”์ถœ/์นด๋“œ)

ํŒ์ • ๋กœ์ง์€ src/domain/(๊ฒฐ์ •๋ก ยทํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ)์—, ๋ถ€์ˆ˜ํšจ๊ณผ(LLM/์ €์žฅ/HTTP)๋Š” src/serverยทsrc/services์—. ์Šคํƒ์€ moyo์—์„œ ๊ฒ€์ฆ๋œ TS ESM + MCP SDK + @resvg(ํ•œ๊ธ€ ์นด๋“œ) + zod + vitest.

Related MCP Connectors

Related MCP Servers