streamable-httpApache-2.0updated 15d ago
๋ชจ๋ ๋ต์ด ๊ฒฐ์ ์ ๊ณ์ฐ์์ ์์ํ๋ ๋์ ์ ์(ๅฝยทๅยท็ธ) ์์ง. ๊ณ์ฐ์, ์ ํ, ์ถ์ฒ, ๋ถํ์ค์ฑ์ ๊ตฌ์กฐํํด ๋ฐํํ๋ค.
What can you do with Legend Saju?
Legend Saju
๋ชจ๋ ๋ต์ด ๊ฒฐ์ ์ ๊ณ์ฐ์์ ์์ํ๋ ๋์ ์ ์(ๅฝยทๅยท็ธ) ์์ง. ๊ณ์ฐ์, ์ ํ, ์ถ์ฒ, ๋ถํ์ค์ฑ์ ๊ตฌ์กฐํํด ๋ฐํํ๋ค.
English ยท ๊ธฐ์ฌํ๊ธฐ ยท ์๊ฒฉ MCP
๊ฐ์ ์๋ ์์ผ์ ์ฌ๋ฌ ์ ํต์ผ๋ก ๊ณ์ฐํ๋ค. ๊ณ์ฐ ๊ฒฝ๋ก ์์๋ ์จ๊ฒจ์ง LLM ํธ์ถ์ด 0ํ๋ค.
์ถ์ฒ๊ฐ ์ฐ๊ฒฐ๋ ์ง์ 777๊ฑด ยท ๋์ก์ 720๊ตญ ยท ํ๊ตญ ์ธ๋ช ์ฉ ํ์ ๊ด์ธก 9,495๊ฑด ยท ๊ณ์ฐ ๊ฒฝ๋ก ๋ชจ๋ธ ํธ์ถ 0ํ
Legend Saju๋ ์ฌ์ฃผยท๋ช ๋ฆฌ, ์๋ฏธ๋์, ๊ธฐ๋ฌธ๋๊ฐ, ๋์ก์, ์ฒ ํ์ ์, ์ฑ๋ช ํ, ํด๋ชฝ๊น์ง ๋ช (ๅฝ)ยท๋ณต(ๅ)ยท์(็ธ) ์ผ์ ์ ๊ณ์ฐ์ ํ๋์ ์์ง์์ ๋ค๋ฃฌ๋ค. ์ ํ๊ฐ ๋ค๋ฅด๋ฉด ๊ฐ๊ฐ์ ๊ฒฐ๊ณผ๋ก ๋๋ํ ๋ณด์กดํ๊ณ , ์ถ์์๊ฐ์ ๋ชจ๋ฅด๋ฉด ํ๋ณด ์ฐจํธ๋ฅผ ๋ถ๋ฆฌํด ๊ณ์ฐํ๋ค.
๊ฐ์ฅ ๋น ๋ฅธ ์ฌ์ฉ๋ฒ
์ค์น ์์ด ์ฐ๊ฒฐํ ์ ์๋ HTTPS MCP ์ฃผ์๋ค.
https://saju.tripsight.co.kr/mcp
๊ณต์ MCP Registry ์ด๋ฆ์ io.github.SihyeonJeon/legend-saju๋ค. ๊ธฐ์กด ์ฃผ์ https://legend-saju-mcp-production.up.railway.app/mcp๋ ๊ฐ์ ์๋ฒ๋ก ์ฐ๊ฒฐ๋๋ค.
Claude Code
์๋ ๋ช ๋ น์ ๋ชจ๋ ํ๋ก์ ํธ์์ ์ธ ์ ์๋๋ก ์ฌ์ฉ์ ๋ฒ์์ ์ฐ๊ฒฐํ๋ค.
claude mcp add --transport http --scope user legend-saju https://saju.tripsight.co.kr/mcp
claude mcp list
Claude Code๋ฅผ ์ด๊ณ /mcp์์ legend-saju๊ฐ ์ฐ๊ฒฐ๋๋์ง ํ์ธํ ๋ค์ ํ์์ฒ๋ผ ์ง๋ฌธํ๋ฉด ๋๋ค.
ChatGPT ๊ฐ๋ฐ์ ๋ชจ๋
- ChatGPT์ Settings โ Security and login์์ Developer mode๋ฅผ ์ผ ๋ค.
- ChatGPT Plugins์์
+๋ฅผ ๋๋ฅธ๋ค. - ์ด๋ฆ๊ณผ ์ค๋ช
์ ์
๋ ฅํ๊ณ Connection์ ์ MCP ์ฃผ์๋ฅผ
/mcp๊น์ง ํฌํจํด ๋ฃ๋๋ค. - ์ฐ๊ฒฐ์ ๋ง๋ ๋ค
legend_saju_read_fortune,legend_saju_analyze_compatibility,legend_saju_card_natal๋ฑ์ด ๋ฐ๊ฒฌ๋๋์ง ํ์ธํ๋ค. - ์ ๋ํ์ ๋๊ตฌ ๋ฉ๋ด์์ ์ฐ๊ฒฐ์ ์ ํํ๊ณ ์์ฐ์ด๋ก ์ง๋ฌธํ๋ค.
ChatGPT์์๋ ๊ณ์ฐ ๊ฒฐ๊ณผ๊ฐ ์นด๋ ์์ ฏ(ChatGPT Apps)์ผ๋ก ๋ ๋๋ง๋๋ค. ์๊ตญ ์นด๋, ์์ญ๋ณ ์ด์ธ ์นด๋, ๊ถํฉ ์นด๋, ๋์ด ํ์๋ผ์ธ ๋ค ์ข ๋ฅ๊ฐ ์ง๋ฌธ ์ ํ์ ๋ง์ถฐ ๋ฌ๋ค. ์์ ฏ ๋ ๋๋ง์ ์น(chatgpt.com)์์ ๊ฐ์ฅ ์์ ์ ์ด๋ค.
๊ฐ๋ฐ์ ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ๋ ๊ณ์ ๊ณผ ์ํฌ์คํ์ด์ค ์ ์ฑ ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์๋ค. ์์ธํ ์ ์ฐจ๋ OpenAI์ ํ๋ฌ๊ทธ์ธ ์ฐ๊ฒฐ ์๋ด๋ฅผ ์ฐธ๊ณ ํ๋ฉด ๋๋ค.
Codex
MCP๋ง ๋ฐ๋ก ์ฐ๊ฒฐํ๋ ค๋ฉด ๋ค์ ๋ ์ค์ด๋ฉด ๋๋ค.
codex mcp add legend-saju-remote --url https://saju.tripsight.co.kr/mcp
codex mcp list
MCP ์ฐ๊ฒฐ๊ณผ ์์ฐ์ด ์ฌ์ฉ ์ง์นจ์ ํจ๊ป ์ค์นํ๋ ค๋ฉด ์ ์ฅ์๋ฅผ ํ๋ฌ๊ทธ์ธ ์์ค๋ก ์ถ๊ฐํ๊ณ Plugins ํ๋ฉด์์ Legend Saju๋ฅผ ์ค์นํ๋ค.
codex plugin marketplace add SihyeonJeon/legend-saju --ref main
์๊ฒฉ ์๋ฒ๋ ์ ๋ ฅ๊ฐ์ ์ ์ฅ ์์ด ์ฒ๋ฆฌํ๊ณ ๋ชจ๋ธ API ํธ์ถ 0ํ๋ฅผ ์ ์งํ๋ค. ์์ฒญ ํฌ๊ธฐ, ๋ถ๋น ์์ฒญ ์, ๋์ ์คํ ์ ์ ํ์ ์ ์ฉ๋๋ค.
๋ก์ปฌ์์ ์คํํ๊ธฐ
์๋ ์์ผ์ด๋ ์ด๋ฆ์ ์ธ๋ถ ์๋ฒ๋ก ๋ณด๋ด๊ณ ์ถ์ง ์๋ค๋ฉด Node.js 20 ์ด์์ด ์ค์น๋ ์ปดํจํฐ์์ STDIO ๋ฐฉ์์ผ๋ก ์คํํ๋ค.
git clone https://github.com/SihyeonJeon/legend-saju.git
cd legend-saju
npm ci
npm run build
์ ์ฅ์ ๋ฃจํธ์์ ์ฌ์ฉํ๋ ํด๋ผ์ด์ธํธ์ ๋ง๋ ๋ช
๋ น์ ์คํํ๋ค. $PWD๋ ์
ธ์ด ํ์ฌ ์ ๋๊ฒฝ๋ก๋ก ๋ฐ๊ฟ ์ ์ฅํ๋ค.
codex mcp add legend-saju -- node "$PWD/bin/legend-saju-mcp.js"
claude mcp add --transport stdio --scope user legend-saju -- node "$PWD/bin/legend-saju-mcp.js"
์ค์น ๋ค์๋ ๋๊ตฌ ์ด๋ฆ์ด๋ JSON์ ๋งํ ํ์ ์์ด ํ์์ฒ๋ผ ์ง๋ฌธํ๋ฉด ๋๋ค.
์๋ ฅ 1990๋ 1์ 1์ผ ์ ์ค ์ถ์์ด์ผ. ์ง์ , ์ฌ๋ฌผ, ๊ฒฐํผ๊ณผ ์์ผ๋ก 3๋ ์ ์ข ํฉํด์ ๋ด์ค.
๋ ์ฌ๋์ ์๋ ์์ผ์๋ฅผ ์ค๊ฒ. ์์ชฝ ์๊ตญ ์ ์ฒด๋ก ๊ถํฉ๊ณผ ๊ฒฐํผ ์๊ธฐ๋ฅผ ํจ๊ป ๋ด์ค.
์ด๋ฆ ํ์๋ฅผ ์ค๊ฒ. ์ฌ์ฃผ์ ๋ถ๋ฆฌํด์ ์ฑ๋ช ํ ๊ทผ๊ฑฐ๋ ๋ถ์ํด์ค.
๋ค๋ฅธ MCP ํด๋ผ์ด์ธํธ์์ ์ฐ๊ฒฐํ๊ธฐ
์๊ฒฉ HTTP MCP๋ฅผ ์ง์ํ๋ ํด๋ผ์ด์ธํธ๋ผ๋ฉด ์๋ ์ค์ ์ ์ฌ์ฉํ ์ ์๋ค. ์ค์ ํ์ผ์ ์์น๋ ํด๋ผ์ด์ธํธ๋ง๋ค ๋ค๋ฅด๋ค.
{
"mcpServers": {
"legend-saju": {
"type": "http",
"url": "https://saju.tripsight.co.kr/mcp"
}
}
}
๋ก์ปฌ ์์ค๋ฅผ ๊ณ ์ ํด์ ์ฐ๊ณ ์ถ๋ค๋ฉด ์ ์ฅ์๋ฅผ ๋น๋ํ ๋ค CLI ๋ํผ๋ฅผ ์ง์ ์คํํ๋ค.
{
"mcpServers": {
"legend-saju": {
"command": "node",
"args": ["/์ ๋/๊ฒฝ๋ก/legend-saju/bin/legend-saju-mcp.js"]
}
}
}
๋ก์ปฌ STDIO ๋ฐฉ์์ ์ ๋น๋๋ฅผ ํ ๋ฒ ๋ง์น ๋ค ์ฌ์ฉํ ์ ์๋ค.
MCP๊ฐ ํ๋ ์ผ
MCP ์๋ฒ๋ ์ฌ์ฉ์์ ๋ชฉ์ ์ด ์ด๋ฆ์ ๋๋ฌ๋๋ ์ฝ๊ธฐ ์ ์ฉ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ค.
| ๋๊ตฌ | ์ญํ |
|---|---|
legend_saju_read_fortune |
์ผ๋ฐ ์ฌ์ฃผ, ์ด์ด, ์ฌ๋ฌผยท์ฌ์ ยท์ง์ ยท์ฐ์ ยท๊ฑด๊ฐ์ด์ ์ง๋ฌธ ๋ฒ์์ ๋ง์ถฐ ๊ณ์ฐํ๋ค |
legend_saju_analyze_compatibility |
๋ ์ฌ๋์ ์ถ์ ์ ๋ณด๋ฅผ ๋น๊ตํ๋ค |
legend_saju_select_dates |
๋ช ์์ ์ผ๋ก ํ์ผ์ ์์ฒญํ ๊ฒฝ์ฐ์๋ง ํ๋ณด ๋ ์ง๋ฅผ ๊ณ์ฐํ๋ค |
legend_saju_cast_divination |
๊ธฐ๋ฌธยท์ก์ยท์ฃผ์ญ์ฒ๋ผ ์ง๋ฌธ ์๊ฐ์ด๋ ๊ด๊ฐ ํ์ํ ๊ณ์ฐ์ ์ํํ๋ค |
legend_saju_analyze_name |
์ค์ ์ด๋ฆ ํ์, ๋ฒ์ ์ธ๋ช ์ฉ ํ์ ๊ด์ธก, 81์์ ์๋ช ์ ๋ณด๋ฅผ ๋ถ๋ฆฌํด ๊ณ์ฐํ๋ค |
legend_saju_interpret_dream |
์๋ฏธ ๋์กฐ๊ฐ ๋๋ ๊ต์ฐจ ์ ์น ๋ฒ์ ์์์ ๊ฟ์ ๊ณตํต ๋ชจํฐํ์ ์ถฉ๋ ์กฐ๊ฑด์ ๋ฐํํ๋ค |
legend_saju_manifest |
ํ์ฌ ์์ง์ ๋ค์ด ์๋ ๊ณ์ฐ๋ฒ, ์ถ์ฒ, ๋ฐ์ดํฐ ๋ฒ์๋ฅผ ํ์ธํ๋ค |
legend_saju_capabilities |
์ ๋ฌธ์ ์ธ ์ง๋ฌธ์ ๋ง๋ ์ธ๋ถ ๊ณ์ฐ๋ฒ์ ์ฐพ๋๋ค |
legend_saju_run_methods |
์ด๋ฆ์ ์ง์ ํ ์ ํยท๊ณ์ฐ๋ฒ์ด๋ ๋ณตํฉ ๊ณ์ฐ์ ํ ์คํ ๊ณํ์ผ๋ก ๋ฌถ๋๋ค |
legend_saju_card_natal |
๋ค ๊ธฐ๋ฅยท์คํ ๋ฐธ๋ฐ์คยท์์ /๊ฒฉ๊ตญ/์ฉ์ ํ์ ยท์ ์ด์ ์๊ตญ ์นด๋ ์์ ฏ์ผ๋ก ๋ ๋๋งํ๋ค |
legend_saju_card_fortune |
์ด์ดยท์ฌ๋ฌผ์ดยท์ฐ์ ์ด ๋ฑ ์์ญ๋ณ ์ด์ธ ์นด๋ ์์ ฏ์ ๋ ๋๋งํ๋ค |
legend_saju_card_compatibility |
๋ ์ฌ๋์ ์ผ์ฃผ์ ํฉ์ถฉ ์ ํธ๋ฅผ ๊ถํฉ ์นด๋ ์์ ฏ์ผ๋ก ๋ ๋๋งํ๋ค |
legend_saju_card_timeline |
๋์ด ํ์๋ผ์ธ ์์ ฏ์ ๋ ๋๋งํ๊ณ ์๊ธฐ ์ง๋ฌธ์ ์ฐ๋๋ฅผ ํ์ํ๋ค |
์ผ์์ ์ธ ์ด์ธ ์์ฒญ์ ๋ชฉ์ ๋ณ ๋๊ตฌ๊ฐ ํ์ํ ๊ณ์ฐ๋ง ๊ณ ๋ฅธ๋ค. detailLevel์ ๊ณ์ฐ ๋ฒ์๋ฅผ ์ ํ๊ณ outputMode๋ ๋ฐํ ํ์์ ์ ํ๋ค. ๊น์ ์ข
ํฉ ๋ถ์์ detailLevel: "expert"๋ก ๊ณ์ฐํ๋ ๊ธฐ๋ณธ ์๋ต์ ์ฝ๊ธฐ ์ข์ consumer ํ์์ ์ ์งํ๋ค. ์ง์ ์์ฐยท์๋ฌธยท์ถ์ฒ๊ฐ ํ์ํ ๋ ๊ฐ์ ์
๋ ฅ์ outputMode: "evidence"๋ก ํธ์ถํ๋ค.
์นด๋ ๋๊ตฌ์ ๊ณ์ฐ ๊ฐ์ ์ ๋ถ ์๋ฒ๊ฐ ์ฑ์ฐ๊ณ , ํด์ ๋ฌธ์ฅ๊ณผ ์ ์๋ ํธ์คํธ ๋ชจ๋ธ์ด ์์ฑํด ์นด๋์ narrativeยทtext ํ๋๋ก ์ ๋ฌํ๋ค. ์นด๋์๋ ํด์ ์์ฑ ์ฃผ์ฒด๊ฐ ๋ผ๋ฒจ๋ก ํ์๋๋ค.
์ฌ์ฉ์์ ์์ฐ์ด ์ง๋ฌธ
โ
ํธ์คํธ ๋ชจ๋ธ์ด ์
๋ ฅ์ ์ ๋ฆฌํ๊ณ ๊ณ์ฐ๋ฒ์ ํ์
โ
Legend Saju MCP๊ฐ ๊ฒฐ์ ๋ก ์ ๊ณ์ฐ ์ํ
โ
๊ทผ๊ฑฐ ID๊ฐ ์ฐ๊ฒฐ๋ ์์ฝยท์์ญ๋ณ ํด์ยทํ์๋ผ์ธ
โ
ํธ์คํธ ๋ชจ๋ธ์ด ๊ทผ๊ฑฐ์ ๊ฒฝ๊ณ๋ฅผ ๋ณด์กดํด ๋ํ๋ก ์ ๋ฌ
Legend Saju MCP ์์ฒด๋ OpenAI๋ Anthropic API ํค ์์ด ๋์ํ๋ฉฐ ๊ณ์ฐ ๊ฒฝ๋ก์ ๋ชจ๋ธ ํธ์ถ 0ํ๋ฅผ ์ ์งํ๋ค. ๋ํ์ ์ค๋ช ์๋ ์ฌ์ฉ ์ค์ธ CodexยทClaudeยท๊ธฐํ ํด๋ผ์ด์ธํธ์ ๊ธฐ์กด ๋ชจ๋ธ ์ธ์ ์ด ์ฐ์ธ๋ค.
MCP์ ๋๋ด ํ๋ฌ๊ทธ์ธ์ ์ฐจ์ด
- MCP๋ง ์ฐ๊ฒฐํ๋ฉด ๊ณ์ฐ ์์ง๊ณผ ๋ชฉ์ ๋ณ ๋๊ตฌ๋ฅผ ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ค.
plugins/legend-saju/์ Codex ํ๋ฌ๊ทธ์ธ์๋ MCP ์ค์ ๊ณผ ์์ฐ์ด ์ฌ์ฉ ์ง์นจ์ด ํจ๊ป ๋ค์ด ์๋ค. ์ฌ์ฉ์๊ฐ capability ID๋ ์ ๋ ฅ ์คํค๋ง๋ฅผ ๊ณ ๋ฅด์ง ์๋๋ก ํธ์คํธ ๋ชจ๋ธ์ ์ฒ๋ฆฌ ๋ฐฉ์์ ๋ณด๊ฐํ๋ค.- ๊ณ์ฐ ๋ฅ๋ ฅ์ MCP์ ํ๋ฌ๊ทธ์ธ์ด ๊ฐ์ ๊ณต๊ฐ ์์ง ์ง์ ์ ์ ๊ณต์ ํ๋ค.
์์ฐ์ด ์ ๋ ฅ
์ด ํ๋ก์ ํธ๊ฐ ์๋ํ ์ธํฐํ์ด์ค๋ ๋ํ๋ค. ์ ์ ํผ๊ณผ intent ๋ฉ๋ด ๋์ , ๋ชจ๋ธ์ด ๋ํ์์ ํ์คํ ์ ๋ณด๋ง ์ถ์ถํ๊ณ , ํ์ํ ๊ณ์ฐ๋ฒ์ ์ฐพ์ ๋ค, ์์ง์ด ๋๋ ค์ค ๊ทผ๊ฑฐ๋ฅผ ์ค๋ช ํ๋ค.
1990๋
1์ 1์ผ ์๋ ฅ์ด๊ณ ํ์ด๋ ์๊ฐ์ ๋ชฐ๋ผ.
์์ผ๋ก 3๋
์ง์
๊ณผ ๋์ ๋ด์ค.
์ถ์์๊ฐ์ ๋ชจ๋ฅธ๋ค๊ณ ๋งํ๋ฉด ์์ง์ ์์์ ๋ ์ง ๊ฒฝ๊ณ ๋ ๋ฐฉ์๊น์ง ํฌํจํ ํ๋ณด ์ฐจํธ๋ฅผ ๋ถ๋ฆฌํด ๋ฐํํ๋ค. ์์์ ์ ์ค ๋์ ๋์ ํ๋ณด๊ตฐ ์ ์ฒด๋ฅผ ์ ์งํ๋ค.
๊ฐ๋ฐ์๋ก ์คํํ๊ธฐ
git clone https://github.com/SihyeonJeon/legend-saju.git
cd legend-saju
npm ci
npm test
npm run build
npm run demo
Node.js 20 ์ด์์ด ํ์ํ๋ฉฐ ESM ์ ์ฉ์ด๋ค.
import { resolve } from "./dist/index.js";
const result = resolve({
birth: {
year: 1990,
month: 1,
day: 1,
hour: 12,
minute: 0,
calendar: "solar",
gender: "์ฌ",
birthTimeAccuracy: "recorded"
},
question: "์ง์
๊ณผ ์ฌ๋ฌผ, ์ฐ์ ๊ฒฐํผ, ์์ผ๋ก 3๋
",
timelineRange: { startYear: 2026, endYear: 2028 }
});
console.log(result.dossier?.claims);
console.log(result.dossier?.conflicts);
console.log(result.routes);
๋ฐํ๊ฐ์ ๊ณ์ฐ๊ณผ ํด์์ ๊ทผ๊ฑฐ ๋ฐ์ดํฐ๋ค. ์์ฑ๋ ์ ์ฌ ๋ฌธ์ฅ ๋์ claim, ์ถฉ๋, ์คํ ๊ฒฝ๋ก๊ฐ ๋์์จ๋ค.
{
executionPlan: {
entryIntent: string;
domains: string[];
core: string[];
supporting: string[];
selected: string[];
};
selection: { requested: string[]; selected: string[]; unsupported: string[] };
routes: CapabilityPreflight[];
dossier?: {
claims: EngineClaim[];
conflicts: ClaimConflict[];
synthesis: DomainSynthesis[];
timeline?: LifeTimeline;
methodResults: Record<string, unknown>;
blockedSystems: { capabilityId: string; reason: string }[];
};
evidence: SajuEvidence[];
nameAnalysis?: KoreanNameAnalysis;
noModelCalls: true;
}
์์ธ๋๋ brief, standard, expert, raw์ด๊ณ ์ถ๋ ฅ์ action_only, consumer, evidence, debug๋ค. action_only๋ ํ๋ ์ ์๋ง, consumer๋ ์์ฝยทํ์ ยท์์ญ๋ณ ํด์ยทํ์๋ผ์ธ, evidence๋ claimยท๊ณ์ฐ ๊ฒฐ๊ณผยท์ง์ ์์ฐยท์๋ฌธยท์ถ์ฒ, debug๋ ๋ด๋ถ ์คํ ๊ธฐ๋ก์ ๋ฐํํ๋ค. maxClaims๋ debug๋ฅผ ์ ์ธํ ์๋ต์์ ํด์ยทํ๋ยทํ์๋ผ์ธยทclaimยท๊ณ์ฐ ๊ฒฐ๊ณผ์ ํ๋์ ๊ณตํต ์์ฐ์ผ๋ก ์ ์ฉ๋๋ค.
consumer ์๋ต์๋ ์์ ยท๊ฒฉ๊ตญยท์ฉ์ ํ์ ์ด ์์ ํฌํจ๋๊ณ , ์๋ต์ ์ฃ์ง ๋ชปํ ๋ด๋ถ claim์ evidenceIndex ์์ธ์ผ๋ก ๋
ธ์ถ๋๋ค. ๊ฐ์ ์
๋ ฅ์ผ๋ก claimIds๋ฅผ ๋๊ฒจ ์ฌํธ์ถํ๋ฉด ์์ธ์ claim ์ ๋ฌธ์ ์ ํ์ ์ผ๋ก ๋ฐ๋๋ค.
์ ๋ง๋ค์๋
๋ง์ ์ญํ AI ์๋น์ค๋ ํ๋กฌํํธ์์ ์์ํ๋ค. Legend Saju๋ ๊ทธ๋ณด๋ค ํ ์ธต ์๋์ธ ๊ณ์ฐ๊ณผ ๊ทผ๊ฑฐ์์ ์์ํ๋ค.
- ๊ฒฐ์ ๋ก ์ ์ฝ์ด: ๊ฐ์ ์ ๋ ฅ์ LLM ์์ด ๊ฐ์ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ ๋ค.
- ์ ํ ๋ณด์กด: ๋ช ๋ฆฌ ๊ด๋ฒ์ด๋ ์๋ฏธ๋์ ์ฌํํ๊ฐ ๋ค๋ฅด๋ฉด ๊ฐ๊ฐ์ ๊ฒฐ๊ณผ๋ก ๋จ๊ธด๋ค.
- ์ถ์์๊ฐ ๋ฏธ์ ์ฒ๋ฆฌ: ๋ชจ๋ฅด๋ ์๊ฐ์ ์ ์ค ๋์ ๋์ ํ๋ณด๊ตฐ์ผ๋ก ๊ณ์ฐํ๋ค.
- ์ถ์ฒ ์ถ์ : ๊ธฐ๋ฅ๋ง๋ค ์ฑ์๋, ๊ทผ๊ฑฐ ์ญํ , ์ ํ, ์ถ์ฒ ID, ๋น ์ง ์ฐจ์์ ๊ธฐ๋กํ๋ค.
- ์ด๋ช ์ ์ ์์: ์ฌ๋ฌ ์ฒด๊ณ์ ๊ทผ๊ฑฐ์ ์ถฉ๋์ ๊ฐ๊ฐ์ ์ธต์ผ๋ก ๋ณด์กดํ๋ค. ํ๋์ ์ซ์๋ก ๋ญ๊ฐ๋ ์ข ํฉ ์ ์๋ฅผ ๊ฑฐ๋ถํ๋ค.
์ค์ ๋ก ๋ค์ด ์๋ ์์ฐ
์ด ์ ์ฅ์๋ ๋ชจ๋ธ ํธ์ถ ์ธํฐํ์ด์ค์ ํจ๊ป, ์ด๋ ค์ด ๋ฐ์ดํฐ์ ๊ท์น ์์ ์์ฒด๋ฅผ ๊ณต๊ฐํ๋ค.
| ์์ฐ | ๊ณต๊ฐ ๋ฒ์ |
|---|---|
| ๋ค๊ตญ์ด ์ญํ ์ง์ ์ ์ฅ์ | 36๊ฐ ์์ญ, 777๊ฐ ๊ทผ๊ฑฐ ํญ๋ชฉ |
| ๋ช ๋ฆฌ ์ฉ์ด์ง | ํ๊ตญ์ดยทํ์ยท์ค๊ตญ์ดยท์ผ๋ณธ์ด 777๊ฐ ํญ๋ชฉ |
| ์๋ฏธ๋์ ์ฉ์ด์ง | ์ธ์ด๋ณ๋ก ์ ๋ ฌ๋ 214๊ฐ ํญ๋ชฉ |
| ๊ถํต๋ณด๊ฐ | ์ผ๊ฐร์๋ น 120์นธ๊ณผ ์คํ ๊ฐ๋ฅํ ํ์ ์์ธ์ 66๊ฐ |
| ์๋ฏธ๋์ ๊ถ์ฑ ์ด๋ก | ๊ตฌ์กฐํ ๊ท์น 163๊ฐ์ ์๋ก ๋ถ๋ฆฌ ๊ณ์ฐ๋๋ ์ฌํ ํ๋กํ 3์ข |
| ๋์ก์ | 60์ผ์งร12์ฒ๋ฐ, ๋ซํ 720๊ตญ ์ ์กํ |
| ์ฒ ํ์ ์ ์ง๋ฌธ์๊ฐ ๊ฒฝ๋ก | ๊ด 1,500์นธ, ์ ์ฒ 144ํ, ํ์ 2,028ํ |
| ํ๊ตญ ์ฑ๋ช ํ | ๋๋ฒ์ ์ธ๋ช ์ฉ ํ์ ๊ด์ธก 9,495๊ฑด๊ณผ ํ์ ์ดํ ๊ด์ธก 2,003๊ฑด |
| ์์ ๋ฒ์๊ฐ ๋ช ์๋ 81์ | 81๊ฐ ์ ์ฒด ํ๊ณผ 1์ฐจ ์ถ์ฒ ๋์กฐ |
| ํด๋ชฝ | ์ฃผ๊ณตํด๋ชฝ 988๊ฐ, ์๋ฅดํ ๋ฏธ๋๋ก์ค 211์ , ์๋ฏธ ๋์กฐ๊ฐ ๋๋ ๊ต์ฐจ๋ฌธํ ๊ฐ๋ 5๊ฐ |
๊ฒ์ฌ ๊ฐ๋ฅํ ์๋ณธ ๋ฐ์ดํฐ๋ data/์ ์๋ค. ์คํ์ ํ์ํ ์ง์์ ๋ฐํ์์ ํฌํจ๋๋ฏ๋ก ์๊ฒฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์จ๊ฒจ์ง ๊ฒ์ ์๋น์ค ์์ด ๋์ํ๋ค.
์๋ฏธ๋์ ๊ถ์ฑ ๊ณ์ฐ์ ์ต์ ํ ์ ํ ๊ฒฐ๊ณผ๋ 144๊ฐ ์กฐํฉ์์ ๋ฐ์ดํธ ๋จ์๋ก ์ผ์นํ๋ค. ์์ธํ ๊ฒ์ฆ ๋ฒ์๋ docs/PARITY.md์ ๊ธฐ๋ก๋ผ ์๋ค.
๊ตฌํ ๋ฒ์
| ์ฒด๊ณ | ํ์ฌ ๊ตฌํ ๊ฒฝ๊ณ |
|---|---|
| ๋ง์ธ๋ ฅยท์ฌ์ฃผ ์๊ตญ | ์๋ ฅยท์๋ ฅยท์ค๋ฌ ๋ณํ, ์ฌ์ฃผํ์, ๋์ด, ๋ ์ง ๊ฒฝ๊ณ |
| ๋ช ๋ฆฌ | ์๋ น, ํต๊ทผ, ์ง์ฅ๊ฐ, ์ญ์ฑ, ํฉ์ถฉํํํด, ์ฉ์ ๊ด๋ฒ 3์ข , ๊ถํต๋ณด๊ฐ 120์นธ |
| ์๋ฏธ๋์ | 12๊ถ, ์ผ๋ฐฉ์ฌ์ , ๋ณต์ ์ฌํ ํ๋กํ, ๋น์ฑ ์ฐ๊ฒฐ, ์ค์ฒฉ ์ดํ |
| ๋์ก์ | 60์ผ์งร12์ฒ๋ฐ์ ๋ซํ ํ์ ๊ฒฝ๊ณ๊ฐ ๋ช ์๋ ๊ณผ์ ๋ฒ |
| ๊ธฐ๋ฌธ๋๊ฐ | ์๊ฐ์ ๋ฐ, ๊ตฌ๊ถ, ๊ตฌ์ฑ, ํ๋ฌธ, ํ์ , ์ง๋ถยท์ง์ฌ, ๊ณต๋ง |
| ์ฒ ํ์ ์ | ์ธ ํ๋ณธ์ ํฉ๊ทน ์ฐ์์ ๋ณ๋ ์ง๋ฌธ์๊ฐ 14๊ณ์ด ํ, ์ ์ฒ์, 108๋ ์กฐ๋ฌธ์ |
| ํ๊ตญ ์ฑ๋ช ํ | ์ธ๋ช ์ฉ ํ์ 9,495๊ฑด, ์ ๋์ฝ๋ยท์ํ ๋ถํด, ์ฌ์ฉ์๊ฐ ๋ฐํ ํ์ ์ฒด๊ณ์ ์ค๊ฒฉ ๊ณ์ฐ, ์์ ๋ฒ์ 81์ |
| ํด๋ชฝ | ๋ฐฐ์ค๋ฌผยท๋ฌผยท์ดยท๋ถยท๊ณ ์ธ 5๊ฐ ๊ฐ๋ ์ ๋ ๋ฆฝ ์ ์น ๊ณตํต์ ๊ณผ ์ถฉ๋ ์กฐ๊ฑด, ์ฐ๊ฒฐ๋ ์๋ฌธ ๋ฐ์ท |
๊ธฐ๋ฅ ์๋ฅผ README์ ๊ณ ์ ์ซ์๋ก ๋ฏฟ๊ธฐ๋ณด๋ค getEngineManifest()๋ก ํ์ฌ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ํ์ธํ๋ ํธ์ด ์ ํํ๋ค.
์ถ์์๊ฐ์ ํ์ง ๋ฏผ๊ฐ์๋ก ํด์ํ๋ค. timezone๊ณผ longitudeE๋ ์ถ์์ง ๋ฉํ๋ฐ์ดํฐ๋ก ๋ณด์กดํ๊ณ , ๊ธฐ๋ณธ ์ฐจํธ๋ ๊ทผ์ฌ ์งํ์์ ๋ณด์ ์์ด ๋ฏผ๊ฐ์๋ฅผ ๊ทธ๋๋ก ์ด๋ค. ์ด ์ ์ฑ
์ ๊ธฐ๋ฅ ๋ฐ ์
๋ ฅ ๊ฐ์ฌ ๋ฉํ๋ฐ์ดํฐ์ ๊ธฐ๋ก๋๋ค.
์๋ชป๋ ์ถ์ ์ ๋ณด๋ ๊ตฌ์กฐํ๋ blocked ๊ฒฝ๋ก๋ก ๋ฐํ๋ผ ๋ค๋ฅธ ๊ฒฐ๊ณผ์ ํจ๊ป ์ ์ ์์ฒญ์ ํ ์ ์๋ค. ์กด์ฌํ ์ ์๋ targetDate๋ questionDateTime์ ๋ ์ง ๊ธฐ๋ฐ ๊ณ์ฐ ์ ์ฒด๋ฅผ ์์ ํ๊ฒ ์งํํ ์ ์์ผ๋ฏ๋ก ์์ฒญ ์์ฒด๋ฅผ ๊ฑฐ์ ํ๋ค.
ํ๋์ ์ด๋ฆฐ ์ง์ ์
import { resolve } from "./dist/index.js";
resolve({ question, ...inputs })๋ ํ์ฌ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ๊ฒ์ํ๊ณ , ์ง๋ฌธ์ ๋ผ์ฐํ
ํ๊ณ , ์คํ ๊ฐ๋ฅํ ๊ณ์ฐ๊ธฐ๋ฅผ ํธ์ถํ๊ณ , ๋ถ์กฑํ ์
๋ ฅ์ ์จ๊ธฐ์ง ์์ ์ฑ ๋ฐํํ๋ค. requestedCapabilities๋ ๋ซํ enum์ด ์๋ ์ผ๋ฐ ๋ฌธ์์ด์ ๋ฐ๋๋ค. ๋ฐ๋ผ์ ์์ง์ ์ ๋ชจ๋์ ์ถ๊ฐํด๋ ๋ชจ๋ ํด๋ผ์ด์ธํธ ์คํค๋ง๋ฅผ ํจ๊ป ๋ฐ๊ฟ ํ์๊ฐ ์๋ค.
์ด๋ฆ์ resolveAsync์ name์ผ๋ก ๋๊ธฐ๋ฉด ๋ณ๋์ ํ๊ตญ ์ฑ๋ช
ํ ์ ์ฒด ๊ฒฝ๋ก๊ฐ ์ด๋ฆฐ๋ค. ์ค์ ์ฑ๊ณผ ์ด๋ฆ ํ์๋ฅผ 9,495๊ฐ ๊ด์ธก ์ค๋
์ท๊ณผ ๋์กฐํ๊ณ , ๋ฒ์ ์ฌ์ฉ ๊ฐ๋ฅ์ฑ, ๋ฐฐ์ ์, ๊ด์ธก ํ์ ํ๋ณด, ์ ๋์ฝ๋, ์ํ ๋ถํด, ์ฌ์ฉ์๊ฐ ๋ฐํ ์ค๊ฒฉ ๊ณ์ฐ๋ฒ, 81์ ๋์กฐ๋ฅผ ์๋ก ๋ค๋ฅธ ๊ทผ๊ฑฐ ์ธต์ผ๋ก ์ ์งํ๋ค.
๊ธฐ์กด ๋๊ธฐ์ resolve๋ ๊ณ์ฐ ์ ์ฉ ์ฌ์ฉ์์ ํธํ๋๋ค. ๋น๋๊ธฐ์์ ์ด๋ฆ์ด ๋ค์ด์์ ๋๋ง ํฐ ์ฑ๋ช
ํ ๋ฐ์ดํฐ๋ฅผ ์ง์ฐ ๋ก๋ฉํ๋ฏ๋ก ์ผ๋ฐ ์ฌ์ฃผ ๊ณ์ฐ์ ์์ ๋น์ฉ์ด ๊ทธ๋๋ก ์ ์ง๋๋ค.
analyze(input)๋ ํ์
์ด ์ ํด์ง ์ถ์ ๋ช
์ธ API๋ค. query({ intent, ... })๋ 26๊ฐ intent๋ฅผ ์ง์ํ๋ ํธํ ์ธํฐํ์ด์ค๋ค. ์ค๋ช
๊ณผ UI ๊ฐ์ ์ด๋ํฐ๋ ๊ณ์ฐ ์ฝ์ด์ ๋ถ๋ฆฌํ๋ค.
์ฑ๋ฅ
์ฌํ ๊ฐ๋ฅํ ๋ฒค์น๋งํฌ๊ฐ ํฌํจ๋ผ ์๋ค.
npm run benchmark
ํ์ฌ Apple Silicon ๊ฐ๋ฐ ์ฅ๋น์ Node 26์์ ์ต์ ํ ๊ธฐ์ค๊ฐ์ ์ฌ์ฃผ ์๊ตญ ์ง์ ์ค์๊ฐ 1.13ms, ์ถ์์๊ฐ์ ์๋ ์ ์ฒด ๋ช
์ธ ์ค์๊ฐ ์ฝ 600ms, ์ ํ๋ก์ธ์ค import ์ค์๊ฐ 63.1ms์๋ค. ๊ธฐ๊ธฐ์ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์๋ ๊ณตํ์ ๊ด์ธก๊ฐ์ด๋ค. ์ต์ ํ๊ฒฝ๊ณผ ์ธก์ ๋ฒ์ PERFORMANCE.md๋ฅผ ์ฐธ๊ณ ํ๋ค.
์ถ์์๊ฐ์ ๋ชจ๋ฅผ ๋
const result = analyze({
birth: {
year: 1990,
month: 1,
day: 1,
calendar: "solar",
gender: "๋จ",
birthTimeAccuracy: "unknown"
},
question: "์ ์ฒด ์ธ์"
});
๊ณ ์ ๋๋ ๊ธฐ๋ฅ, ๋ฌ๋ผ์ง๋ ๊ด๊ณ, ๋ชจ๋ ์์ฃผ ํ๋ณด๋ฅผ ๋ถ๋ฆฌํด ๋ฐํํ๋ค. ํ๋ณด ํ์ ์ ๊ณผ๊ฑฐ ์ฌ๊ฑด ๋์กฐ์ ์ฌ์ฉ์์ ๋ชซ์ผ๋ก ๋จ๊ธด๋ค.
์ ๋น๋ณด๋ค ๋ฐฉ๋ฒ๋ก
์ด ํ๋ก์ ํธ๋ ๋ค์ ๋จ๊ณ๋ฅผ ๊ตฌ๋ถํ๋ค.
- ์ญ๋ฒ๊ณผ ์๊ตญ ๊ณ์ฐ
- ๊ตฌ์กฐ ๊ด์ฐฐ
- ์ ํ์ ๋ฐ๋ฅธ ํด์
- ์ฌ๋ฌ ์ฒด๊ณ์ ์ข ํฉ
- ์ธ๊ฐ ๋๋ LLM์ด ์์ฑํ ์ค๋ช
์ ํ ์์ค์ ์ฃผ์ฅ์ ํ๊ธฐ ์ ๋ฐฉ๋ฒ๋ก ๊ณผ ๊ธฐ๋ฅ ๊ฒฝ๊ณ๋ฅผ ์ฝ์ด์ผ ํ๋ค.
์ค์ ๊ฐ๋ฐ ๊ณผ์ ์๋ ๊ฐ๋ฐ ์์, ๋ค๊ตญ์ด ์กฐ์ฌ ์ฟผ๋ฆฌ, ์ฌํ ๊ฐ๋ฅํ ์์ด์ ํธ ์์ ์ง์๊ฐ ๋ค์ด ์๋ค.
๋ผ์ด์ ์ค
ํ๋ก์ ํธ ์ฝ๋๋ Apache-2.0์ด๋ค. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฐ์ดํฐ์
์ ๊ฐ์์ ์ด์ฉ ์กฐ๊ฑด์ ๋ฐ๋ฅธ๋ค. DATA_LICENSES.md์ THIRD_PARTY_NOTICES.md๋ฅผ ์ฐธ๊ณ ํ๋ค.
Install
Add Legend Saju to your client. Pick the one you use.
claude mcp add --transport http legend-saju https://legend-saju-mcp-production.up.railway.app/mcpcodex mcp add legend-saju --url https://legend-saju-mcp-production.up.railway.app/mcp{
"mcpServers": {
"legend-saju": {
"url": "https://legend-saju-mcp-production.up.railway.app/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"legend-saju": {
"type": "http",
"url": "https://legend-saju-mcp-production.up.railway.app/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"legend-saju": {
"url": "https://legend-saju-mcp-production.up.railway.app/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"legend-saju": {
"serverUrl": "https://legend-saju-mcp-production.up.railway.app/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance25/25
- Trust13/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 7 days ago
- Has a release history
- Repository is not archived
- Licensed Apache-2.0
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 0.4.0Latest | Aug 23, 2026 |
| 0.3.0 | Aug 23, 2026 |
| 0.2.0 | Aug 23, 2026 |
| 0.1.0 | Aug 23, 2026 |