Auspice BaZi — Four Pillars Chart

Cast a BaZi (Four Pillars) chart with true solar time, plus a reflective personality sketch.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,782Tokens (tool definitions)
~12.4 KBTypical response size
Significant attention impact (2.95% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "bazi": {
      "url": "https://auspiceoracle.com/mcp/bazi"
    }
  }
}

Remote endpoints

https://auspiceoracle.com/mcp/bazistreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢cast_chart(year, month, day, hour, minute, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "year": {
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100,
      "description": "Birth year, Gregorian calendar (engine ephemeris covers 1900–2100)"
    },
    "month": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12,
      "description": "Birth month, 1–12"
    },
    "day": {
      "type": "integer",
      "minimum": 1,
      "maximum": 31,
      "description": "Birth day of month, 1–31"
    },
    "hour": {
      "type": "integer",
      "minimum": 0,
      "maximum": 23,
      "description": "Recorded wall-clock hour, 24-hour format"
    },
    "minute": {
      "type": "integer",
      "minimum": 0,
      "maximum": 59,
      "description": "Recorded wall-clock minute, 0–59"
    },
    "timeZone": {
      "type": "string",
      "description": "IANA time zone of the birthplace, e.g. 'Asia/Shanghai', 'America/Vancouver'"
    },
    "longitude": {
      "type": "number",
      "minimum": -180,
      "maximum": 180,
      "description": "Birthplace longitude in degrees, east positive (Beijing ≈ 116.4, Vancouver ≈ -123.1)"
    },
    "lang": {
      "description": "Language of the rendered output — pass the language the user is conversing in. Defaults to 'en'.",
      "type": "string",
      "enum": [
        "en",
        "zh"
      ]
    },
    "gender": {
      "type": "string",
      "enum": [
        "male",
        "female"
      ],
      "description": "Sets luck-cycle direction (a charting convention, not an identity statement)"
    }
  },
  "required": [
    "year",
    "month",
    "day",
    "hour",
    "minute",
    "timeZone",
    "longitude",
    "gender"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "pillars": {
      "type": "object",
      "properties": {
        "year": {
          "type": "object",
          "properties": {
            "ganZhi": {
              "type": "string",
              "description": "Stem-branch pair, e.g. 庚午"
            },
            "hiddenStems": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Hidden stems of the branch, principal qi first"
            },
            "naYin": {
              "type": "string",
              "description": "Na Yin of the pillar (Chinese)"
            },
            "naYinEn": {
              "type": "string",
              "description": "Na Yin, site-locked English name"
            }
          },
          "required": [
            "ganZhi",
            "hiddenStems",
            "naYin",
            "naYinEn"
          ],
          "additionalProperties": false
        },
        "month": {
          "type": "object",
          "properties": {
            "ganZhi": {
              "type": "string",
              "description": "Stem-branch pair, e.g. 庚午"
            },
            "hiddenStems": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Hidden stems of the branch, principal qi first"
            },
            "naYin": {
              "type": "string",
              "description": "Na Yin of the pillar (Chinese)"
            },
            "naYinEn": {
              "type": "string",
              "description": "Na Yin, site-locked English name"
            }
          },
          "required": [
            "ganZhi",
            "hiddenStems",
            "naYin",
            "naYinEn"
          ],
          "additionalProperties": false
        },
        "day": {
          "type": "object",
          "properties": {
            "ganZhi": {
              "type": "string",
              "description": "Stem-branch pair, e.g. 庚午"
            },
            "hiddenStems": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Hidden stems of the branch, principal qi first"
            },
            "naYin": {
              "type": "string",
              "description": "Na Yin of the pillar (Chinese)"
            },
            "naYinEn": {
              "type": "string",
              "description": "Na Yin, site-locked English name"
            }
          },
          "required": [
            "ganZhi",
            "hiddenStems",
            "naYin",
            "naYinEn"
          ],
          "additionalProperties": false
        },
        "hour": {
          "type": "object",
          "properties": {
            "ganZhi": {
              "type": "string",
              "description": "Stem-branch pair, e.g. 庚午"
            },
            "hiddenStems": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Hidden stems of the branch, principal qi first"
            },
            "naYin": {
              "type": "string",
              "description": "Na Yin of the pillar (Chinese)"
            },
            "naYinEn": {
              "type": "string",
              "description": "Na Yin, site-locked English name"
            }
          },
          "required": [
            "ganZhi",
            "hiddenStems",
            "naYin",
            "naYinEn"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "year",
        "month",
        "day",
        "hour"
      ],
      "additionalProperties": false
    },
    "dayMaster": {
      "type": "object",
      "properties": {
        "gan": {
          "type": "string"
        },
        "pinyin": {
          "type": "string"
        },
        "element": {
          "type": "string",
          "description": "Five-element of the day stem (Chinese)"
        },
        "elementEn": {
          "type": "string"
        },
        "emoji": {
          "type": "string",
          "description": "Identity-seal emoji for the day master (ten-stem lookup)"
        },
        "image": {
          "type": "string",
          "description": "Traditional image of the stem, e.g. 钗钏之金"
        },
        "imageEn": {
          "type": "string"
        },
        "motto": {
          "type": "string",
          "description": "Fixed brand motto for this day master (Chinese)"
        },
        "mottoEn": {
          "type": "string"
        }
      },
      "required": [
        "gan",
        "pinyin",
        "element",
        "elementEn",
        "emoji",
        "image",
        "imageEn",
        "motto",
        "mottoEn"
      ],
      "additionalProperties": false
    },
    "season": {
      "type": "object",
      "properties": {
        "monthBranch": {
          "type": "string"
        },
        "zh": {
          "type": "string"
        },
        "en": {
          "type": "string"
        }
      },
      "required": [
        "monthBranch",
        "zh",
        "en"
      ],
      "additionalProperties": false,
      "description": "Season of the month branch (deterministic lookup)"
    },
    "lunarDate": {
      "type": "string"
    },
    "castFrom": {
      "type": "string",
      "description": "The instant the chart was cast from (true solar time), YYYY-MM-DD HH:mm"
    },
    "solarCorrection": {
      "type": "object",
      "properties": {
        "correctionMinutes": {
          "type": "number",
          "description": "Total correction; the three parts sum exactly to it"
        },
        "parts": {
          "type": "object",
          "properties": {
            "dstMinutes": {
              "type": "number"
            },
            "longitudeMinutes": {
              "type": "number"
            },
            "equationOfTimeMinutes": {
              "type": "number"
            }
          },
          "required": [
            "dstMinutes",
            "longitudeMinutes",
            "equationOfTimeMinutes"
          ],
          "additionalProperties": false
        },
        "minutesToBoundary": {
          "type": "number"
        },
        "boundaryRisk": {
          "type": "boolean",
          "description": "Within 8 min of an hour-branch boundary"
        },
        "nonexistentWallTime": {
          "type": "object",
          "properties": {
            "hit": {
              "type": "boolean"
            },
            "gapMinutes": {
              "type": "number"
            }
          },
          "required": [
            "hit",
            "gapMinutes"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "correctionMinutes",
        "parts",
        "minutesToBoundary",
        "boundaryRisk",
        "nonexistentWallTime"
      ],
      "additionalProperties": false
    },
    "naiveComparison": {
      "type": "object",
      "properties": {
        "differs": {
          "type": "boolean",
          "description": "True when a chart cast from raw clock time (no solar correction) would differ"
        },
        "pillarsChanged": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Which pillars differ, e.g. ['hour']"
        },
        "hourBranchShift": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "from": {
                  "type": "string"
                },
                "to": {
                  "type": "string"
                }
              },
              "required": [
                "from",
                "to"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ],
          "description": "Hour-branch move caused by the correction (naive → corrected), null if unchanged"
        }
      },
      "required": [
        "differs",
        "pillarsChanged",
        "hourBranchShift"
      ],
      "additionalProperties": false,
      "description": "What calculators that skip true solar time would get wrong for this exact birth"
    },
    "luckCycles": {
      "type": "object",
      "properties": {
        "startSolarDate": {
          "type": "string"
        },
        "cycles": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "ganZhi": {
                "type": "string"
              },
              "startAge": {
                "type": "number"
              },
              "endAge": {
                "type": "number"
              },
              "startYear": {
                "type": "number"
              },
              "endYear": {
                "type": "number"
              }
            },
            "required": [
              "ganZhi",
              "startAge",
              "endAge",
              "startYear",
              "endYear"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "startSolarDate",
        "cycles"
      ],
      "additionalProperties": false
    },
    "fullReadingUrl": {
      "type": "string"
    }
  },
  "required": [
    "pillars",
    "dayMaster",
    "season",
    "lunarDate",
    "castFrom",
    "solarCorrection",
    "naiveComparison",
    "luckCycles",
    "fullReadingUrl"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢personality_sketch(year, month, day, hour, minute, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "year": {
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100,
      "description": "Birth year, Gregorian calendar (engine ephemeris covers 1900–2100)"
    },
    "month": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12,
      "description": "Birth month, 1–12"
    },
    "day": {
      "type": "integer",
      "minimum": 1,
      "maximum": 31,
      "description": "Birth day of month, 1–31"
    },
    "hour": {
      "type": "integer",
      "minimum": 0,
      "maximum": 23,
      "description": "Recorded wall-clock hour, 24-hour format"
    },
    "minute": {
      "type": "integer",
      "minimum": 0,
      "maximum": 59,
      "description": "Recorded wall-clock minute, 0–59"
    },
    "timeZone": {
      "type": "string",
      "description": "IANA time zone of the birthplace, e.g. 'Asia/Shanghai', 'America/Vancouver'"
    },
    "longitude": {
      "type": "number",
      "minimum": -180,
      "maximum": 180,
      "description": "Birthplace longitude in degrees, east positive (Beijing ≈ 116.4, Vancouver ≈ -123.1)"
    },
    "lang": {
      "description": "Language of the rendered output — pass the language the user is conversing in. Defaults to 'en'.",
      "type": "string",
      "enum": [
        "en",
        "zh"
      ]
    }
  },
  "required": [
    "year",
    "month",
    "day",
    "hour",
    "minute",
    "timeZone",
    "longitude"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "dayMaster": {
      "type": "object",
      "properties": {
        "gan": {
          "type": "string"
        },
        "pinyin": {
          "type": "string"
        },
        "element": {
          "type": "string",
          "description": "Five-element of the day stem (Chinese)"
        },
        "elementEn": {
          "type": "string"
        },
        "emoji": {
          "type": "string",
          "description": "Identity-seal emoji for the day master (ten-stem lookup)"
        },
        "image": {
          "type": "string",
          "description": "Traditional image of the stem, e.g. 钗钏之金"
        },
        "imageEn": {
          "type": "string"
        },
        "motto": {
          "type": "string",
          "description": "Fixed brand motto for this day master (Chinese)"
        },
        "mottoEn": {
          "type": "string"
        }
      },
      "required": [
        "gan",
        "pinyin",
        "element",
        "elementEn",
        "emoji",
        "image",
        "imageEn",
        "motto",
        "mottoEn"
      ],
      "additionalProperties": false
    },
    "pillars": {
      "type": "object",
      "properties": {
        "year": {
          "type": "object",
          "properties": {
            "ganZhi": {
              "type": "string",
              "description": "Stem-branch pair, e.g. 庚午"
            },
            "hiddenStems": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Hidden stems of the branch, principal qi first"
            },
            "naYin": {
              "type": "string",
              "description": "Na Yin of the pillar (Chinese)"
            },
            "naYinEn": {
              "type": "string",
              "description": "Na Yin, site-locked English name"
            }
          },
          "required": [
            "ganZhi",
            "hiddenStems",
            "naYin",
            "naYinEn"
          ],
          "additionalProperties": false
        },
        "month": {
          "type": "object",
          "properties": {
            "ganZhi": {
              "type": "string",
              "description": "Stem-branch pair, e.g. 庚午"
            },
            "hiddenStems": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Hidden stems of the branch, principal qi first"
            },
            "naYin": {
              "type": "string",
              "description": "Na Yin of the pillar (Chinese)"
            },
            "naYinEn": {
              "type": "string",
              "description": "Na Yin, site-locked English name"
            }
          },
          "required": [
            "ganZhi",
            "hiddenStems",
            "naYin",
            "naYinEn"
          ],
          "additionalProperties": false
        },
        "day": {
          "type": "object",
          "properties": {
            "ganZhi": {
              "type": "string",
              "description": "Stem-branch pair, e.g. 庚午"
            },
            "hiddenStems": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Hidden stems of the branch, principal qi first"
            },
            "naYin": {
              "type": "string",
              "description": "Na Yin of the pillar (Chinese)"
            },
            "naYinEn": {
              "type": "string",
              "description": "Na Yin, site-locked English name"
            }
          },
          "required": [
            "ganZhi",
            "hiddenStems",
            "naYin",
            "naYinEn"
          ],
          "additionalProperties": false
        },
        "hour": {
          "type": "object",
          "properties": {
            "ganZhi": {
              "type": "string",
              "description": "Stem-branch pair, e.g. 庚午"
            },
            "hiddenStems": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Hidden stems of the branch, principal qi first"
            },
            "naYin": {
              "type": "string",
              "description": "Na Yin of the pillar (Chinese)"
            },
            "naYinEn": {
              "type": "string",
              "description": "Na Yin, site-locked English name"
            }
          },
          "required": [
            "ganZhi",
            "hiddenStems",
            "naYin",
            "naYinEn"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "year",
        "month",
        "day",
        "hour"
      ],
      "additionalProperties": false
    },
    "season": {
      "type": "object",
      "properties": {
        "monthBranch": {
          "type": "string"
        },
        "zh": {
          "type": "string"
        },
        "en": {
          "type": "string"
        }
      },
      "required": [
        "monthBranch",
        "zh",
        "en"
      ],
      "additionalProperties": false,
      "description": "Season of the month branch (deterministic lookup)"
    },
    "boundaryRisk": {
      "type": "boolean"
    },
    "fullReadingUrl": {
      "type": "string"
    }
  },
  "required": [
    "dayMaster",
    "pillars",
    "season",
    "boundaryRisk",
    "fullReadingUrl"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢compose_sketch(year, month, day, hour, minute, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "year": {
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100,
      "description": "Birth year, Gregorian calendar (engine ephemeris covers 1900–2100)"
    },
    "month": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12,
      "description": "Birth month, 1–12"
    },
    "day": {
      "type": "integer",
      "minimum": 1,
      "maximum": 31,
      "description": "Birth day of month, 1–31"
    },
    "hour": {
      "type": "integer",
      "minimum": 0,
      "maximum": 23,
      "description": "Recorded wall-clock hour, 24-hour format"
    },
    "minute": {
      "type": "integer",
      "minimum": 0,
      "maximum": 59,
      "description": "Recorded wall-clock minute, 0–59"
    },
    "timeZone": {
      "type": "string",
      "description": "IANA time zone of the birthplace, e.g. 'Asia/Shanghai', 'America/Vancouver'"
    },
    "longitude": {
      "type": "number",
      "minimum": -180,
      "maximum": 180,
      "description": "Birthplace longitude in degrees, east positive (Beijing ≈ 116.4, Vancouver ≈ -123.1)"
    },
    "lang": {
      "description": "Language of the rendered output — pass the language the user is conversing in. Defaults to 'en'.",
      "type": "string",
      "enum": [
        "en",
        "zh"
      ]
    },
    "image": {
      "type": "string",
      "minLength": 10,
      "maxLength": 600,
      "description": "Your 象 section: the day-master image, two or three sentences"
    },
    "beneath": {
      "type": "string",
      "minLength": 10,
      "maxLength": 400,
      "description": "Your 里 section: one visible-vs-hidden-stems contrast, one sentence"
    },
    "practice": {
      "type": "string",
      "minLength": 4,
      "maxLength": 160,
      "description": "Your 行 section: one small self-observation to try today, imperative"
    }
  },
  "required": [
    "year",
    "month",
    "day",
    "hour",
    "minute",
    "timeZone",
    "longitude",
    "image",
    "beneath",
    "practice"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "sheet": {
      "type": "string",
      "description": "The finished sketch sheet — show it to the user verbatim"
    },
    "fullReadingUrl": {
      "type": "string"
    }
  },
  "required": [
    "sheet",
    "fullReadingUrl"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools