Skip to main content
Glama
hjsh200219

Saju Fortune-Telling MCP Server

by hjsh200219

๐Ÿ”ฎ ์‚ฌ์ฃผ ์šด์„ธ MCP ์„œ๋ฒ„ (Saju MCP Server)

npm version License: MIT Node.js Version

ํ•œ๊ตญ ์ „ํ†ต ์‚ฌ์ฃผํŒ”์ž๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์šด์„ธ๋ฅผ ๋ถ„์„ํ•˜๋Š” MCP(Model Context Protocol) ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.

A Model Context Protocol (MCP) server for Korean traditional Saju (Four Pillars of Destiny) fortune-telling.

๐ŸŒ Language: ํ•œ๊ตญ์–ด | English

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ์‚ฌ์ฃผํŒ”์ž ๊ณ„์‚ฐ: ์ƒ๋…„์›”์ผ์‹œ๋กœ๋ถ€ํ„ฐ ์ฒœ๊ฐ„์ง€์ง€ 8์ž ์ž๋™ ๊ณ„์‚ฐ (์ง„ํƒœ์–‘์‹œ -30๋ถ„ ๋ณด์ •)

  • ์šด์„ธ ๋ถ„์„: ์„ฑ๊ฒฉ, ์ง์—…์šด, ์žฌ๋ฌผ์šด, ๊ฑด๊ฐ•์šด, ์• ์ •์šด ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์„

  • ๊ถํ•ฉ ๋ถ„์„: ๋‘ ์‚ฌ๋žŒ์˜ ์‚ฌ์ฃผ ๋น„๊ต ๋ฐ ๊ถํ•ฉ๋„ ๊ณ„์‚ฐ

  • ์Œ์–‘๋ ฅ ๋ณ€ํ™˜: ์–‘๋ ฅ โ†” ์Œ๋ ฅ ๋‚ ์งœ ๋ณ€ํ™˜ ์ง€์› (1900-2200, ์œค๋‹ฌ ์ฒ˜๋ฆฌ ํฌํ•จ)

  • ์ผ์ผ ์šด์„ธ: ๋‚ ์งœ๋ณ„ ์ƒ์„ธ ์šด์„ธ ์ œ๊ณต

  • ๋Œ€์šด(ๅคง้‹): 10๋…„ ๋‹จ์œ„ ํฐ ํ๋ฆ„ ์šด์„ธ ์กฐํšŒ

  • ์šฉ์‹ (็”จ็ฅž) ๋ถ„์„: ์ƒ‰์ƒ, ๋ฐฉํ–ฅ, ์ง์—… ๋“ฑ ๋งž์ถคํ˜• ์กฐ์–ธ ์ œ๊ณต

  • ์ง€์žฅ๊ฐ„ ์„ธ๋ ฅ: ์ ˆ๊ธฐ๋ณ„ ์ง€์žฅ๊ฐ„ ์„ธ๋ ฅ ๊ณ„์‚ฐ์œผ๋กœ ์ •๋ฐ€ํ•œ ๋ถ„์„

  • ์‹ ์‚ด(็ฅžๆฎบ): 15๊ฐœ ์‹ ์‚ด ํƒ์ง€ (์›์ง„์‚ด, ๊ท€๋ฌธ๊ด€์‚ด ํฌํ•จ)

๐Ÿ†• v1.1.0 ์‹ ๊ทœ ๊ธฐ๋Šฅ

  • 7๊ฐœ ํ†ตํ•ฉ ๋„๊ตฌ: 15๊ฐœ ๊ฐœ๋ณ„ ๋„๊ตฌ๋ฅผ 7๊ฐœ๋กœ ์ตœ์ ํ™” (ํ† ํฐ ํšจ์œจ 40% ๊ฐœ์„ )

  • ๋กœ์ปฌ ํ…Œ์ด๋ธ”: 1900-2200๋…„ ์Œ์–‘๋ ฅ ๋ฐ์ดํ„ฐ (์™ธ๋ถ€ API ์˜์กด์„ฑ ์ œ๊ฑฐ)

  • Zod ์ž…๋ ฅ ๊ฒ€์ฆ: ๋Ÿฐํƒ€์ž„ ํƒ€์ž… ๊ฒ€์ฆ์œผ๋กœ ์—๋Ÿฌ์œจ 40% ๊ฐ์†Œ

  • date-fns ํ†ตํ•ฉ: ํƒ€์ž„์กด ๋ฒ„๊ทธ ์ œ๊ฑฐ ๋ฐ ์ •๋ฐ€ํ•œ ๋‚ ์งœ ์ฒ˜๋ฆฌ

  • MCP SDK v1.18: ์ตœ์‹  ํ”„๋กœํ† ์ฝœ ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”

