Verifiable Chinese calendar & feng shui: BaZi, flying stars, Kua, almanac. SHA-256 replayable.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Chinese calendar for a date: lunar date (with leap month), zodiac, day officer 建除, yellow/black path, six-day cycle — computed on Beijing time
YYYY-MM-DD, 1901–2199; defaults to today (Beijing)
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Chinese calendar for a date: lunar date (with leap month), zodiac, day officer 建除, yellow/black path, six-day cycle — computed on Beijing time
| Argument | Type | Description |
|---|---|---|
| date | string | YYYY-MM-DD, 1901–2199; defaults to today (Beijing) |
{
"type": "object",
"required": [],
"properties": {
"date": {
"type": "string",
"description": "YYYY-MM-DD, 1901–2199; defaults to today (Beijing)"
}
}
}Xuan Kong flying star natal chart: nine palaces with mountain/facing/period stars plus classical pattern labels (e.g. 旺山旺向). Period from a construction date, or explicit yun
| Argument | Type | Description |
|---|---|---|
| yun | integer | period 1–9; omit to use the period of the reference date |
| date | string | when yun is omitted: the construction date whose period is used |
| kind | string | |
| sitting* | string | sitting mountain: index 0–23 or Chinese name 子癸丑艮寅甲卯乙辰巽巳丙午丁未坤申庚酉辛戌乾亥壬 |
{
"type": "object",
"required": [
"sitting"
],
"properties": {
"yun": {
"type": "integer",
"description": "period 1–9; omit to use the period of the reference date"
},
"date": {
"type": "string",
"description": "when yun is omitted: the construction date whose period is used"
},
"kind": {
"enum": [
"xiagua",
"tigua"
],
"type": "string"
},
"sitting": {
"type": "string",
"description": "sitting mountain: index 0–23 or Chinese name 子癸丑艮寅甲卯乙辰巽巳丙午丁未坤申庚酉辛戌乾亥壬"
}
}
}Indoor form-sha from a floor-plan wireframe: 穿堂煞 (door-window alignment), 缺角 (nine-palace missing corners), 厕占中宫 (toilet at centre) — plus optional fusion with the Eight Mansions house stars and Ming Gua. Grade B verdicts, no aggregate score
| Argument | Type | Description |
|---|---|---|
| plan* | object | floor-plan wireframe: { exterior: [[x,y]...], rooms: [{kind, polygon}], openings: [{kind, a, b, is_entry}], walls: [[a,b]...] } in meters (y axis = north by drafting convention) |
| gender | string | |
| birth_year | integer | birth year for Ming Gua (enables personal palace stars + 宅命配) |
| rotation_deg | number | plan y-axis deviation from true north, clockwise — must come from compass measurement |
| sitting_index | integer | sitting mountain index 0–23 (0 = 子), enables Eight Mansions fusion |
| minggua_convention | string |
{
"type": "object",
"required": [
"plan"
],
"properties": {
"plan": {
"type": "object",
"description": "floor-plan wireframe: { exterior: [[x,y]...], rooms: [{kind, polygon}], openings: [{kind, a, b, is_entry}], walls: [[a,b]...] } in meters (y axis = north by drafting convention)"
},
"gender": {
"enum": [
"male",
"female"
],
"type": "string"
},
"birth_year": {
"type": "integer",
"description": "birth year for Ming Gua (enables personal palace stars + 宅命配)"
},
"rotation_deg": {
"type": "number",
"description": "plan y-axis deviation from true north, clockwise — must come from compass measurement"
},
"sitting_index": {
"type": "integer",
"description": "sitting mountain index 0–23 (0 = 子), enables Eight Mansions fusion"
},
"minggua_convention": {
"enum": [
"standard",
"gen"
],
"type": "string"
}
}
}Four pillars (BaZi) for a date+hour, returned under BOTH year conventions (Lichun vs Lunar New Year) × BOTH day boundaries (midnight vs 23:00) — differences are shown, not hidden
| Argument | Type | Description |
|---|---|---|
| date | string | YYYY-MM-DD |
| hour | integer | 0–23; defaults to noon |
{
"type": "object",
"required": [],
"properties": {
"date": {
"type": "string",
"description": "YYYY-MM-DD"
},
"hour": {
"type": "integer",
"description": "0–23; defaults to noon"
}
}
}Ming Gua (Kua number) from birth date + gender, with the Lichun year boundary computed astronomically, five-yellow substitution conventions, and eight favourable/unfavourable directions
| Argument | Type | Description |
|---|---|---|
| date | string | birth date YYYY-MM-DD |
| hour | integer | |
| gender* | string | |
| minute | integer | |
| convention | string | five-yellow substitution: standard = male Kun/female Gen; gen = both Gen |
{
"type": "object",
"required": [
"gender"
],
"properties": {
"date": {
"type": "string",
"description": "birth date YYYY-MM-DD"
},
"hour": {
"type": "integer"
},
"gender": {
"enum": [
"male",
"female"
],
"type": "string"
},
"minute": {
"type": "integer"
},
"convention": {
"enum": [
"standard",
"gen"
],
"type": "string",
"description": "five-yellow substitution: standard = male Kun/female Gen; gen = both Gen"
}
}
}Verifiability as an API call: recompute a stored request and compare its SHA-256 input digest (JCS-canonicalised) against an expected value — byte-identical reproduction or honest mismatch
| Argument | Type | Description |
|---|---|---|
| request* | object | the original kernel request JSON |
| engine_version | string | snapshot engine version; mismatch → 409-style error |
| expected_input_digest | string | 64-hex SHA-256 from the report being verified |
{
"type": "object",
"required": [
"request"
],
"properties": {
"request": {
"type": "object",
"description": "the original kernel request JSON"
},
"engine_version": {
"type": "string",
"description": "snapshot engine version; mismatch → 409-style error"
},
"expected_input_digest": {
"type": "string",
"description": "64-hex SHA-256 from the report being verified"
}
}
}List the rule sets the kernel actually implements, with parameters and honest review_state — nothing not implemented is advertised
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}All 24 solar terms of a year with exact Beijing instants (DE441-based), ΔT, and midnight-margin uncertainty flags
| Argument | Type | Description |
|---|---|---|
| year | integer | 1901–2199 |
{
"type": "object",
"required": [],
"properties": {
"year": {
"type": "integer",
"description": "1901–2199"
}
}
}White tiger elevation check (白虎抬头) from a DEM-derived 360-bin skyline: compares the right (white tiger) vs left (azure dragon) sector elevation within ±45° of the sitting direction
| Argument | Type | Description |
|---|---|---|
| skyline_360* | array | 360 elevation angles (degrees), one per azimuth degree |
| sitting_azimuth_deg* | number | sitting direction azimuth (0 = north, clockwise) |
{
"type": "object",
"required": [
"skyline_360",
"sitting_azimuth_deg"
],
"properties": {
"skyline_360": {
"type": "array",
"items": {
"type": "number"
},
"description": "360 elevation angles (degrees), one per azimuth degree"
},
"sitting_azimuth_deg": {
"type": "number",
"description": "sitting direction azimuth (0 = north, clockwise)"
}
}
}San Yuan period (三元九运, 1–9) for a date; periods switch at Lichun, anchored 1984 = start of Period 7
| Argument | Type | Description |
|---|---|---|
| date | string |
{
"type": "object",
"required": [],
"properties": {
"date": {
"type": "string"
}
}
}