Saroday MCP Server
# @saroday/mcp-server
MCP (Model Context Protocol) server for [Saroday](https://saroday.com) — Korean Saju (사주) calculation and myeongni-hak (命理學) glossary lookup.
This MCP server lets Claude Desktop, Cline, Cursor, and any other MCP-compatible AI client perform accurate Korean Saju (Four Pillars of Destiny) calculation by calling the public Saroday API under the hood.
---
## What it does
When connected, the AI client gains access to four tools:
| Tool | Description |
|------|-------------|
| `calculate_saju` | Compute full Saju analysis (8 characters, sipseong, sinsal, hapchung, 12-unseong, yongshin, daeun) from birth date / time / gender. |
| `lookup_glossary` | Look up any of 80+ myeongni-hak terms (도화살, 천을귀인, 식신, 육합, etc.) with full Korean explanation. |
| `get_daily_fortune` | Today's fortune for one of 12 Western zodiac signs or 12 Chinese zodiac signs. Cached server-side, fast response. |
| `discover_saroday_api` | List available Saroday API endpoints and metadata. |
Why this matters: ChatGPT, Claude, and other LLMs frequently miscalculate Saju when asked directly because manse-ryeok (萬歲曆) lookup and 절기 (jeolgi) boundary handling require precise data. This MCP delegates the math to a verified server while letting the AI focus on the interpretation.
---
## Installation
### Option A — npx (no install)
```bash
npx @saroday/mcp-server
```
### Option B — global install
```bash
npm install -g @saroday/mcp-server
saroday-mcp
```
### Option C — clone and run
```bash
git clone https://github.com/saroday/mcp-server.git
cd mcp-server
npm install
node index.js
```
Requires Node.js 18 or newer.
---
## Configure Claude Desktop
Edit your Claude Desktop config file:
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
Add (or merge) the following:
```json
{
"mcpServers": {
"saroday": {
"command": "npx",
"args": ["-y", "@saroday/mcp-server"]
}
}
}
```
Restart Claude Desktop. You should see "saroday" listed in the MCP servers panel (the plug icon in the input area).
### Local development (running from cloned repo)
```json
{
"mcpServers": {
"saroday": {
"command": "node",
"args": ["/absolute/path/to/mcp-server/index.js"]
}
}
}
```
---
## Configure Cline / Cursor / other MCP clients
Any MCP client that supports stdio transport works. Point it at the `saroday-mcp` binary or `node index.js`. See your client's docs for the exact config format.
---
## Try it out
After connecting, ask Claude things like:
- *"My birthday is March 15, 1992 at 10am. Calculate my Korean Saju."*
- *"What does 도화살 (dohwa-sal) mean in Korean fortune-telling?"*
- *"내 사주 봐줘. 1990년 5월 20일 음력 14시 여성."*
- *"제왕(jeokwang) 12-unseong이 뭐야?"*
Claude will automatically invoke `calculate_saju` or `lookup_glossary` and give you a polished interpretation based on the structured data returned.
---
## Environment variables
| Variable | Default | Purpose |
|----------|---------|---------|
| `SARODAY_API_BASE` | `https://saroday.com` | Override the API base URL (e.g., for self-hosted or staging environments). |
---
## Rate limits
The public Saroday API allows **100 requests per hour per IP** for free use. Heavy users — apps shipping to many end-users, AI agents handling many concurrent users — should request an API key (coming soon) for higher quotas.
Contact: contact@saroday.com
---
## How it works
```
[User in Claude Desktop]
↓ types "내 사주 봐줘"
[Claude Desktop]
↓ calls calculate_saju via MCP stdio
[saroday-mcp (this package, runs locally)]
↓ HTTPS POST /api/v1/saju
[saroday.com server]
↓ runs verified manse-ryeok algorithm
[result JSON]
↑ flows back through the chain
[Claude] writes a beautiful Korean interpretation
```
This MCP package is a thin adapter — all calculation lives on Saroday's servers, so updates to the algorithm or glossary roll out without you having to upgrade the package.
---
## Differentiators
- **Manse-ryeok accuracy** — handles 절기 (solar terms) boundaries that LLMs routinely get wrong (verified against `@fullstackfamily/manseryeok` library)
- **80+ glossary entries (~400 interpretation fields)** — every sinsal, hapchung, sipseong, 12-unseong term has summary / meaning / positive / negative / practical-tip interpretation written in friendly Korean
- **Korean myeongni-hak tradition** — based on 적천수(滴天髓), 자평진전(子平真詮), 궁통보감(窮通寶鑑) references
- **Three-channel exposure** — same algorithm available as web service (saroday.com), public REST API (saroday.com/api/v1), and MCP server (this package). Pick the channel that fits your integration.
---
## License
MIT
---
## Support
- Web: https://saroday.com
- API docs: https://saroday.com/api/docs
- LLM-friendly index: https://saroday.com/llms.txt
- Email: contact@saroday.com
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: calculate_saju computes fortune using traditional methods, discover_saroday_api provides API metadata, get_daily_fortune offers daily horoscopes, and lookup_glossary explains terminology. No overlap in functionality.
All tool names follow a consistent verb_noun pattern using snake_case: calculate_saju, discover_saroday_api, get_daily_fortune, lookup_glossary. No deviation in style.
With 4 tools, the server is well-scoped for its domain of Korean fortune telling. Each tool serves an essential function without redundancy or unnecessary complexity.
The tool set covers the core aspects of the domain: personal fortune calculation (saju), daily fortune, glossary reference, and API discovery. No obvious gaps for the stated purpose.