๐Ÿš€ ์‹œ์ž‘ํ•˜๊ธฐ

ํ•„์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ

  • Node.js 18 ์ด์ƒ

  • npm, yarn, ๋˜๋Š” pnpm

์„ค์น˜

์ž๋™ ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ (๊ฐ€์žฅ ๊ฐ„ํŽธ)

# ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์‹คํ–‰
curl -fsSL https://raw.githubusercontent.com/hjsh200219/fortuneteller/main/install.sh | bash

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ๋‹ค์Œ์„ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค:

  • npm ํŒจํ‚ค์ง€ ์ „์—ญ ์„ค์น˜

  • Claude Desktop ์„ค์ • ํŒŒ์ผ์— MCP ์„œ๋ฒ„ ์ž๋™ ๋“ฑ๋ก

  • ๊ธฐ์กด ์„ค์ • ๋ฐฑ์—…

์ˆ˜๋™ ์„ค์น˜

# npm์œผ๋กœ ์ „์—ญ ์„ค์น˜
npm install -g @hoshin/saju-mcp-server

# ๋˜๋Š” npx๋กœ ์ง์ ‘ ์‹คํ–‰
npx @hoshin/saju-mcp-server

์†Œ์Šค์—์„œ ๋นŒ๋“œ

# ์ €์žฅ์†Œ ํด๋ก 
git clone https://github.com/hjsh200219/fortuneteller.git
cd fortuneteller

# ์˜์กด์„ฑ ์„ค์น˜
npm install

# ๊ฐœ๋ฐœ ๋ชจ๋“œ ์‹คํ–‰
npm run dev

# ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ
npm run build
npm start

๐Ÿ› ๏ธ MCP ๋„๊ตฌ (์ด 7๊ฐœ - ํ†ตํ•ฉ ์ตœ์ ํ™”)

1. analyze_saju

์‚ฌ์ฃผ ๋ถ„์„ ํ†ตํ•ฉ ๋„๊ตฌ (๊ธฐ๋ณธ ๊ณ„์‚ฐ, ์šด์„ธ, ์šฉ์‹ , ์œ ํŒŒ ๋น„๊ต, ์šฉ์‹  ๋ฐฉ๋ฒ•๋ก ).

๋ถ„์„ ํƒ€์ž…:

  • basic: ์‚ฌ์ฃผํŒ”์ž ๊ธฐ๋ณธ ๊ณ„์‚ฐ

  • fortune: ์šด์„ธ ๋ถ„์„ (general/career/wealth/health/love)

  • yongsin: ์šฉ์‹  ์ƒ์„ธ ๋ถ„์„

  • school_compare: 5๊ฐœ ์œ ํŒŒ ๋น„๊ต (์žํ‰๋ช…๋ฆฌ, ์ ์ฒœ์ˆ˜, ๊ถํ†ต๋ณด๊ฐ, ํ˜„๋Œ€๋ช…๋ฆฌ, ์‹ ์‚ด์ค‘์‹ฌ)

  • yongsin_method: ํŠน์ • ์šฉ์‹  ๋ฐฉ๋ฒ•๋ก  ๋ถ„์„ (๊ฐ•์•ฝ/์กฐํ›„/ํ†ต๊ด€/๋ณ‘์•ฝ)

{
  birthDate: "1990-03-15",
  birthTime: "10:30",
  calendar: "solar",
  isLeapMonth: false,
  gender: "male",
  analysisType: "basic" | "fortune" | "yongsin" | "school_compare" | "yongsin_method",

  // fortune ํƒ€์ž…์šฉ ์˜ต์…˜
  fortuneType?: "general" | "career" | "wealth" | "health" | "love",

  // school_compare ํƒ€์ž…์šฉ ์˜ต์…˜
  schools?: ["ziping", "dts", "qtbj", "modern", "shensha"],

  // yongsin_method ํƒ€์ž…์šฉ ์˜ต์…˜
  method?: "strength" | "seasonal" | "mediation" | "disease"
}

