mcpField
L
Legend Saju

Legend Saju

远程服务
github.com游戏娱乐09 周前更新

关于 Legend Saju

Legend Saju 是涵盖四柱、紫微斗数、奇门遁甲等术数的确定性计算引擎,面向需要查看计算路径、流派与来源的使用者。它保留不同流派的结果,并将出生时间未知时的候选排盘分别计算。

主要功能

  1. 01计算多种术数与命理体系
  2. 02按流派分别保留计算结果
  3. 03未知出生时刻时计算候选盘
  4. 04提供关联来源的计算依据
  5. 05生成命盘、运势与时间线卡片

适用场景

  1. 01分析出生资料对应的命盘与运势
  2. 02比较两人的合盘与婚期
  3. 03查找择日或占卜计算结果
  4. 04核对姓名分析与来源依据

MCP 相关

MCP 服务向客户端提供运势、合盘、择日、占卜、姓名与解梦等只读工具,并可返回关联来源的依据。远程与本地 STDIO 方式均可连接。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://legend-saju-mcp-production.up.railway.app/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Legend Saju:追溯出处与流派的东方术数引擎

Legend Saju

所有答案都始于确定性计算的东方术数(命·卜·相)引擎。 以结构化形式返回计算公式、流派、出处与不确定性。

CI License TypeScript

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 开发者模式
  1. 在 ChatGPT 的 Settings → Security and login 中开启 Developer mode。
  2. 在 ChatGPT Plugins 中点击 +。
  3. 输入名称和说明,并在 Connection 中填入上方的 MCP 地址,末尾包含 /mcp。
  4. 创建连接后,确认能发现 legend_saju_read_fortune、legend_saju_analyze_compatibility、legend_saju_card_natal 等工具。
  5. 在新对话的工具菜单中选择该连接,然后用自然语言提问。

在 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 会由 shell 替换为当前绝对路径。

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: "전체 인생"
});

고정되는 기둥, 달라지는 관계, 모든 시주 후보를 분리해 반환한다. 후보 확정은 과거 사건 대조와 사용자의 몫으로 남긴다.

신비보다 방법론

이 프로젝트는 다음 단계를 구분한다.

  1. 역법과 원국 계산
  2. 구조 관찰
  3. 유파에 따른 해석
  4. 여러 체계의 종합
  5. 인간 또는 LLM이 작성한 설명

제품 수준의 주장을 하기 전 방법론과 기능 경계를 읽어야 한다.

실제 개발 과정에는 개발 순서, 다국어 조사 쿼리, 재현 가능한 에이전트 작업 지시가 들어 있다.

라이선스

프로젝트 코드는 Apache-2.0이다. 외부 라이브러리와 데이터셋은 각자의 이용 조건을 따른다. DATA_LICENSES.md와 THIRD_PARTY_NOTICES.md를 참고한다.

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。