0.2.6npm · @openfate/bazi-mcp · latest release
Observed 2026-08-17T07:12:48.927Z using mcpSecurity-inventory. Protocol 2025-06-18.
| Tool | Category | Risk |
|---|---|---|
calculate_bazi_chartCalculate a deterministic OpenFate Bazi/Four Pillars chart with True Solar Time correction, Day Master, Da Yun cycles, and branch interactions. For best accuracy, pass longitude plus timezone or timezoneId.Input schema{
"type": "object",
"properties": {
"year": {
"type": "integer",
"minimum": 1800,
"maximum": 2100,
"description": "Birth year. Use the lunar year when calendarType is lunar."
},
"month": {
"type": "integer",
"minimum": 1,
"maximum": 12,
"description": "Birth month, 1-12."
},
"day": {
"type": "integer",
"minimum": 1,
"maximum": 31,
"description": "Birth day, 1-31."
},
"hour": {
"type": "integer",
"minimum": 0,
"maximum": 23,
"description": "Birth hour in local civil time, 0-23. Omit when birth time is unknown."
},
"minute": {
"type": "integer",
"minimum": 0,
"maximum": 59,
"default": 0,
"description": "Birth minute in local civil time."
},
"gender": {
"type": "string",
"enum": [
"male",
"female"
],
"description": "Birth gender used for Da Yun direction."
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Birthplace longitude in decimal degrees. Enables true solar time correction."
},
"timezone": {
"type": "number",
"minimum": -14,
"maximum": 14,
"description": "UTC offset in hours for the birth clock time, such as 8 for China or -5 for US Eastern Standard Time."
},
"timezoneId": {
"type": "string",
"description": "Optional IANA timezone ID, such as Asia/Shanghai or America/New_York."
},
"dstOffset": {
"type": "number",
"minimum": -2,
"maximum": 2,
"default": 0,
"description": "Daylight saving offset in hours to remove from civil clock time. Use 1 for one-hour DST."
},
"calendarType": {
"type": "string",
"enum": [
"solar",
"lunar"
],
"default": "solar",
"description": "Input calendar type."
},
"isLeapMonth": {
"type": "boolean",
"default": false,
"description": "Whether the lunar input month is a leap month. Used only when calendarType is lunar."
},
"enableTrueSolarTime": {
"type": "boolean",
"default": true,
"description": "Apply true solar time when longitude and timezone data are available."
},
"dayBoundaryMode": {
"type": "string",
"enum": [
"MIDNIGHT_00",
"ZI_HOUR_23"
],
"default": "ZI_HOUR_23",
"description": "Day-change rule. ZI_HOUR_23 means 23:00 starts the next day pillar."
}
},
"required": [
"year",
"month",
"day",
"gender"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
} | — | — |
calculate_true_solar_timeCalculate OpenFate True Solar Time from civil birth time, longitude, timezone, and optional DST offset. Use this when explaining why the hour pillar may differ from ordinary clock-time tools.Input schema{
"type": "object",
"properties": {
"year": {
"type": "integer",
"minimum": 1800,
"maximum": 2100
},
"month": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"day": {
"type": "integer",
"minimum": 1,
"maximum": 31
},
"hour": {
"type": "integer",
"minimum": 0,
"maximum": 23
},
"minute": {
"type": "integer",
"minimum": 0,
"maximum": 59,
"default": 0
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Birthplace longitude in decimal degrees."
},
"timezone": {
"type": "number",
"minimum": -14,
"maximum": 14,
"description": "UTC offset in hours for the clock time."
},
"timezoneId": {
"type": "string",
"description": "IANA timezone ID, such as Asia/Shanghai."
},
"dstOffset": {
"type": "number",
"minimum": -2,
"maximum": 2,
"default": 0,
"description": "Daylight saving offset in hours."
}
},
"required": [
"year",
"month",
"day",
"hour",
"longitude"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
} | — | — |
detect_bazi_interactionsDetect deterministic Earthly Branch interactions for natal charts, synastry checks, annual triggers, or target-branch comparison. Covers clashes, combinations, trines, directionals, punishments, destructions, and harms.Input schema{
"type": "object",
"properties": {
"yearBranch": {
"type": "string",
"enum": [
"子",
"丑",
"寅",
"卯",
"辰",
"巳",
"午",
"未",
"申",
"酉",
"戌",
"亥"
],
"description": "Natal year branch."
},
"monthBranch": {
"type": "string",
"enum": [
"子",
"丑",
"寅",
"卯",
"辰",
"巳",
"午",
"未",
"申",
"酉",
"戌",
"亥"
],
"description": "Natal month branch."
},
"dayBranch": {
"type": "string",
"enum": [
"子",
"丑",
"寅",
"卯",
"辰",
"巳",
"午",
"未",
"申",
"酉",
"戌",
"亥"
],
"description": "Natal day branch."
},
"hourBranch": {
"type": "string",
"enum": [
"子",
"丑",
"寅",
"卯",
"辰",
"巳",
"午",
"未",
"申",
"酉",
"戌",
"亥"
],
"description": "Natal hour branch. Omit when birth time is unknown."
},
"annualBranch": {
"$ref": "#/properties/hourBranch",
"description": "Optional annual or target branch for dynamic interaction detection."
}
},
"required": [
"yearBranch",
"monthBranch",
"dayBranch"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
} | — | — |
get_openfate_bazi_policyReturn OpenFate calculation policy and LLM guidance for Bazi chart calls.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {}
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
} | — | — |
get_openfate_bazi_resourcesReturn canonical OpenFate URLs for charting, readings, compatibility, wealth, true solar time, and AI crawler metadata.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {}
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
} | — | — |
reverse_bazi_to_solar_timesFind possible Gregorian datetimes that produce a given four-pillar Bazi string. This is useful when a user only has a Bazi chart or screenshot. This lookup uses clock-time pillars without location-based true solar correction.Input schema{
"type": "object",
"properties": {
"bazi": {
"type": "string",
"description": "Four pillars separated by spaces, for example: 戊寅 己未 己卯 辛未."
},
"startYear": {
"type": "integer",
"minimum": 1700,
"maximum": 2100,
"default": 1900,
"description": "Start year for brute-force lookup."
},
"endYear": {
"type": "integer",
"minimum": 1700,
"maximum": 2100,
"description": "End year for brute-force lookup. Defaults to the current year."
},
"dayBoundaryMode": {
"type": "string",
"enum": [
"MIDNIGHT_00",
"ZI_HOUR_23"
],
"default": "ZI_HOUR_23",
"description": "Day-change rule used during lookup."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20,
"description": "Maximum number of matching datetimes to return."
}
},
"required": [
"bazi"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
} | — | — |
Compared with initial baseline using full_baseline.
| Risk | Change | Subject |
|---|---|---|
| No material changes recorded. | ||
| Severity | Finding | Advisory |
|---|---|---|
| No confirmed vulnerability is published for this version. | ||
Artifact SHA-256: 97881bd4922e4a3fa7672bf38e69ab0c1564a7dc3d4fd9da68a01fa06b1106a4
Scanner: mcp-proof-engine 0.1.0.