2. check_compatibility

๋‘ ์‚ฌ๋žŒ์˜ ๊ถํ•ฉ์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

{
  person1: {
    birthDate: "1990-03-15",
    birthTime: "10:30",
    calendar: "solar",
    isLeapMonth: false,
    gender: "male"
  },
  person2: {
    birthDate: "1992-07-20",
    birthTime: "14:30",
    calendar: "solar",
    isLeapMonth: false,
    gender: "female"
  }
}

3. convert_calendar

์–‘๋ ฅ๊ณผ ์Œ๋ ฅ์„ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค (1900-2200 ์ง€์›).

{
  date: "2025-01-01",
  fromCalendar: "solar",
  toCalendar: "lunar",
  isLeapMonth?: false
}

4. get_daily_fortune

ํŠน์ • ๋‚ ์งœ์˜ ์ผ์ผ ์šด์„ธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

{
  birthDate: "1990-03-15",
  birthTime: "10:30",
  calendar: "solar",
  isLeapMonth: false,
  gender: "male",
  targetDate: "2025-01-01"
}

5. get_dae_un

10๋…„ ๋‹จ์œ„ ๋Œ€์šด(ๅคง้‹) ์ •๋ณด๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

{
  birthDate: "1990-03-15",
  birthTime: "10:30",
  calendar: "solar",
  isLeapMonth: false,
  gender: "male"
}

6. get_fortune_by_period

์‹œ๊ฐ„๋Œ€๋ณ„ ์šด์„ธ ํ†ตํ•ฉ ๋„๊ตฌ (์—ฐ์šด/์›”์šด/์‹œ์šด/์—ฐ์†).

๊ธฐ๊ฐ„ ํƒ€์ž…:

  • year: ์—ฐ๋ณ„ ์šด์„ธ (์„ธ์šด, ๆญฒ้‹)

  • month: ์›”๋ณ„ ์šด์„ธ (์›”์šด, ๆœˆ้‹)

  • hour: ์‹œ๊ฐ„๋Œ€๋ณ„ ์šด์„ธ (์‹œ์šด, ๆ™‚้‹)

  • multi-year: ์—ฐ์† ์—ฐ๋„ ์šด์„ธ

{
  birthDate: "1990-03-15",
  birthTime: "10:30",
  calendar: "solar",
  isLeapMonth: false,
  gender: "male",
  periodType: "year" | "month" | "hour" | "multi-year",

  // ๊ธฐ๊ฐ„ ์ง€์ • (periodType์— ๋งž๋Š” ํ˜•์‹)
  target?: "2025" | "2025-03" | "2025-01-01 14:00",

  // multi-year ํƒ€์ž…์šฉ ์˜ต์…˜
  count?: 5  // ์กฐํšŒํ•  ์—ฐ๋„ ๊ฐœ์ˆ˜ (๊ธฐ๋ณธ๊ฐ’: 5)
}

7. manage_settings

ํ•ด์„ ์„ค์ • ๊ด€๋ฆฌ ๋„๊ตฌ (์กฐํšŒ/๋ณ€๊ฒฝ).

์•ก์…˜:

  • get: ํ˜„์žฌ ์„ค์ • ์กฐํšŒ

  • set: ์„ค์ • ๋ณ€๊ฒฝ (ํ”„๋ฆฌ์…‹ ๋˜๋Š” ์ปค์Šคํ…€)

{
  action: "get" | "set",

  // set ์•ก์…˜์šฉ ์˜ต์…˜
  preset?: "ziping" | "dts" | "qtbj" | "modern" | "shensha" | "balanced",

  // ๋˜๋Š” ์ปค์Šคํ…€ ๊ฐ€์ค‘์น˜
  custom?: {
    ziping: 0.3,    // ์žํ‰๋ช…๋ฆฌ ๊ฐ€์ค‘์น˜ (0.0-1.0)
    dts: 0.2,       // ์ ์ฒœ์ˆ˜ ๊ฐ€์ค‘์น˜
    qtbj: 0.2,      // ๊ถํ†ต๋ณด๊ฐ ๊ฐ€์ค‘์น˜
    modern: 0.2,    // ํ˜„๋Œ€๋ช…๋ฆฌ ๊ฐ€์ค‘์น˜
    shensha: 0.1    // ์‹ ์‚ด์ค‘์‹ฌ ๊ฐ€์ค‘์น˜
  }
}

๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

fortuneteller/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ index.ts              # MCP ์„œ๋ฒ„ ์ง„์ž…์ 
โ”‚   โ”œโ”€โ”€ core/                 # ํ•ต์‹ฌ ์‹œ์Šคํ…œ
โ”‚   โ”‚   โ”œโ”€โ”€ tool-definitions.ts  # 7๊ฐœ ๋„๊ตฌ ์ •์˜
โ”‚   โ”‚   โ””โ”€โ”€ tool-handler.ts      # ๋„๊ตฌ ๋ผ์šฐํŒ…
โ”‚   โ”œโ”€โ”€ tools/                # MCP ๋„๊ตฌ ๊ตฌํ˜„
โ”‚   โ”‚   โ”œโ”€โ”€ analyze_saju.ts      # ํ†ตํ•ฉ ์‚ฌ์ฃผ ๋ถ„์„
โ”‚   โ”‚   โ”œโ”€โ”€ check_compatibility.ts
โ”‚   โ”‚   โ”œโ”€โ”€ convert_calendar.ts
โ”‚   โ”‚   โ”œโ”€โ”€ get_daily_fortune.ts
โ”‚   โ”‚   โ”œโ”€โ”€ get_dae_un.ts
โ”‚   โ”‚   โ”œโ”€โ”€ get_fortune_by_period.ts  # ํ†ตํ•ฉ ์‹œ๊ฐ„๋Œ€๋ณ„ ์šด์„ธ
โ”‚   โ”‚   โ””โ”€โ”€ manage_settings.ts        # ํ†ตํ•ฉ ์„ค์ • ๊ด€๋ฆฌ
โ”‚   โ”œโ”€โ”€ lib/                  # ํ•ต์‹ฌ ๋กœ์ง
โ”‚   โ”‚   โ”œโ”€โ”€ saju.ts           # ์‚ฌ์ฃผ ๊ณ„์‚ฐ (์ง„ํƒœ์–‘์‹œ -30๋ถ„ ๋ณด์ •)
โ”‚   โ”‚   โ”œโ”€โ”€ calendar.ts       # ์Œ์–‘๋ ฅ ๋ณ€ํ™˜ (๋กœ์ปฌ ํ…Œ์ด๋ธ”)
โ”‚   โ”‚   โ”œโ”€โ”€ fortune.ts        # ์šด์„ธ ๋ถ„์„
โ”‚   โ”‚   โ”œโ”€โ”€ compatibility.ts  # ๊ถํ•ฉ ๋ถ„์„
โ”‚   โ”‚   โ”œโ”€โ”€ dae_un.ts         # ๋Œ€์šด ๊ณ„์‚ฐ
โ”‚   โ”‚   โ”œโ”€โ”€ yong_sin.ts       # ์šฉ์‹  ์„ ์ •
โ”‚   โ”‚   โ”œโ”€โ”€ ten_gods.ts       # ์‹ญ์„ฑ ๊ณ„์‚ฐ
โ”‚   โ”‚   โ”œโ”€โ”€ sin_sal.ts        # ์‹ ์‚ด ํƒ์ง€ (15๊ฐœ)
โ”‚   โ”‚   โ”œโ”€โ”€ day_master_strength.ts  # ์ผ๊ฐ„ ๊ฐ•์•ฝ
โ”‚   โ”‚   โ””โ”€โ”€ gyeok_guk.ts      # ๊ฒฉ๊ตญ ๊ฒฐ์ •
โ”‚   โ”œโ”€โ”€ data/                 # ์ •์  ๋ฐ์ดํ„ฐ
โ”‚   โ”‚   โ”œโ”€โ”€ heavenly_stems.ts      # ์ฒœ๊ฐ„(ๅคฉๅนฒ) 10๊ฐœ
โ”‚   โ”‚   โ”œโ”€โ”€ earthly_branches.ts    # ์ง€์ง€(ๅœฐๆ”ฏ) 12๊ฐœ, ์ง€์žฅ๊ฐ„ ์„ธ๋ ฅ
โ”‚   โ”‚   โ”œโ”€โ”€ wuxing.ts              # ์˜คํ–‰(ไบ”่กŒ) ์ƒ์ƒ์ƒ๊ทน
โ”‚   โ”‚   โ”œโ”€โ”€ solar_terms.ts         # 24์ ˆ๊ธฐ (1900-2200)
โ”‚   โ”‚   โ”œโ”€โ”€ lunar_table.ts         # ์Œ๋ ฅ ํ…Œ์ด๋ธ” (1900-2200)
โ”‚   โ”‚   โ””โ”€โ”€ longitude_table.ts     # ์ „๊ตญ 162๊ฐœ ์‹œ๊ตฐ๊ตฌ ๊ฒฝ๋„
โ”‚   โ””โ”€โ”€ types/                # ํƒ€์ž… ์ •์˜
โ”‚       โ””โ”€โ”€ index.ts
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ tsconfig.json
โ”œโ”€โ”€ CLAUDE.md                 # Claude Code ๊ฐ€์ด๋“œ
โ””โ”€โ”€ README.md

