Auspice BaZi — Four Pillars Chart
Server Details
Cast a BaZi (Four Pillars) chart with true solar time, plus a reflective personality sketch.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
cast_chart and personality_sketch both produce chart facts, which could cause a misselection if an agent only needs a chart. However, personality_sketch is explicitly step 1 of a two-step sketch workflow and compose_sketch is unmistakably step 2, so the descriptions mostly disambiguate the tools.
cast_chart and compose_sketch follow an imperative verb_noun pattern, but personality_sketch is noun-led and signals a workflow step rather than an action, breaking the pattern. All names are readable and consistently snake_case, so this is a minor inconsistency rather than chaos.
Three tools is small but fits the server's narrow niche: one standalone chart tool and a two-step sketch pipeline. It is not so thin as to feel trivial, though the count is slightly below what a more general chart-plus-personality server might warrant.
The server covers its stated domain end-to-end: cast_chart provides the full deterministic chart output, and personality_sketch plus compose_sketch form a complete two-step pipeline with no dead ends. No CRUD-style operations are expected for this domain, so there are no obvious gaps.
Available Tools
3 toolscast_chartCast a BaZi chart (true solar time first)ARead-onlyIdempotentInspect
Cast a BaZi / Four Pillars chart the right way round: true solar time correction FIRST (DST + longitude + equation of time), then the four pillars with hidden stems and Na Yin, day master identity, and luck cycles. Also casts a comparison chart from raw clock time and reports exactly what calculators that skip the correction would get wrong for this birth. Returns a formatted scroll. If your client renders the chart card (widget) for the user, do NOT repeat the chart, pillars or link in text — add only a short plain-language walkthrough. Otherwise begin your reply with the scroll EXACTLY as returned, inside a code block, without redrawing or reformatting it; NEVER show the raw JSON / structured data to the user (the scroll is the display form); add your own walkthrough only after it. Runs on the production Auspice Oracle engine (same conventions as auspiceoracle.com/en/method). Facts only: no strength verdicts, no favorable elements, no interpretation. Deterministic.
| Name | Required | Description | Default |
|---|---|---|---|
| day | Yes | Birth day of month, 1–31 | |
| hour | Yes | Recorded wall-clock hour, 24-hour format | |
| lang | No | Language of the rendered output — pass the language the user is conversing in. Defaults to 'en'. | |
| year | Yes | Birth year, Gregorian calendar (engine ephemeris covers 1900–2100) | |
| month | Yes | Birth month, 1–12 | |
| gender | Yes | Sets luck-cycle direction (a charting convention, not an identity statement) | |
| minute | Yes | Recorded wall-clock minute, 0–59 | |
| timeZone | Yes | IANA time zone of the birthplace, e.g. 'Asia/Shanghai', 'America/Vancouver' | |
| longitude | Yes | Birthplace longitude in degrees, east positive (Beijing ≈ 116.4, Vancouver ≈ -123.1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| season | Yes | Season of the month branch (deterministic lookup) |
| pillars | Yes | |
| castFrom | Yes | The instant the chart was cast from (true solar time), YYYY-MM-DD HH:mm |
| dayMaster | Yes | |
| lunarDate | Yes | |
| luckCycles | Yes | |
| fullReadingUrl | Yes | |
| naiveComparison | Yes | What calculators that skip true solar time would get wrong for this exact birth |
| solarCorrection | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly/idempotent/non-destructive, and the description reinforces and extends these honestly: it asserts 'Deterministic', names the production engine and conventions, explicitly excludes interpretation ('Facts only: no strength verdicts, no favorable elements'), and dictates the never-show-raw-JSON rule. This is rich behavioral disclosure fully consistent with the annotations — no contradiction.
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 long but every sentence earns its place: correction order, output contents, presentation routing, exclusions, engine reference, determinism, and the JSON never-display rule are all load-bearing for correct invocation. Purpose is front-loaded ahead of the formatting constraints. Slightly dense, but appropriately so for a tool with complex presentation requirements.
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?
Exceptionally complete given the complexity: an output schema exists, all 9 parameters are documented, and the description covers purpose, correction mechanics, output composition, presentation rules, behavioral exclusions, engine provenance, and determinism. Nothing an agent needs to call it correctly and format the result safely is missing.
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 coverage is 100%, so the schema documents every parameter. The description adds genuine interconnect value by explaining that timeZone + longitude feed the true-solar-time correction pipeline, which gives semantic meaning beyond individual field definitions. This is a modest value-add over a complete schema, so the baseline 3 holds.
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?
Opens with a specific verb + resource ('Cast a BaZi / Four Pillars chart the right way round') and immediately names the defining constraint (true solar time correction FIRST). The title reinforces the differentiator. Purpose is unambiguous and self-evidently distinct from the sibling tools compose_sketch and personality_sketch.
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?
Provides solid operational guidance on how to present output (the card-widget vs. raw-scroll branches, never showing raw JSON), which is a form of usage context. However, it never names alternatives or exclusion conditions — there is no 'use X instead when Y' guidance relative to compose_sketch or personality_sketch. The when-to-use context is implied by the tool's specificity rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose_sketchCompose the sketch sheet (step 2 of 2)ARead-onlyIdempotentInspect
Step 2 of 2 for a personality sketch: submit the three sections you wrote after personality_sketch (image / beneath / practice, in the same lang) and receive the finished framed sheet — the fixed MIRROR line, limits, quotation, link and signature are assembled server-side. Present the returned sheet to the user VERBATIM as your reply; do not edit or add to it (if your client renders the sheet card for the user, do not repeat it in text — say nothing more than a one-line closing). Rejects fills that stray into forbidden territory (Ten Gods, strength, favorable elements, luck cycles) — rewrite and resubmit if that happens.
| Name | Required | Description | Default |
|---|---|---|---|
| day | Yes | Birth day of month, 1–31 | |
| hour | Yes | Recorded wall-clock hour, 24-hour format | |
| lang | No | Language of the rendered output — pass the language the user is conversing in. Defaults to 'en'. | |
| year | Yes | Birth year, Gregorian calendar (engine ephemeris covers 1900–2100) | |
| image | Yes | Your 象 section: the day-master image, two or three sentences | |
| month | Yes | Birth month, 1–12 | |
| minute | Yes | Recorded wall-clock minute, 0–59 | |
| beneath | Yes | Your 里 section: one visible-vs-hidden-stems contrast, one sentence | |
| practice | Yes | Your 行 section: one small self-observation to try today, imperative | |
| timeZone | Yes | IANA time zone of the birthplace, e.g. 'Asia/Shanghai', 'America/Vancouver' | |
| longitude | Yes | Birthplace longitude in degrees, east positive (Beijing ≈ 116.4, Vancouver ≈ -123.1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| sheet | Yes | The finished sketch sheet — show it to the user verbatim |
| fullReadingUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral detail beyond annotations: server-side assembly, verbatim presentation requirement, rejection of forbidden territory (Ten Gods, strength, etc.), and client-side rendering guidance. Annotations already declare readOnlyHint and idempotentHint, and the description does not contradict them—it enriches them with concrete behavioral instructions.
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 long but every sentence serves a purpose: purpose, pipeline position, input requirements, presentation rules, and rejection behavior. It is front-loaded with the core purpose. No filler; each clause carries actionable info. It could be tightened slightly but is well-structured for an agent.
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 tool is complex (step 2 with rejection and presentation rules), and the description covers all necessary aspects: what to submit, what happens server-side, how to present the result, and error handling. With an output schema present, return values are already documented. The description is complete enough for an agent to invoke correctly without ambiguity.
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 coverage is 100%, so the baseline is 3. The description adds value by requiring the three sections be in the same language as the conversation and clarifying that they originate from the prior step. It also hints at content constraints (forbidden territory) that affect what values are acceptable, which goes beyond the raw schema descriptions.
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 it is step 2 of 2 for a personality sketch, specifying the exact inputs (image, beneath, practice) and the output (a finished framed sheet with server-side assembly). It distinguishes itself from siblings by noting it follows personality_sketch and is distinct from cast_chart, which is a different workflow. The verb 'compose' and resource are concrete and unambiguous.
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?
It explicitly positions itself as step 2 after personality_sketch, instructing the agent to submit sections written in that step, and gives clear presentation instructions (verbatim, no edits) and a rewrite/resubmit flow on rejection. It does not explicitly name alternative tools or say 'when not to use', but the pipeline step is unambiguous. The guidance is strong enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
personality_sketchPersonality sketch (fill-in template)ARead-onlyIdempotentInspect
Step 1 of 2 for a personality sketch. Casts the chart and returns the chart facts plus a fill-in template (象 image / 里 beneath / 行 practice) for YOU, the assistant, to write — a short literary sketch grounded only in the returned facts, within the stated limits (no strength verdict, no favorable elements, no Ten Gods, no luck-cycle reading). Step 2: pass your three texts to compose_sketch and present its framed sheet verbatim. Deterministic facts; the prose is yours; the framing is the server’s.
| Name | Required | Description | Default |
|---|---|---|---|
| day | Yes | Birth day of month, 1–31 | |
| hour | Yes | Recorded wall-clock hour, 24-hour format | |
| lang | No | Language of the rendered output — pass the language the user is conversing in. Defaults to 'en'. | |
| year | Yes | Birth year, Gregorian calendar (engine ephemeris covers 1900–2100) | |
| month | Yes | Birth month, 1–12 | |
| minute | Yes | Recorded wall-clock minute, 0–59 | |
| timeZone | Yes | IANA time zone of the birthplace, e.g. 'Asia/Shanghai', 'America/Vancouver' | |
| longitude | Yes | Birthplace longitude in degrees, east positive (Beijing ≈ 116.4, Vancouver ≈ -123.1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| season | Yes | Season of the month branch (deterministic lookup) |
| pillars | Yes | |
| dayMaster | Yes | |
| boundaryRisk | Yes | |
| fullReadingUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, but the description adds significant behavioral context: the tool is deterministic ('Deterministic facts'), the prose is the assistant's responsibility, and the framing is the server's. It also discloses the return content (facts plus template) and the limits of what it does not provide.
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 detailed and somewhat long, but every sentence serves a purpose: purpose, workflow, limits, and next step. It is front-loaded with the primary purpose and clearly structured into two steps. Slightly verbose but not wasteful.
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?
Given the tool's complexity (8 params, output schema, sibling tool), the description is complete. It tells the agent exactly what to do, what to expect, how to proceed to step 2, and what constraints apply. Nothing essential is missing for an agent to call it correctly.
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 coverage is 100% – every parameter has a description in the schema, so the baseline for parameter semantics is 3. The tool description does not add parameter-specific information beyond that, but it doesn't need to since the schema is comprehensive and includes ranges and examples.
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 specific role: 'Step 1 of 2 for a personality sketch' that casts the chart and returns facts plus a fill-in template. It distinguishes itself from sibling compose_sketch by naming it as step 2 and specifying the task division (deterministic facts vs. assistant's prose).
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?
It explicitly describes the workflow: cast the chart, receive facts/template, write three texts, then pass them to compose_sketch. It also specifies what not to do (no strength verdict, no favorable elements, no Ten Gods, no luck-cycle reading), giving clear boundaries.
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
- First observed
cast_chart - First observed
compose_sketch - First observed
personality_sketch
Related MCP Connectors
Generate BaZi charts from birth details. Explore Four Pillars, solar terms, and Luck Pillars for d…
BaZi (Chinese Four Pillars) chart calculator. Structured chart data only, no predictions.
Day Pillar reading from your birth date — BaZi astrology.
Sub-arcsecond astrology on NASA JPL DE440: natal, transits, Human Design, Vedic, BaZi.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceCalculates Chinese BaZi (Four Pillars of Destiny) charts based on birth date, time, and location, including solar term information, decade luck cycles, and true solar time corrections.2-
- AlicenseNot gradedqualityAmaintenanceEnables calculation of Four Pillars of Destiny (BaZi) charts using true solar time and a global geographic database, providing pillars, Da Yun, and branch interactions for any location and time.60 npm1MIT
- FlicenseNot gradedqualityCmaintenanceEnables BaZi fortune-telling and life analysis by generating birth charts, yearly fortune predictions, personality insights, and complete destiny reports from birth date, time, and gender.-
- AlicenseNot gradedqualityDmaintenanceProvides accurate Chinese Bazi (八字) fortune-telling calculations including birth chart analysis, destiny forecasting, and Chinese calendar information. Addresses inaccuracies in existing AI fortune-telling tools by delivering precise Bazi data for personality analysis and metaphysical insights.309 npmISC
Glama MCP Gateway
Add one secure layer between your agents and this server.