D8ly Read
Server Details
Read-only Bazi, True Solar Time, and Chinese almanac tools in English and Traditional Chinese.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 3 tools
Each tool has a distinct purpose: calculating a birth chart, fetching a date-only almanac, and generating personalized daily Bazi guidance. Descriptions explicitly state when not to use each tool, eliminating ambiguity.
All tool names follow a clear verb_noun snake_case pattern: calculate_bazi_chart, get_daily_almanac, get_daily_bazi_guidance. The verbs calculate vs get vary slightly but the pattern is consistent and predictable.
Three tools is well-scoped for a niche Chinese metaphysics server. Each tool covers a distinct core need: chart creation, almanac lookup, and daily personalized guidance.
The tool surface covers the server's apparent domain completely: standalone chart calculation, calendar-based almanac information, and personalized daily Bazi guidance. No essential workflow is missing for the stated purpose.
Available Tools
3 toolscalculate_bazi_chartCalculate Bazi Chart / 八字排盤ARead-onlyIdempotentInspect
Use this when the user wants a Four Pillars birth chart and has explicitly supplied the birth date, local time, latitude, longitude, and historical UTC offset. Applies True Solar Time correction. Do not use this to infer missing birth details, daylight-saving rules, or personalized guidance for a reading date. Use only with the subject’s permission. / 當使用者要建立四柱八字命盤,並已明確提供出生日期、當地時間、緯度、經度與當時 UTC 時差時使用;計算會校正真太陽時。請勿用來推測缺少的出生資料、夏令時間規則,或指定日期的個人化指引。僅在獲得當事人同意時使用出生資料。
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | Response display preference; structured technical values include both languages / 回應語言偏好;結構化術語同時包含中英文 | en |
| latitude | Yes | Birth latitude in decimal degrees / 出生地緯度(十進位度數) | |
| timezone | Yes | UTC offset in hours at the birth location and date / 出生地與出生日期的 UTC 小時時差 | |
| longitude | Yes | Birth longitude in decimal degrees; used for True Solar Time / 出生地經度,用於真太陽時校正 | |
| birth_date | Yes | Birth date in YYYY-MM-DD format / YYYY-MM-DD 格式的出生日期 | |
| birth_time | Yes | Local birth time in 24-hour HH:mm format / 24 小時制的出生時間 HH:mm |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| tool | Yes | |
| locale | Yes | |
| disclaimer | Yes | |
| generated_at | Yes | |
| canonical_url | Yes | |
| deterministic | Yes | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only/idempotent safety, so the description adds value by disclosing the True Solar Time correction and explicit-consent requirement. It also clarifies non-behaviors (no inference of missing details or DST rules), improving expectation setting.
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?
Compact and front-loaded with use-case and constraints; bilingual phrasing adds no redundant filler. Both the English and Chinese sections carry the same critical information.
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?
With an output schema present, the description appropriately focuses on triggers, constraints, and consent rather than return values. It covers the necessary decision-making context for safe and accurate invocation.
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 covers all parameters; description enhances semantics by explaining how latitude/longitude/timezone contribute to True Solar Time and emphasizing the historical UTC-offset requirement. This helps the agent map natural-language inputs to the correct parameter fields.
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?
Clearly states a specific calculation operation (Four Pillars birth chart) with explicit prerequisites. Differentiates from sibling daily almanac/guidance tools by focusing on natal chart generation.
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 explicit when-to-use conditions (user requests a birth chart and supplies complete birth details) and when-not-to-use conditions (missing details, DST inference, reading-date guidance). The permission requirement further constrains appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_daily_almanacDaily Chinese Almanac / 每日黃曆ARead-onlyIdempotentInspect
Use this when the user asks for Chinese almanac information for a specific calendar date without personal birth data. Returns the day pillar, lunar date, activities, directions, and zodiac clash. Do not use this for a personalized Bazi chart or daily Bazi guidance. No generative AI is used. / 當使用者詢問特定日期的黃曆資料、且不涉及個人出生資料時使用。回傳日柱、農曆、宜忌、吉神方位與生肖相沖。個人八字命盤或八字每日指引請勿使用此工具。本工具不使用生成式 AI。
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Calendar date in YYYY-MM-DD format / YYYY-MM-DD 格式的日期 | |
| locale | No | Response display preference; structured technical values include both languages / 回應語言偏好;結構化術語同時包含中英文 | en |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| tool | Yes | |
| locale | Yes | |
| disclaimer | Yes | |
| generated_at | Yes | |
| canonical_url | Yes | |
| deterministic | Yes | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds meaningful behavioral context beyond the annotations, notably that no generative AI is used and that the tool only works for non-personalized date-based almanac queries. It does not add unnecessarily detailed caveats like rate limits or auth, which are not critical for this tool.
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 core English description is concise, front-loaded with the use case, and every sentence adds value. The bilingual format repeats the same content in Chinese, which is justifiable given the zh locale option but does add some redundancy. Overall it remains appropriately sized and scannable.
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 low complexity, a complete input schema, strong annotations, and an output schema, the description covers everything needed for correct invocation: when to use it, what it returns, what it excludes, and its non-generative behavior. No critical operational detail 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 description coverage is 100%, so the schema already fully documents both parameters: date in YYYY-MM-DD format and locale as an enum with a default. The description does reinforce that the date is a specific calendar date and that personal birth data is out of scope, but it does not provide substantial additional parameter-level detail beyond the schema.
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 names a specific resource ('daily Chinese almanac'), a specific verb ('get'), and lists the exact returned data: day pillar, lunar date, activities, directions, and zodiac clash. It also explicitly distinguishes itself from personalized Bazi chart or daily Bazi guidance tools, so an agent can tell it apart from its siblings immediately.
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 gives an explicit trigger condition: use when the user asks for almanac information for a specific calendar date without personal birth data. It also states negative conditions: do not use for personalized Bazi charts or daily Bazi guidance, which map directly to the sibling tools calculate_bazi_chart and get_daily_bazi_guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_daily_bazi_guidanceDaily Bazi Guidance / 八字每日指引ARead-onlyIdempotentInspect
Use this when the user wants personalized daily Bazi interactions for a specific reading date and has supplied the complete birth inputs. Returns the chart and daily guidance. Do not use this for a date-only almanac request or when any birth input is missing. No generative AI is used. Use only with the subject’s permission. / 當使用者要查看指定日期的個人化八字互動,且已提供完整出生資料時使用;回傳命盤與每日指引。僅詢問日期黃曆或缺少任何出生資料時請勿使用。本工具不使用生成式 AI。僅在獲得當事人同意時使用出生資料。
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | Response display preference; structured technical values include both languages / 回應語言偏好;結構化術語同時包含中英文 | en |
| latitude | Yes | Birth latitude in decimal degrees / 出生地緯度(十進位度數) | |
| timezone | Yes | UTC offset in hours at the birth location and date / 出生地與出生日期的 UTC 小時時差 | |
| longitude | Yes | Birth longitude in decimal degrees; used for True Solar Time / 出生地經度,用於真太陽時校正 | |
| birth_date | Yes | Birth date in YYYY-MM-DD format / YYYY-MM-DD 格式的出生日期 | |
| birth_time | Yes | Local birth time in 24-hour HH:mm format / 24 小時制的出生時間 HH:mm | |
| reading_date | Yes | Date to interpret in YYYY-MM-DD format / YYYY-MM-DD 格式的解讀日期 |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| tool | Yes | |
| locale | Yes | |
| disclaimer | Yes | |
| generated_at | Yes | |
| canonical_url | Yes | |
| deterministic | Yes | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and destructive false, so the description doesn't need to repeat those. It adds extra transparency by stating 'No generative AI is used' (indicating deterministic computation) and 'Use only with the subject's permission' (ethical handling). This goes beyond the annotations and provides valuable behavioral context.
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 clear and well-structured but noticeably redundant due to full bilingual repetition of every sentence in English and Chinese. While this may serve a multilingual audience, it roughly doubles the length without adding new information, making it less concise than necessary for an agent-facing description.
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 mentions what it returns ('chart and daily guidance'), states its non-AI nature, and includes permission requirements. It also clarifies exclusions. Given that an output schema exists, the description sufficiently covers the necessary context without explaining return values in detail, which is appropriate.
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 descriptions cover all parameters with detailed explanations including format, units, and bilingual comments, yielding 100% coverage. The tool description itself does not add further parameter semantics, but since schema coverage is high, the baseline of 3 is appropriate.
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 purpose: providing personalized daily Bazi interpretations for a given reading date with complete birth inputs. It also distinguishes it from siblings by explicitly excluding date-only almanac requests and missing birth input cases, making the purpose 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?
The description gives explicit when-to-use and when-not-to-use conditions ('when the user wants personalized daily Bazi... has supplied complete birth inputs' vs 'Do not use for a date-only almanac or when any birth input is missing'). It also includes important usage notes about not using generative AI and requiring subject permission, providing complete guidance.
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
- Changed
calculate_bazi_chart11 fields changed- removed
Input schema / properties / birth_time / defaultRemoved value: -"12:00" - changed
Input schema / requiredPrevious value: -[ - "birth_date", - "latitude", - "longitude", - "timezone" -]New value: +[ + "birth_date", + "birth_time", + "latitude", + "longitude", + "timezone" +] - added
Output schema / properties / canonical_url / formatAdded value: +"uri" - changed
Output schema / properties / data / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / data / propertiesAdded value: +{ + "birth_input": { + "additionalProperties": false, + "properties": { + "date": { + "type": "string" + }, + "latitude": { + "type": "number" + }, + "longitude": { + "type": "number" + }, + "time": { + "type": "string" + }, + "timezone_offset_hours": { + "type": "number" + } + }, + "required": [ + "date", + "time", + "latitude", + "longitude", + "timezone_offset_hours" + ], + "type": "object" + }, + "calculation_method": { + "type": "string" + }, + "chart": { + "additionalProperties": false, + "properties": { + "day": { + "additionalProperties": false, + "properties": { + "earthly_branch": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "five_elements": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "gan_zhi": { + "type": "string" + }, + "heavenly_stem": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "na_yin": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + } + }, + "required": [ + "heavenly_stem", + "earthly_branch", + "gan_zhi", + "five_elements", + "na_yin" + ], + "type": "object" + }, + "hour": { + "additionalProperties": false, + "properties": { + "earthly_branch": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "five_elements": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "gan_zhi": { + "type": "string" + }, + "heavenly_stem": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "na_yin": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + } + }, + "required": [ + "heavenly_stem", + "earthly_branch", + "gan_zhi", + "five_elements", + "na_yin" + ], + "type": "object" + }, + "month": { + "additionalProperties": false, + "properties": { + "earthly_branch": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "five_elements": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "gan_zhi": { + "type": "string" + }, + "heavenly_stem": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "na_yin": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + } + }, + "required": [ + "heavenly_stem", + "earthly_branch", + "gan_zhi", + "five_elements", + "na_yin" + ], + "type": "object" + }, + "solar_time": { + "additionalProperties": false, + "properties": { + "equation_of_time_minutes": { + "type": "number" + }, + "longitude_correction_minutes": { + "type": "number" + }, + "original_local_time": { + "type": "string" + }, + "timezone_offset_hours": { + "type": "number" + }, + "total_correction_minutes": { + "type": "number" + }, + "true_solar_local_time": { + "type": "string" + } + }, + "required": [ + "original_local_time", + "true_solar_local_time", + "timezone_offset_hours", + "longitude_correction_minutes", + "equation_of_time_minutes", + "total_correction_minutes" + ], + "type": "object" + }, + "year": { + "additionalProperties": false, + "properties": { + "earthly_branch": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "five_elements": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "gan_zhi": { + "type": "string" + }, + "heavenly_stem": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "na_yin": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + } + }, + "required": [ + "heavenly_stem", + "earthly_branch", + "gan_zhi", + "five_elements", + "na_yin" + ], + "type": "object" + } + }, + "required": [ + "year", + "month", + "day", + "hour", + "solar_time" + ], + "type": "object" + } +} - removed
Output schema / properties / data / propertyNamesRemoved value: -{ - "type": "string" -} - added
Output schema / properties / data / requiredAdded value: +[ + "birth_input", + "calculation_method", + "chart" +] - added
Output schema / properties / generated_at / formatAdded value: +"date-time" - added
Output schema / properties / generated_at / patternAdded value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - changed
Output schema / properties / schema_version / constPrevious value: -"2026-08-20"New value: +"2026-09-07" - added
Output schema / properties / tool / constAdded value: +"calculate_bazi_chart"
- Changed
get_daily_almanac9 fields changed- added
Output schema / properties / canonical_url / formatAdded value: +"uri" - changed
Output schema / properties / data / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / data / propertiesAdded value: +{ + "activities": { + "additionalProperties": false, + "properties": { + "suitable": { + "items": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "type": "array" + }, + "unsuitable": { + "items": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "suitable", + "unsuitable" + ], + "type": "object" + }, + "auspicious_directions": { + "additionalProperties": false, + "properties": { + "fortune": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "joy": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "wealth": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "yang_noble": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "yin_noble": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + } + }, + "required": [ + "joy", + "wealth", + "fortune", + "yang_noble", + "yin_noble" + ], + "type": "object" + }, + "date": { + "type": "string" + }, + "day_pillar": { + "additionalProperties": false, + "properties": { + "earthly_branch": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "five_elements": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "gan_zhi": { + "type": "string" + }, + "heavenly_stem": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "na_yin": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + } + }, + "required": [ + "heavenly_stem", + "earthly_branch", + "gan_zhi", + "five_elements", + "na_yin" + ], + "type": "object" + }, + "lunar_date": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "zodiac_clash": { + "additionalProperties": false, + "properties": { + "animal": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "description": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + } + }, + "required": [ + "animal", + "description" + ], + "type": "object" + } +} - removed
Output schema / properties / data / propertyNamesRemoved value: -{ - "type": "string" -} - added
Output schema / properties / data / requiredAdded value: +[ + "date", + "lunar_date", + "day_pillar", + "activities", + "auspicious_directions", + "zodiac_clash" +] - added
Output schema / properties / generated_at / formatAdded value: +"date-time" - added
Output schema / properties / generated_at / patternAdded value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - changed
Output schema / properties / schema_version / constPrevious value: -"2026-08-20"New value: +"2026-09-07" - added
Output schema / properties / tool / constAdded value: +"get_daily_almanac"
- Changed
get_daily_bazi_guidance11 fields changed- removed
Input schema / properties / birth_time / defaultRemoved value: -"12:00" - changed
Input schema / requiredPrevious value: -[ - "birth_date", - "latitude", - "longitude", - "timezone", - "reading_date" -]New value: +[ + "birth_date", + "birth_time", + "latitude", + "longitude", + "timezone", + "reading_date" +] - added
Output schema / properties / canonical_url / formatAdded value: +"uri" - changed
Output schema / properties / data / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / data / propertiesAdded value: +{ + "birth_input": { + "additionalProperties": false, + "properties": { + "date": { + "type": "string" + }, + "latitude": { + "type": "number" + }, + "longitude": { + "type": "number" + }, + "time": { + "type": "string" + }, + "timezone_offset_hours": { + "type": "number" + } + }, + "required": [ + "date", + "time", + "latitude", + "longitude", + "timezone_offset_hours" + ], + "type": "object" + }, + "calculation_method": { + "type": "string" + }, + "chart": { + "additionalProperties": false, + "properties": { + "day": { + "additionalProperties": false, + "properties": { + "earthly_branch": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "five_elements": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "gan_zhi": { + "type": "string" + }, + "heavenly_stem": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "na_yin": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + } + }, + "required": [ + "heavenly_stem", + "earthly_branch", + "gan_zhi", + "five_elements", + "na_yin" + ], + "type": "object" + }, + "hour": { + "additionalProperties": false, + "properties": { + "earthly_branch": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "five_elements": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "gan_zhi": { + "type": "string" + }, + "heavenly_stem": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "na_yin": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + } + }, + "required": [ + "heavenly_stem", + "earthly_branch", + "gan_zhi", + "five_elements", + "na_yin" + ], + "type": "object" + }, + "month": { + "additionalProperties": false, + "properties": { + "earthly_branch": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "five_elements": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "gan_zhi": { + "type": "string" + }, + "heavenly_stem": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "na_yin": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + } + }, + "required": [ + "heavenly_stem", + "earthly_branch", + "gan_zhi", + "five_elements", + "na_yin" + ], + "type": "object" + }, + "solar_time": { + "additionalProperties": false, + "properties": { + "equation_of_time_minutes": { + "type": "number" + }, + "longitude_correction_minutes": { + "type": "number" + }, + "original_local_time": { + "type": "string" + }, + "timezone_offset_hours": { + "type": "number" + }, + "total_correction_minutes": { + "type": "number" + }, + "true_solar_local_time": { + "type": "string" + } + }, + "required": [ + "original_local_time", + "true_solar_local_time", + "timezone_offset_hours", + "longitude_correction_minutes", + "equation_of_time_minutes", + "total_correction_minutes" + ], + "type": "object" + }, + "year": { + "additionalProperties": false, + "properties": { + "earthly_branch": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "five_elements": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "gan_zhi": { + "type": "string" + }, + "heavenly_stem": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "na_yin": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + } + }, + "required": [ + "heavenly_stem", + "earthly_branch", + "gan_zhi", + "five_elements", + "na_yin" + ], + "type": "object" + } + }, + "required": [ + "year", + "month", + "day", + "hour", + "solar_time" + ], + "type": "object" + }, + "reading": { + "additionalProperties": false, + "properties": { + "activities": { + "additionalProperties": false, + "properties": { + "suitable": { + "items": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "type": "array" + }, + "unsuitable": { + "items": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "suitable", + "unsuitable" + ], + "type": "object" + }, + "auspicious_directions": { + "additionalProperties": false, + "properties": { + "cai": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "fu": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "xi": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "yangGui": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "yinGui": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + } + }, + "required": [ + "xi", + "cai", + "fu", + "yangGui", + "yinGui" + ], + "type": "object" + }, + "branch_interactions": { + "items": { + "additionalProperties": false, + "properties": { + "description": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "natal_branch": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "natal_pillar": { + "enum": [ + "year", + "month", + "day", + "hour" + ], + "type": "string" + }, + "today_branch": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "type": { + "enum": [ + "clash", + "combination" + ], + "type": "string" + } + }, + "required": [ + "type", + "today_branch", + "natal_branch", + "natal_pillar", + "description" + ], + "type": "object" + }, + "type": "array" + }, + "day_pillar": { + "additionalProperties": false, + "properties": { + "earthly_branch": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "five_elements": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "gan_zhi": { + "type": "string" + }, + "heavenly_stem": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "na_yin": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + } + }, + "required": [ + "heavenly_stem", + "earthly_branch", + "gan_zhi", + "five_elements", + "na_yin" + ], + "type": "object" + }, + "hours": { + "items": { + "additionalProperties": false, + "properties": { + "end_time": { + "type": "string" + }, + "gan_zhi": { + "type": "string" + }, + "rating": { + "maximum": 5, + "minimum": 1, + "type": "integer" + }, + "start_time": { + "type": "string" + }, + "suitable": { + "items": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "type": "array" + }, + "ten_god": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "unsuitable": { + "items": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "gan_zhi", + "start_time", + "end_time", + "ten_god", + "rating", + "suitable", + "unsuitable" + ], + "type": "object" + }, + "type": "array" + }, + "lucky": { + "additionalProperties": false, + "properties": { + "color": { + "type": "string" + }, + "colorHex": { + "type": "string" + }, + "colorZh": { + "type": "string" + }, + "number": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "color", + "colorZh", + "colorHex", + "number" + ], + "type": "object" + }, + "lunar_date": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "overall_rating": { + "maximum": 5, + "minimum": 1, + "type": "integer" + }, + "summary": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "ten_god": { + "additionalProperties": false, + "properties": { + "day_master": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "favorability": { + "maximum": 2, + "minimum": -2, + "type": "integer" + }, + "name": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "theme": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "today_stem": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + } + }, + "required": [ + "name", + "day_master", + "today_stem", + "theme", + "favorability" + ], + "type": "object" + }, + "zodiac_clash": { + "additionalProperties": false, + "properties": { + "animal": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + }, + "description": { + "additionalProperties": false, + "properties": { + "en": { + "type": "string" + }, + "zh": { + "type": "string" + } + }, + "required": [ + "en", + "zh" + ], + "type": "object" + } + }, + "required": [ + "animal", + "description" + ], + "type": "object" + } + }, + "required": [ + "lunar_date", + "day_pillar", + "ten_god", + "overall_rating", + "summary", + "branch_interactions", + "activities", + "auspicious_directions", + "zodiac_clash", + "lucky", + "hours" + ], + "type": "object" + }, + "reading_date": { + "type": "string" + } +} - removed
Output schema / properties / data / propertyNamesRemoved value: -{ - "type": "string" -} - added
Output schema / properties / data / requiredAdded value: +[ + "reading_date", + "birth_input", + "calculation_method", + "chart", + "reading" +] - added
Output schema / properties / generated_at / formatAdded value: +"date-time" - added
Output schema / properties / generated_at / patternAdded value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - changed
Output schema / properties / schema_version / constPrevious value: -"2026-08-20"New value: +"2026-09-07" - added
Output schema / properties / tool / constAdded value: +"get_daily_bazi_guidance"
3 tool updates
- First observed
calculate_bazi_chart - First observed
get_daily_almanac - First observed
get_daily_bazi_guidance
Related MCP Connectors
Chinese almanac: lunar calendar, BaZi 八字, daily 宜忌, lucky-day picker, public holidays.
BaZi four pillars, Chinese zodiac, lunisolar calendar and almanac days for AI agents.
BaZi (Chinese Four Pillars) chart calculator. Structured chart data only, no predictions.
Generate BaZi charts from birth details. Explore Four Pillars, solar terms, and Luck Pillars for d…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides Chinese traditional calendar functions including BaZi calculation, solar-lunar calendar conversion, Huangli almanac queries, daily fortune readings, 24 solar terms, and Wu Xing (Five Elements) analysis.MIT
- 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.34MIT
- 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 gradedqualityCmaintenanceEnables Chinese metaphysics Ba Zi (Four Pillars) birth chart calculation and Huangli (almanac) queries via natural language, with lightweight offline setup.MIT