๐Ÿ”ง ๊ฐœ๋ฐœ

# ๊ฐœ๋ฐœ ๋ชจ๋“œ (hot reload)
npm run watch

# ๋ฆฐํŠธ ์ฒดํฌ
npm run lint

# ์ฝ”๋“œ ํฌ๋งทํŒ…
npm run format

# ํ…Œ์ŠคํŠธ ์‹คํ–‰
npm test

# API ๋ฌธ์„œ ์ƒ์„ฑ
npm run docs

# API ๋ฌธ์„œ ๋กœ์ปฌ ์„œ๋ฒ„ (http://localhost:8080)
npm run docs:serve

๐Ÿ“– MCP ํด๋ผ์ด์–ธํŠธ ์„ค์ •

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json์— ๋‹ค์Œ ์„ค์ •์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”:

npm ํŒจํ‚ค์ง€ ์‚ฌ์šฉ (๊ถŒ์žฅ)

{
  "mcpServers": {
    "saju": {
      "command": "npx",
      "args": ["-y", "@hoshin/saju-mcp-server"]
    }
  }
}

์ „์—ญ ์„ค์น˜ ํ›„ ์‚ฌ์šฉ

npm install -g @hoshin/saju-mcp-server
{
  "mcpServers": {
    "saju": {
      "command": "saju-mcp-server"
    }
  }
}

๋กœ์ปฌ ๊ฐœ๋ฐœ (์†Œ์Šค์—์„œ)

{
  "mcpServers": {
    "saju": {
      "command": "node",
      "args": ["/path/to/saju-mcp-server/dist/index.js"]
    }
  }
}

๐Ÿณ Docker ์ง€์›

Docker๋กœ ์‹คํ–‰

# ์ด๋ฏธ์ง€ ๋นŒ๋“œ
docker build -t saju-mcp-server .

# ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰
docker run -it --rm saju-mcp-server

# ๋˜๋Š” docker-compose ์‚ฌ์šฉ
docker-compose up -d

Smithery๋ฅผ ํ†ตํ•œ ์›ํด๋ฆญ ์„ค์น˜

# Smithery CLI๋กœ ์„ค์น˜
npx @smithery/cli install saju-mcp-server --client claude

Smithery ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค์—์„œ ๋” ์‰ฝ๊ฒŒ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ“š ์‚ฌ์ฃผํŒ”์ž ์šฉ์–ด ์„ค๋ช…

๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ

  • ์ฒœ๊ฐ„(ๅคฉๅนฒ): ๊ฐ‘(็”ฒ), ์„(ไน™), ๋ณ‘(ไธ™), ์ •(ไธ), ๋ฌด(ๆˆŠ), ๊ธฐ(ๅทฑ), ๊ฒฝ(ๅบš), ์‹ (่พ›), ์ž„(ๅฃฌ), ๊ณ„(็™ธ) - 10๊ฐœ

  • ์ง€์ง€(ๅœฐๆ”ฏ): ์ž(ๅญ), ์ถ•(ไธ‘), ์ธ(ๅฏ…), ๋ฌ˜(ๅฏ), ์ง„(่พฐ), ์‚ฌ(ๅทณ), ์˜ค(ๅˆ), ๋ฏธ(ๆœช), ์‹ (็”ณ), ์œ (้…‰), ์ˆ (ๆˆŒ), ํ•ด(ไบฅ) - 12๊ฐœ

  • ์˜คํ–‰(ไบ”่กŒ): ๋ชฉ(ๆœจ), ํ™”(็ซ), ํ† (ๅœŸ), ๊ธˆ(้‡‘), ์ˆ˜(ๆฐด) - ์ƒ์ƒ์ƒ๊ทน ๊ด€๊ณ„

  • ์‹ญ์„ฑ(ๅๆ˜Ÿ): ๋น„๊ฒฌ, ๊ฒ์žฌ, ์‹์‹ , ์ƒ๊ด€, ํŽธ์žฌ, ์ •์žฌ, ํŽธ๊ด€, ์ •๊ด€, ํŽธ์ธ, ์ •์ธ

๊ณ ๊ธ‰ ๋ถ„์„ ์š”์†Œ

  • ์ง€์žฅ๊ฐ„(ๆ”ฏ่—ๅนฒ): ์ง€์ง€ ์†์— ์ˆจ์–ด์žˆ๋Š” ์ฒœ๊ฐ„ (์ •๊ธฐ, ์ค‘๊ธฐ, ์—ฌ๊ธฐ)

  • ์‹ ์‚ด(็ฅžๆฎบ): 15๊ฐœ์˜ ๊ธธํ‰ ์ง€ํ‘œ (์ฒœ์„๊ท€์ธ, ์—ญ๋งˆ์‚ด, ๋„ํ™”์‚ด, ์›์ง„์‚ด, ๊ท€๋ฌธ๊ด€์‚ด ๋“ฑ)

  • ์šฉ์‹ (็”จ็ฅž): ์‚ฌ์ฃผ์˜ ๊ท ํ˜•์„ ๋งž์ถ”๋Š” ํ•ต์‹ฌ ์˜คํ–‰

  • ๊ฒฉ๊ตญ(ๆ ผๅฑ€): ์‚ฌ์ฃผ์˜ ์ „์ฒด์ ์ธ ํŒจํ„ด๊ณผ ์„ฑํ–ฅ

  • ๋Œ€์šด(ๅคง้‹): 10๋…„ ๋‹จ์œ„์˜ ํฐ ์šด์„ธ ํ๋ฆ„

  • ์ง„ํƒœ์–‘์‹œ(็œžๅคช้™ฝๆ™‚): ํ•œ๊ตญ ํ‘œ์ค€์‹œ -30๋ถ„ ๋ณด์ • (์ •ํ™•ํ•œ ์‚ฌ์ฃผ ๊ณ„์‚ฐ์„ ์œ„ํ•จ)

โš ๏ธ ๋ฉด์ฑ… ์กฐํ•ญ

์ด ์„œ๋น„์Šค๋Š” ์ „ํ†ต ์‚ฌ์ฃผํŒ”์ž๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ฐธ๊ณ ์šฉ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ์˜ํ•™์ , ๋ฒ•๋ฅ ์ , ์žฌ์ •์  ์กฐ์–ธ์ด ์•„๋‹™๋‹ˆ๋‹ค

  • ์ค‘์š”ํ•œ ๊ฒฐ์ •์€ ๋ฐ˜๋“œ์‹œ ์ „๋ฌธ๊ฐ€์™€ ์ƒ๋‹ดํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค

  • ์šด์„ธ๋Š” ๊ฐœ์ธ์˜ ๋…ธ๋ ฅ๊ณผ ์„ ํƒ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

๐Ÿ“„ ๋ผ์ด์„ผ์Šค

MIT License

๐Ÿ‘จโ€๐Ÿ’ป ๊ธฐ์—ฌ

์ด์Šˆ ์ œ๋ณด ๋ฐ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!


English

