Legend Saju
БесплатноНе проверенEnables LLM clients to run deterministic Korean traditional metaphysics analyses—such as Saju, Zijudoushu, and DaLiuren—by exposing read-only tools that return
Описание
Enables LLM clients to run deterministic Korean traditional metaphysics analyses—such as Saju, Zijudoushu, and DaLiuren—by exposing read-only tools that return structured evidence, lineage, sources, and explicit handling of unknown birth times.
README

Legend Saju
모든 답이 결정적 계산에서 시작하는 동양 술수(命·卜·相) 엔진. 계산식, 유파, 출처, 불확실성을 구조화해 반환한다.
같은 생년월일을 여러 전통으로 계산한다. 계산 경로 안에는 숨겨진 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를 참고한다.
Установка Legend Saju
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/SihyeonJeon/legend-sajuFAQ
Legend Saju MCP бесплатный?
Да, Legend Saju MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Legend Saju?
Нет, Legend Saju работает без API-ключей и переменных окружения.
Legend Saju — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Legend Saju в Claude Desktop, Claude Code или Cursor?
Открой Legend Saju на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzMCP-Agent
A simple, composable framework to build agents using Model Context Protocol by [LastMile AI](https://www.lastmileai.dev)
автор: lastmile-aiSpring AI MCP Client
Provides auto-configuration for MCP client functionality in Spring Boot applications.
mcp.natoma.ai
A Hosted MCP Platform to discover, install, manage and deploy MCP servers by [Natoma Labs](https://www.natoma.ai)
MCPHub
Website to list high quality MCP servers and reviews by real users. Also provide online chatbot for popular LLM models with MCP server support.
MCP Servers Rating and User Reviews
Website to rate MCP servers, write authentic user reviews, and [search engine for agent & mcp](http://www.deepnlp.org/search/agent)
mkinf
An Open Source registry of hosted MCP Servers to accelerate AI agent workflows.
Compare Legend Saju with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
