somyung-saju-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@somyung-saju-mcpAnalyze my son born 2019-11-22 10:30's temperament and learning style"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
somyung-saju-mcp
MCP (Model Context Protocol) server for Korean Saju (사주팔자) child temperament analysis.
Lets AI assistants such as Claude calculate a child's Four Pillars of Destiny and return their innate temperament, learning style, and parenting guidance — as a framework for understanding a child, not a prediction of their future.
No API key. No network calls. All calculation runs locally.
Built by SoMyung, created by SungHa — a certified Myeongri Psychology Counselor (명리심리상담사 1급) with an MS in Decision Making and Applied Analytics, and a parent of three.
Tools
Tool | Description |
| Four Pillars + Five Element balance + personality traits + learning style + parenting tips |
| Compare two children's temperaments, how they clash, and how to mediate |
| Detailed explanation of any element (wood / fire / earth / metal / water) |
Related MCP server: timemap-mcp
Install
npm install -g somyung-saju-mcpOr run it without installing (see the npx config below).
Configure with Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json on macOS
(%APPDATA%\Claude\claude_desktop_config.json on Windows).
Using npx — no install:
{
"mcpServers": {
"somyung-saju": {
"command": "npx",
"args": ["-y", "somyung-saju-mcp"]
}
}
}If installed globally:
{
"mcpServers": {
"somyung-saju": {
"command": "somyung-mcp"
}
}
}Restart Claude Desktop after editing the config.
Configure with Claude Code
claude mcp add somyung-saju -- npx -y somyung-saju-mcpUsage
Once configured, just ask:
"My daughter was born on 2020-05-15 at 14:30. What's her temperament?"
"Compare my two kids: son born 2018-03-20 10:00 and daughter born 2021-07-08 15:30"
"What does the Fire element mean for a child?"
"My son was born 2019-11-22, I don't know the time. What's his personality like?"
The assistant calls the right tool and interprets the structured result conversationally.
How it works
Birth data is parsed (date, optional time, gender).
Four Pillars (년주 / 월주 / 일주 / 시주) are calculated using solar terms (절기), so the month pillar is correct rather than approximated from the calendar month.
Five Element balance is computed across all eight characters — four heavenly stems (천간) and four earthly branches (지지).
A temperament profile is assembled: dominant and weakest elements, personality traits, learning style, social style, emotional patterns, and parenting tips.
The AI host receives structured data and gives a natural interpretation.
Four pillars, each drawn from the 60-term sexagenary cycle, yield 518,400 distinct profiles — about 32,400 times more granular than MBTI's 16 types.
Without a birth time, noon is used as an estimate and the response says so. Three pillars still give roughly 70% of the analysis: core temperament and element balance.
The five elements
Element | Korean | Traits | Learning style |
Wood | 목 / 木 | Creative, independent, growth-oriented | Self-paced, autonomous |
Fire | 화 / 火 | Passionate, expressive, warm | Short bursts, active, social |
Earth | 토 / 土 | Stable, nurturing, reliable | Routine, familiar environment |
Metal | 금 / 金 | Precise, principled, focused | Structured, step-by-step |
Water | 수 / 水 | Intuitive, sensitive, adaptable | Quiet, flexible timing |
Scope
This server describes innate temperament tendencies. It does not provide medical, psychiatric, or educational diagnosis, and does not predict future events.
Development
git clone https://github.com/ers123/somyung-saju-mcp.git
cd somyung-saju-mcp
npm install
npm run dev # run with tsx (hot reload)
npm run build # compile TypeScript
npm start # run the compiled serverPublishing to Smithery
Smithery's web form takes a remote HTTP endpoint. This is a stdio server, so it is published as an MCPB bundle instead:
node scripts/build-mcpb.mjs
npx @smithery/cli mcp publish ./somyung-saju.mcpb -n <namespace>/somyung-sajuThe build script exists because the two specs disagree: the MCPB manifest
schema rejects inputSchema inside tools, while Smithery's registry requires
it — publishing without it fails once per tool, and publishing with tools
removed fails with "No values to set". So the script packs a spec-compliant
manifest and then patches the tool schemas into the archive, reading them from
the running server so they cannot drift.
The bundle carries production node_modules, since the host runs it standalone
rather than resolving dependencies itself.
Releasing
Publishing runs on GitHub Actions via npm trusted publishing (OIDC) — no token is stored anywhere and no 2FA prompt is involved.
npm version patch # bumps package.json and creates the vX.Y.Z tag
git push --follow-tagsThe workflow refuses to publish if the tag disagrees with package.json, and
runs a stdio smoke test against the built server before publishing.
Related
Full 8-section premium reports, in ten languages, are at somyung.cc — including a free preview.
License
MIT — see LICENSE.
Available Tools
3 toolsanalyze_child_temperamentA
Calculate a child's Four Pillars of Destiny (사주팔자) and return their temperament profile including dominant element, personality traits, learning style, and parenting tips based on Korean Saju astrology.
| Name | Required | Description | Default |
|---|---|---|---|
| gender | Yes | Child's gender: M for male, F for female | |
| birthDate | Yes | Birth date in YYYY-MM-DD format | |
| birthTime | No | Birth time in HH:MM format (24h). If omitted, noon is used as estimate. | |
| childName | No | Child's name (optional, used for personalization) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of explaining behavior. It clearly states the tool calculates and returns a profile, implying a non-destructive read-style operation, but it does not disclose potential caveats such as reliance on assumptions, timezone handling, or whether any external computation or persistence occurs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core action and then lists key output categories. It stays within a reasonable length while conveying the tool's purpose and expected results without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is fairly complete for a tool with no output schema, listing the main return components. It could be stronger by explicitly guiding an agent toward when this tool is preferred over its siblings, but the core functionality is adequately covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters including defaults. The description adds no parameter-level meaning beyond the schema, justifying the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear, specific verb ('Calculate') and resource ('a child's Four Pillars of Destiny'), and enumerates the output components (dominant element, personality traits, learning style, parenting tips). This distinguishes it from siblings like compare_siblings and explain_five_elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when a child's Saju-based temperament profile is needed. However, it does not explicitly state when not to use it or mention alternatives such as compare_siblings for sibling comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_siblingsA
Compare the Saju temperament profiles of two siblings to understand their differences, compatibilities, and how to parent each child differently.
| Name | Required | Description | Default |
|---|---|---|---|
| child1 | Yes | First child's birth information | |
| child2 | Yes | Second child's birth information |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral transparency burden. It communicates the intended outcome (understanding differences, compatibilities, parenting) but does not disclose how the comparison is performed, whether birthTime is required for accuracy, or what the output format looks like. For a read-only analysis tool, this is a moderate gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core verb 'Compare' and the resource 'Saju temperament profiles.' Every clause adds meaningful context, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The input schema thoroughly documents the parameters, but there is no output schema and no mention of what the tool returns. The description does not specify whether the output is a textual report, a structured profile, or a list of recommendations. This is a notable gap for a tool with no annotations and two nested objects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage over all parameters, so a baseline score of 3 applies. The description adds no parameter-specific meaning beyond indicating that the two objects represent siblings. It does not clarify optional vs. required behavior for birthTime or any edge cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: comparing Saju temperament profiles of two siblings. The verb 'Compare' is specific, and the resource 'two siblings' makes it distinguishable from the sibling tools (analyze_child_temperament for individual profiles, explain_five_elements for element theory). The purpose is further clarified by mentioning differences, compatibilities, and parenting approaches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when the user wants to compare two siblings, but it does not explicitly state when not to use it or recommend alternatives like analyze_child_temperament for single children. An agent can infer the context from the phrase 'two siblings,' but there is no direct routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_five_elementsA
Explain what a specific Five Element (오행) means for a child's personality, learning, and development in Korean Saju astrology.
| Name | Required | Description | Default |
|---|---|---|---|
| element | Yes | The Five Element to explain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It covers what the explanation addresses (personality, learning, development) and the cultural framework (Korean Saju), which is meaningful. However, it does not disclose output format, caveats, or whether the explanation is individualized, so it only partially satisfies transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, efficient sentence that front-loads the verb and resource and wastes no words. Every phrase ('specific Five Element', 'child's personality, learning, and development', 'Korean Saju astrology') contributes essential meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, no-output-schema tool this is nearly complete: the agent knows what the tool does, what the parameter means, and the domain. The only notable gaps are the lack of explicit sibling differentiation and no indication of response structure, but the simple nature of an explanation tool makes these minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the enum fully documents valid values. The description adds context that the element is interpreted in Korean Saju astrology for a child's development, but does not need to add more since the parameter is already well-described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Explain' with a clear resource ('a specific Five Element (오행)') and delineates the scope ('for a child's personality, learning, and development in Korean Saju astrology'). This is distinct from sibling tools analyze_child_temperament and compare_siblings, which focus on analysis and comparison rather than explanation of an element.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context that this tool is for explaining an element in Korean Saju astrology, but it never states when to choose it over analyze_child_temperament or compare_siblings, nor does it give any exclusions or alternative conditions. Usage is only implied by the phrase 'for a child's personality, learning, and development.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.0.1- First observed
analyze_child_temperament - First observed
compare_siblings - First observed
explain_five_elements
TDQS
Scored across 3 tools
Each tool has a clear, distinct purpose: one analyzes a single child, one compares two siblings, and one explains a specific five-element concept. There is no overlap in functionality that would cause an agent to select the wrong tool.
All tool names follow the same verb_noun pattern in snake_case (analyze_child_temperament, compare_siblings, explain_five_elements). Verb choice and object structure are uniform, making the set predictable and easy to navigate.
Three tools is at the lower bound of the well-scoped range. The narrow domain of Korean Saju child temperament analysis is served adequately, but the set feels slightly thin compared to typical MCP servers, though not incomplete.
The tools cover the main workflows: analyzing a child, comparing siblings, and explaining element meanings. Missing a tool for retrieving raw Saju chart details or parent-child compatibility, but these are not explicitly required by the server's stated scope.
Maintenance
Related MCP Connectors
BaZi four pillars, Chinese zodiac, lunisolar calendar and almanac days for AI agents.
Generate BaZi charts from birth details. Explore Four Pillars, solar terms, and Luck Pillars for d…
Zi Wei Dou Shu for AI agents: free natal charts, six transit levels, and optional readings.
Chinese metaphysics (bazi, qimen, 5-element) as decision-support tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables traditional Chinese fortune-telling through BaZi (Four Pillars) analysis, including solar/lunar date conversion, Five Element balance calculations, Ten Gods deduction, and destiny interpretation for metaphysics applications.14 npmMIT
- AlicenseAqualityCmaintenanceEnables AI agents to perform Chinese metaphysics calculations including BaZi charts, Tong Shu indicators, solar terms, and more, using a verified engine with 740+ tests.88MIT

OpenFate Bazi MCPofficial
AlicenseAqualityCmaintenanceEnables AI agents to calculate deterministic Bazi (Four Pillars) charts with True Solar Time and Earthly Branch interactions, avoiding LLM hallucination of calendrical math.668 npm154MIT- AlicenseNot gradedqualityCmaintenanceEnables Chinese metaphysics Ba Zi (Four Pillars) birth chart calculation and Huangli (almanac) queries via natural language, with lightweight offline setup.MIT