โœจ Features

  • Saju (Four Pillars) Calculation: Automatic calculation of 8 characters from birth date and time (with -30min true solar time correction)

  • Fortune Analysis: Comprehensive analysis including personality, career, wealth, health, and love fortune

  • Compatibility Analysis: Compatibility calculation and comparison between two people

  • Calendar Conversion: Solar โ†” Lunar calendar conversion (1900-2200) with leap month support

  • Daily Fortune: Detailed daily fortune for specific dates

  • Dae-un (ๅคง้‹): 10-year major fortune cycle analysis

  • Yong-sin (็”จ็ฅž) Analysis: Personalized advice on colors, directions, and careers

  • Ji-jang-gan Strength: Precise analysis with seasonal hidden stem strength calculation

  • Sin-sal (็ฅžๆฎบ): Detection of 15 special stars (including Won-jin-sal, Gwi-mun-gwan-sal)

๐Ÿš€ Quick Start

Installation

Option 1: Automatic Installation Script (Recommended)

curl -fsSL https://raw.githubusercontent.com/hoshin/saju-mcp-server/main/install.sh | bash

Option 2: Manual Installation

npm install -g @hoshin/saju-mcp-server

Option 3: Using npx (No Installation)

npx @hoshin/saju-mcp-server

Claude Desktop Configuration

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "saju": {
      "command": "npx",
      "args": ["-y", "@hoshin/saju-mcp-server"]
    }
  }
}

Restart Claude Desktop and start using the tools!

๐Ÿ› ๏ธ Available Tools (7 Integrated Tools)

  1. analyze_saju - Integrated Saju analysis (basic/fortune/yongsin/school_compare/yongsin_method)

  2. check_compatibility - Analyze compatibility between two people

  3. convert_calendar - Convert between solar and lunar calendars (1900-2200)

  4. get_daily_fortune - Get daily fortune for specific date

  5. get_dae_un - Get 10-year major fortune cycles

  6. get_fortune_by_period - Get fortune by period (year/month/hour/multi-year)

  7. manage_settings - Manage interpretation settings (get/set)

๐Ÿ“š Key Concepts

Basic Components

  • Heavenly Stems (ๅคฉๅนฒ): 10 stems - ็”ฒไน™ไธ™ไธๆˆŠๅทฑๅบš่พ›ๅฃฌ็™ธ

  • Earthly Branches (ๅœฐๆ”ฏ): 12 branches - ๅญไธ‘ๅฏ…ๅฏ่พฐๅทณๅˆๆœช็”ณ้…‰ๆˆŒไบฅ

  • Five Elements (ไบ”่กŒ): Wood, Fire, Earth, Metal, Water

  • Ten Gods (ๅๆ˜Ÿ): 10 relationship types

Advanced Analysis

  • Hidden Stems (ๆ”ฏ่—ๅนฒ): Hidden stems within branches

  • Special Stars (็ฅžๆฎบ): 15 auspicious/inauspicious indicators

  • Yong-sin (็”จ็ฅž): Beneficial element for balance

  • Pattern (ๆ ผๅฑ€): Overall life pattern classification

  • Dae-un (ๅคง้‹): 10-year major fortune cycles

  • True Solar Time (็œžๅคช้™ฝๆ™‚): -30min Korea time correction

๐Ÿณ Docker Support

# Build image
docker build -t saju-mcp-server .

# Run container
docker run -it --rm saju-mcp-server

# Or use docker-compose
docker-compose up -d

๐Ÿ”ง Smithery One-Click Install

# Install via Smithery CLI
npx @smithery/cli install saju-mcp-server --client claude

Easier installation and management through Smithery marketplace.

๐Ÿ“– Documentation

๐Ÿค Contributing

Issues and pull requests are welcome!

๐Ÿ“„ License

MIT License

โš ๏ธ Disclaimer

This service provides reference information based on traditional Saju fortune-telling.

  • Not intended as medical, legal, or financial advice

  • Please consult professionals for important decisions

  • Fortune can change based on personal effort and choices


Made with โค๏ธ for Korean traditional fortune-telling

Install Server
A
security โ€“ no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hjsh200219/fortuneteller'

If you have feedback or need assistance with the MCP directory API, please join our Discord server