OpenFate Bazi MCP server with deterministic Four Pillars calculation, True Solar Time, branch interactions, and reverse Bazi lookup.
Four tools with complete input schemas and descriptions. Naming follows verb_noun pattern (calculate_, detect_, reverse_). Descriptions are domain-specific and detailed (150-250 chars), exceeding baseline averages. All parameters have types and descriptions. However, output schemas are not explicitly documented in the source, and error handling guidance is absent. No tool annotations (readOnlyHint) despite all being read-only operations. Parameter descriptions could better explain when to use each tool vs. alternatives.
Calculate a deterministic OpenFate Bazi/Four Pillars chart with True Solar Time correction, Day Master, DAYUN_SECOND_V2 onset receipts, Da Yun cycles, and branch interactions. Pass an exact birth time plus timezone or timezoneId for a calculated V2 onset; otherwise inspect the explicit unavailable/fallback receipt.
Convert civil clock time to true solar time using longitude and timezone data. Useful for precise Bazi calculations when standard time offset alone is insufficient.
Detect branch interactions (clashes, combinations, trines, punishments, directional) among natal pillars and optional annual/Da Yun branches. Returns raw occurrence IDs and pillar positions without transformation scoring.
Reverse-lookup solar datetimes that produce a given four-pillar Bazi string. Performs brute-force search across a year range and returns matching datetimes with their calculated pillars.
Output schemas not documented. Tool descriptions state what is returned (e.g., 'Returns raw occurrence IDs and pillar positions') but formal output schema structure is not visible in source. LLMs cannot plan downstream operations without knowing response field names and types.
No error handling guidance. Tool descriptions lack recovery hints (e.g., 'If timezone is invalid, try timezoneId instead'). No indication of which errors are retryable vs. user-fixable. Agents cannot self-correct on failure.
Tool annotations missing. All four tools are read-only (no state modification), but readOnlyHint is not set in tool definitions. This forces LLMs to reason about safety rather than relying on explicit metadata.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2025-06-18+ | v2 |
Parameter interdependencies underdocumented. calculate_bazi_chart accepts both 'timezone' (numeric offset) and 'timezoneId' (IANA string); descriptions do not clarify precedence or mutual exclusivity. LLMs may pass both, causing ambiguity.
Tool selection guidance missing. No description explains when to call detect_bazi_interactions vs. calculate_bazi_chart, or when reverse_bazi_to_solar_times is appropriate. LLMs must infer intent from names alone.