Feng Shui MCP Server by RoxyAPI
Server Details
Kua numbers, Eight Mansions, Flying Star charts and annual afflictions for AI agents.
- Status
- Healthy
- Uptime
- 100.0% over 35 days
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
TDQS
Scored across 11 tools
Most tools target clearly distinct feng shui subsystems, such as annual afflictions, Bagua, flying stars, periods, and Kua calculation. The main overlap is between post_feng_shui_kua and post_feng_shui_eight_mansions, since both can classify all eight compass sectors for a person, though Eight Mansions adds composed readings and ranking. An agent can usually distinguish them, but the boundary is not perfectly sharp.
All tool names use a consistent snake_case convention with a clear get_feng_shui_ or post_feng_shui_ prefix. The get/post distinction aligns with lookup versus computed or personalized results, making the naming pattern predictable throughout.
With 11 tools, the server is well-scoped for a feng shui calculation API covering multiple classical systems. Each tool appears to earn its place by covering a distinct method or output, and the count sits comfortably in the 3-15 range.
The surface covers the major feng shui systems: Bagua, flying stars (reference, annual, monthly, natal), Kua, Eight Mansions, periods, and annual afflictions. Minor gaps exist, such as no dedicated monthly affliction endpoint or explicit date-selection tool, but agents can work around these using the available annual and monthly calculations.
Available Tools
11 toolsget_feng_shui_afflictions_yearAnnual afflictions - Tai Sui, San Sha and Five Yellow APIARead-onlyInspect
Return the four annual feng shui afflictions for a solar year with their exact positions: Tai Sui on the mountain of the year branch, Sui Po on the mountain opposite, the Three Killings across the cardinal span opposite the elemental frame of the year, and the Five Yellow wherever it lands on the annual star plate. Positions come with degree ranges rather than only sector names, because Tai Sui occupies 15 degrees and the neighbouring mountains of the same sector are unaffected. All four move at Li Chun in early February, not at Lunar New Year, and the changeover date is returned. Built for renovation planning, date selection and yearly guidance features.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| year | Yes | Solar year, 1900 to 2100. The year runs from Li Chun to Li Chun, so a date in January belongs to the previous year here. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | Yes | |
| suiPo | Yes | |
| sanSha | Yes | |
| taiSui | Yes | |
| fiveYellow | Yes | |
| yearBranch | Yes | |
| changeoverDate | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only and non-destructive, and the description adds substantial behavioral context beyond that: positions come with degree ranges rather than just sector names because Tai Sui occupies 15 degrees; all four afflictions move at Li Chun rather than Lunar New Year; and the changeover date is returned. This gives the agent the key behavioral facts needed to interpret results correctly.
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 front-loaded with the core purpose and enumerates the four afflictions immediately. Every sentence adds useful information: positional precision, the Li Chun timing, the changeover date, and target use cases. It is dense but not padded, and the structure flows logically from result to boundary conditions to application.
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 tool has an output schema, so return-value details are not required in the description. The description fully covers purpose, scope, positional behavior, calendar boundary, and intended usage contexts. Combined with the high-coverage input schema and read-only annotations, an agent has everything needed to invoke this tool correctly.
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 coverage is 100%, so the input schema already documents all three parameters well. The description reinforces the year semantics (Li Chun boundary) but does not add new meaning for lang or compact beyond what the schema already provides. Baseline 3 is appropriate because the schema does the heavy lifting.
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 opens with a specific verb and resource: 'Return the four annual feng shui afflictions for a solar year with their exact positions.' It names exactly which afflictions are included (Tai Sui, Sui Po, Three Killings, Five Yellow) and gives positional detail, clearly distinguishing this from sibling tools focused on bagua, flying stars, or periods.
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 clear application context: 'Built for renovation planning, date selection and yearly guidance features.' It also explains the Li Chun boundary, which is essential for correct usage. It does not explicitly name sibling alternatives or say when not to use this tool, but the context is specific enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_feng_shui_baguaList Bagua sectors - Feng shui bagua map APIARead-onlyInspect
The nine palaces of the compass Bagua map: the eight trigram sectors plus the centre, each with the life area it governs, its five phase, its colours, and both its Later Heaven and Earlier Heaven trigrams. This is the compass map aligned to true directions, so career is always North and wealth is always Southeast whichever way the entrance faces. Trigram details are served from the same source as the I-Ching trigram endpoints, so the two agree field for field. Built for floor plan overlays, room-by-room guides and any interface that maps a space onto life areas.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| limit | No | Maximum items to return per page. Range: 1-9, default 9. | |
| offset | No | Number of items to skip for pagination. Default 0. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | |
| total | Yes | |
| offset | Yes | |
| sectors | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context: the map is aligned to true directions regardless of entrance facing, and trigram details are served from the same source as the I-Ching endpoints so they agree field for field. This gives the agent confidence about data semantics and consistency.
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 four sentences long, front-loads the core content, and contains no filler or repetition. Every sentence earns its place: what is returned, how it is aligned, consistency with I-Ching endpoints, and intended use cases.
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?
For a read-only list endpoint with zero required parameters and a full output schema, the description provides everything an agent needs: data content, semantic orientation, consistency guarantees, and use cases. The annotation already covers side effects, and the output schema covers return structure, so nothing essential 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 documents lang, limit, offset, and compact in detail. The description does not add parameter-level meaning beyond what the schema provides, which matches the baseline for high coverage. No compensation is needed.
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 identifies exactly what is returned: the nine palaces of the compass Bagua map, each with life area, five phase, colours, and both Later and Earlier Heaven trigrams. It also distinguishes this tool from other feng shui endpoints by emphasizing the compass-aligned, direction-fixed nature of the map. The title and description together make the tool's scope 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 provides clear use cases: floor plan overlays, room-by-room guides, and any interface mapping a space onto life areas. It also clarifies that this is the compass map rather than one dependent on entrance facing. It does not explicitly name alternatives or say when not to use this tool, but the context is strong enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_feng_shui_bagua_idLook up a Bagua sector - Life area reference APIARead-onlyInspect
Look up one palace of the compass Bagua map by its life area id, such as wealth, career or love. Returns the compass sector it occupies, its five phase and colours, both trigram arrangements and what the sector governs. The health palace is the centre and carries no direction and no trigram, because the centre of the Lo Shu is not a trigram.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Life area id. One of career, knowledge, family, wealth, fame, love, children, helpful-people, health. | |
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | Yes | |
| focus | Yes | |
| colors | Yes | |
| number | Yes | |
| palace | Yes | |
| element | Yes | |
| meaning | Yes | |
| trigram | No | |
| direction | No | |
| nameLocalized | No | |
| earlierHeavenTrigram | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only and non-destructive. The description adds useful behavioral context beyond that: it lists the returned data (compass sector, five phase, colours, trigram arrangements) and explicitly documents the health palace special case of having no direction or trigram. No contradiction with annotations.
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?
Three concise, front-loaded sentences with no filler. The first sentence defines the operation, the second summarizes the return payload, and the third documents the important exception. Every sentence earns its place.
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?
For a simple single-lookup tool with full schema descriptions, read-only annotations, and an output schema available, the description is complete. It covers what the tool returns, the key input concept, and the notable health-palace exception. An agent has enough to invoke it correctly.
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 coverage is 100%, so the schema already documents id, lang, and compact. The description adds semantic value by explaining the 'id' selects a life area and by highlighting that 'health' behaves differently as the centre with no direction or trigram. This goes beyond the enum list in 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?
States a specific verb and resource: 'Look up one palace of the compass Bagua map by its life area id.' The description clearly scopes the tool to a single sector lookup, not the whole map, and gives concrete examples such as wealth, career, or love. This effectively distinguishes it from sibling tools like get_feng_shui_bagua.
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 clearly establishes when to use the tool: when you have a life area id and want details for one bagua palace. It does not explicitly name sibling alternatives or exclusions, but the 'one palace... by its life area id' framing gives enough context for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_feng_shui_flying_starsList the nine flying stars - Xuan Kong star reference APIARead-onlyInspect
The reference catalogue of the nine flying stars: name, Chinese characters, five phase, home palace and trigram, the period each rules, what each means, and which element strengthens or drains it. The remedy element is what the star itself produces, because a harmful star is drained by giving it somewhere to go rather than fought with the phase that controls it. A pure reference endpoint that needs no chart.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| limit | No | Maximum items to return per page. Range: 1-9, default 9. | |
| offset | No | Number of items to skip for pagination. Default 0. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | |
| stars | Yes | |
| total | Yes | |
| offset | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds useful context by emphasizing this is a pure, static reference and explaining the remedy-element reasoning, but it does not disclose other behavioral details such as pagination behavior or response shape beyond what annotations and schema already provide.
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?
Three dense, purposeful sentences with no filler. The description front-loads the core reference catalogue content, then adds the remedy-element nuance, and ends with the distinguishing 'needs no chart' guidance. Every sentence earns its place.
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?
For a static read-only reference endpoint, the description is complete: it states what the data is, what fields are included, the domain logic behind remedy elements, and the key distinction from chart-based tools. Output schema exists and annotations cover safety, so nothing critical is missing for an agent to call it correctly.
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 lang, limit, offset, and compact are already fully documented. The description adds no additional parameter-level information, which is acceptable given the schema does the heavy lifting; baseline 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 states exactly what the endpoint is: a reference catalogue of the nine flying stars, listing the specific attributes returned (name, Chinese characters, five phase, home palace, trigram, ruling period, meaning, strengthen/drain elements). It also distinguishes itself from chart-based siblings by saying it is 'a pure reference endpoint that needs no chart.'
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 clear context for when to use it: when you need the static reference catalogue of nine stars rather than a chart-based reading. It does not explicitly name alternatives like the annual or monthly flying star endpoints, but the 'needs no chart' phrasing makes the intended use reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_feng_shui_flying_stars_annual_yearAnnual flying stars - Yearly feng shui star chart APIARead-onlyInspect
Return the annual flying star plate for a solar year: which of the nine stars occupies each of the nine palaces, what it means there, and which element strengthens or drains it. The annual plate is universal and does not depend on any building, so it is the layer every yearly feng shui guide is built on. The changeover is Li Chun in early February rather than Lunar New Year, and the exact date is returned so a caller can apply the plate on the right day.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| year | Yes | Solar year, 1900 to 2100. The year runs from Li Chun to Li Chun, so a date in January belongs to the previous year here. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | Yes | |
| palaces | Yes | |
| centerStar | Yes | |
| changeoverDate | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful behavioral context: the plate is universal, the changeover occurs at Li Chun rather than Lunar New Year, and the exact date is returned so callers apply the plate correctly.
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?
Three sentences with no filler, front-loading the core action and output contents first. Every sentence earns its place: what it returns, how it differs from building-specific charts, and the critical date nuance.
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 output schema exists, annotations cover safety, and all parameters are fully described in the schema, the description supplies the missing domain context: the plate's universality, its role in yearly guides, and the Li Chun boundary. Nothing an agent needs to call it correctly 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 fully documents year, lang, and compact. The description reinforces the meaning of 'solar year' and the Li Chun boundary, but it does not add material information beyond what the schema already provides.
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 opens with a specific verb and resource: 'Return the annual flying star plate for a solar year,' then enumerates what the plate contains (stars, palaces, meanings, elements). It distinguishes itself from building-dependent or monthly variants by stating the annual plate is universal and does not depend on any building.
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 clearly positions this tool as the building-independent yearly layer on which annual feng shui guides are built, giving strong context for when to use it. It does not explicitly name sibling alternatives or state when not to use it, but the universality and annual scope make the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_feng_shui_flying_stars_monthlyMonthly flying stars - Month by month feng shui overlay APIARead-onlyInspect
Return the monthly flying star plate, the faster overlay that sits on top of the annual one. Months here are SOLAR months: month 1 begins at Li Chun in early February and each month begins at the next of the twelve major solar terms, so they never line up with calendar months. Omit both parameters to get the month in progress. Built for monthly guidance features and for timing work around an affliction that only lands for part of the year.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| year | No | Solar year, 1900 to 2100. Defaults to the solar year in progress, which changes at Li Chun rather than on 1 January. | |
| month | No | Solar month, 1 to 12, where 1 begins at Li Chun in early February. This is NOT the calendar month: solar month 1 covers roughly 4 February to 5 March. Defaults to the solar month in progress. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | Yes | |
| month | Yes | |
| palaces | Yes | |
| centerStar | Yes | |
| yearBranch | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true and destructiveHint=false already covering the safety profile, the description adds meaningful behavioral context: solar months follow the twelve major solar terms, never align with calendar months, and omitting parameters yields the current month. It also flags the API as a 'faster overlay,' a useful performance and composition trait.
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?
Three substantive sentences with the core result front-loaded and the non-obvious solar-month caveat placed immediately after. Every sentence earns its place, with no filler or unnecessary repetition of schema details.
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 a 100%-covered input schema, an output schema, and read-only annotations, the description covers the domain-specific ambiguity around solar months, default behavior, and intended use. Nothing an agent needs to call this tool correctly 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?
The input schema fully documents all four parameters with defaults, ranges, enums, and examples, so the description does not need to carry the schema. It still adds value by clarifying the solar-month model and by stating the combined default behavior when both parameters are omitted.
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 opens with a concrete verb-resource pair ('Return the monthly flying star plate') and immediately distinguishes it from the annual concept by calling it 'the faster overlay that sits on top of the annual one.' This clearly separates it from sibling tools like get_feng_shui_flying_stars_annual_year.
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 identifies specific use cases: 'monthly guidance features' and 'timing work around an affliction that only lands for part of the year.' It also explains the default invocation ('Omit both parameters to get the month in progress'), though it does not explicitly name an alternative tool or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_feng_shui_kua_numberLook up a Kua number - Eight Mansions reference APIARead-onlyInspect
Look up the reference chart for one Kua number: its trigram, its east or west life group, and how it classifies all eight compass sectors. A pure reference endpoint with no birth data required, for building a lookup table or a picker. Number 5 is served for completeness and is never a computed result, because it belongs to the centre and has no direction of its own: a man whose formula gives 5 reads Kua 2 and a woman reads Kua 8, and the chart returned for 5 is therefore the Kua 2 chart.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| number | Yes | Kua number, 1 to 9. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
Output Schema
| Name | Required | Description |
|---|---|---|
| group | Yes | |
| number | Yes | |
| sectors | Yes | |
| trigram | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only and non-destructive, and the description adds substantial non-obvious behavior: Kua 5 is never a computed result, belongs to the centre, and the chart returned for 5 is the Kua 2 chart. It also explains the man/woman substitution rule, which is valuable context beyond the annotations.
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 opens with the core purpose and outputs, then gives usage context, then the edge case. Every sentence earns its place, and there is no filler or repetition of schema details. The long third sentence is dense but directly relevant.
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 does not need to spell out the return shape. It provides the lookup context, the no-birth-data distinction, and the critical Kua-5 edge case, making it complete for an agent to select and invoke the tool correctly.
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 baseline is 3. The description adds extra semantics for the `number` parameter that the schema lacks, specifically the special meaning of 5 and its mapping to the Kua 2 chart. This is meaningful value 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 states a specific verb ('Look up') and resource ('the reference chart for one Kua number'), and enumerates the returned contents: trigram, east/west life group, and all eight compass sectors. It also distinguishes itself from computation-oriented siblings by labeling itself a 'pure reference endpoint' with no birth data required.
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?
It gives concrete use cases ('building a lookup table or a picker') and explicitly says no birth data is required, which implies a computation endpoint should be used when birth data is present. However, it does not name the sibling computation tool directly or state a clear 'do not use when...' condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_feng_shui_periodsList the nine periods - San Yuan period table APIARead-onlyInspect
The nine twenty year periods of the 180 year San Yuan cycle from 1864 to 2043, each with its ruling star, five phase, palace and the exact Li Chun date it opened, plus which period is in force on a given date. A building takes the period it was completed in and keeps that period plate for life, so this is the table that decides which natal chart a property gets. Period 9 opened on 4 February 2024, which means a building finished in January 2024 is still a Period 8 building.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date to resolve the current period for, in YYYY-MM-DD format. Defaults to today in UTC. Useful for asking which period a building was completed in. A date landing exactly on the Li Chun day a period opens is placed in the outgoing period. | |
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | Yes | |
| total | Yes | |
| periods | Yes | |
| cycleEndYear | Yes | |
| currentPeriod | Yes | |
| cycleStartYear | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuine domain behavior beyond the annotations: that a building keeps the period plate it was completed in for life, plus the concrete Period 9 / January 2024 edge case. It does not discuss pagination or response shape, but for a read-only lookup this is solid added 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?
Front-loads the core definition at the start, and the trailing sentences on period-plate permanence and the Feb 2024 example earn their place by clarifying a real ambiguity. It runs slightly long, but nothing is filler.
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?
An output schema exists, so return-value shape need not be explained. For a read-only table lookup with well-covered parameters, the description covers what the tool returns (the whole table plus the active period) and the key domain rule; completeness is high, with only minor gaps around alternative-tool routing.
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 date, lang and compact are already fully documented in the schema. The description only implies the date parameter via 'which period is in force on a given date' and adds no syntax or format detail beyond the schema, so the baseline 3 applies.
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?
States a specific verb (list) and resource (the nine twenty-year San Yuan periods / 180-year cycle table), plus what each row contains (ruling star, five phase, palace, Li Chun date) and that it resolves the period in force for a date. This cleanly distinguishes it from the flying-stars, kua, bagua and afflictions siblings.
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?
Gives clear domain context for when it matters ('this is the table that decides which natal chart a property gets') and supports the date-resolution use case. It does not explicitly name an alternative tool or state when-not-to-use, so it stops short of a full routing guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_feng_shui_eight_mansionsGenerate Eight Mansions map - Ba Zhai lucky direction APIARead-onlyInspect
Build the full Eight Mansions (Ba Zhai) map for a person: all eight compass sectors classified into the four favourable stars, Sheng Chi, Tian Yi, Yan Nian and Fu Wei, and the four unfavourable ones, Huo Hai, Wu Gui, Liu Sha and Jue Ming. Sectors come back ordered best to worst with a composed reading each, plus the ranking that decides which affliction to accept when no favourable sector is reachable. Accepts a Kua number directly or derives one from a birth date and sex. Built for bed and desk placement tools, room-by-room reports and floor plan overlays.
| Name | Required | Description | Default |
|---|---|---|---|
| kua | No | Kua number to build the map for, if you already have one. Send this OR date and gender, not neither. A Kua of 5 is read as the Kua 2 chart, since 5 has no direction of its own. | |
| date | No | Birth date in YYYY-MM-DD format, used to derive the Kua when no kua is sent. Requires gender alongside it. A date is read at the start of its day, so a birth date landing exactly on the year boundary is placed in the outgoing year. | |
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| facing | No | Optional compass sector the main door faces, one of North, Northeast, East, Southeast, South, Southwest, West, Northwest. When sent, the response names the star sitting on that sector so a caller can judge an entrance without scanning the whole map. | |
| gender | No | Selects the Kua formula variant. Required when the Kua is being derived from a birth date. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. | |
| yearBoundary | No | Which boundary starts the Chinese year when the Kua is derived from a birth date. Defaults to li-chun, the classical position. Ignored when a kua is sent directly, and echoed back either way. | li-chun |
Output Schema
| Name | Required | Description |
|---|---|---|
| kua | Yes | |
| group | Yes | |
| sectors | Yes | |
| trigram | Yes | |
| bestSector | Yes | |
| conventions | Yes | |
| worstSector | Yes | |
| facingSector | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds meaningful behavioral detail: sectors are returned ordered best-to-worst, each with a composed reading, plus a ranking that decides which affliction to accept. It also clarifies that a Kua may be supplied or derived, adding context without contradicting the annotations.
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 information-dense and each sentence earns its place: the core purpose, the ordered output shape, and the derivation/use-case context. The main action is front-loaded before the star-name details.
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?
Together with a rich input schema and output schema, the description gives an agent enough context to select and invoke the tool correctly: it explains the output substance, input modes, and intended applications. It does not repeat parameter constraints like the mutual-exclusion of kua vs date+gender, but those are already explicitly covered in the schema.
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 documents all parameter meaning. The description only summarizes the Kua-or-birth-date/gender choice already described in the schema and adds no new parameter-level semantics, matching the baseline of 3.
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 starts with a specific verb and resource: 'Build the full Eight Mansions (Ba Zhai) map for a person,' then enumerates the four favorable and four unfavorable stars. This clearly distinguishes it from sibling tools like flying stars, bagua, or Kua-number-only tools.
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 explicitly names target use cases: 'Built for bed and desk placement tools, room-by-room reports and floor plan overlays.' It does not name sibling alternatives or give an explicit when-not-to-use condition, so it stops short of full usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_feng_shui_flying_stars_natalGenerate flying star natal chart - Xuan Kong Fei Xing APIARead-onlyInspect
Cast the Xuan Kong flying star natal chart for a building from its construction period and the direction it faces. Returns all nine palaces with the period star, the mountain star that governs health and relationships and the water star that governs wealth, plus the named formation and a composed reading for every palace, and the classical verdict on how the two prosperous stars landed. Facing is accepted as one of the 24 mountains or as a compass bearing. Built for property analysis tools, floor plan overlays and consultation software.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| facing | No | The mountain the front of the building faces, by id or by compass label such as S2. Send this or facingDegrees, not neither. The facing side is the open, active, public side, which is not always the side with the front door. | |
| period | No | Construction period of the building, 1 to 9. This is the twenty year cycle the building was completed in, or last renovated heavily enough to reset, and it is fixed for the life of the building. Periods change at Li Chun in early February, so a building finished in January 2024 is a Period 8 building. Defaults to the period in force now. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. | |
| facingDegrees | No | The compass bearing the front of the building faces, 0 to 360 degrees, measured looking out from inside. Resolved to one of the 24 mountains. Send this or facing, not neither. |
Output Schema
| Name | Required | Description |
|---|---|---|
| facing | Yes | |
| period | Yes | |
| palaces | Yes | |
| sitting | Yes | |
| structure | Yes | |
| straddling | Yes | |
| waterFlight | Yes | |
| facingDegrees | No | |
| mountainFlight | Yes | |
| waterCenterStar | Yes | |
| mountainCenterStar | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds meaningful behavioral detail: it returns all nine palaces, the period/mountain/water stars, named formations, a composed reading, and the classical verdict. This gives the agent a strong picture of what the tool produces beyond the structured annotations.
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 three sentences with no wasted words: it states the operation, summarizes the rich output, and covers accepted facing inputs plus intended use cases. Every sentence earns its place and the core action is front-loaded.
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 rich input schema, output schema, and safety annotations, the description is complete enough for an agent to select and invoke this tool correctly. It covers inputs, output meaning, domain context, and target use cases; the either/or facing/facingDegrees requirement is already fully documented in the parameter descriptions.
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 baseline applies and the input schema already documents period, facing, facingDegrees, compact, and lang. The description adds useful domain context about mountain stars governing health/relationships and water stars governing wealth, but it does not substantially clarify parameter mechanics beyond what the schema already provides.
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 opens with a specific verb and resource: 'Cast the Xuan Kong flying star natal chart for a building' from construction period and facing direction. It clearly distinguishes this natal-chart tool from the annual and monthly flying star siblings by emphasizing construction period, facing, and the nine-palace natal output.
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 clear context for when the tool is appropriate: natal chart calculation for a building, intended for property analysis tools, floor plan overlays, and consultation software. It does not explicitly name sibling tools as alternatives or state when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_feng_shui_kuaCalculate Kua number - Feng shui personal direction calculator APIARead-onlyInspect
Calculate the Kua number, also called the Ming Gua or life gua, from a birth date and sex. Returns the number, the east or west life group, the personal trigram, and all eight compass sectors classified from best to worst. The Chinese year is resolved at Li Chun by default, so an early February birthday is placed in the correct year rather than the calendar one, and the boundary that decided it is echoed back. Built for room and desk placement features, personalised feng shui reports, and any product that needs a favourable direction per person.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Birth date in YYYY-MM-DD format. Only the Chinese YEAR this date falls in enters the formula, so no birth time, latitude or longitude is needed. A January or early February birthday is the case that matters: it usually belongs to the PREVIOUS Chinese year and produces a different Kua. A date is read at the start of its day, and the boundary falls part-way through its own day, so a birth date landing exactly on the boundary day is placed in the outgoing year. | |
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| gender | Yes | Selects the Kua formula variant. The two formulas are different arithmetic on the same year, and they also differ in where a raw result of 5 is reassigned. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. | |
| yearBoundary | No | Which boundary starts the Chinese year. Defaults to li-chun, the astronomical start of spring in early February, which is the classical position and the one feng shui uses for periods, annual stars and afflictions alike. Send lunar-new-year to match popular zodiac tables, which start the year two to four weeks later. The two disagree for anyone born between the two dates. | li-chun |
Output Schema
| Name | Required | Description |
|---|---|---|
| kua | Yes | |
| group | Yes | |
| gender | Yes | |
| rawKua | Yes | |
| sectors | Yes | |
| trigram | Yes | |
| solarYear | Yes | |
| reassigned | Yes | |
| conventions | Yes | |
| boundaryDate | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive, so the safety profile is covered. The description adds valuable behavioral context: the boundary being 'echoed back' and the edge-case handling of early February birthdays (placed in previous year). It also clarifies that date resolution is at day start, with the boundary day falling in the outgoing year. This goes beyond annotations and provides meaningful behavioral detail for an API with no side effects.
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 two sentences, front-loaded with the core purpose. The first sentence states the action and outputs, and the second explains the key behavioral nuance (Li Chun resolution) and use cases. It is concise and well-structured, with no fluff. It could be slightly more concise by dropping 'personalised' duplication, but it's well within acceptable limits.
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 moderate complexity (5 parameters, 3 enums, output schema present), the description is sufficiently complete. It doesn't need to explain return values because an output schema exists. It covers why parameters like date and yearBoundary have edge cases, and mentions the boundary echo, which is a subtle behavior. Combined with the detailed schema, an agent has enough information to call this tool correctly. The only minor gap is that it doesn't explicitly state how the compact format works, but that's a schema concern, not a description gap.
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 coverage is 100%, with detailed parameter descriptions for each field (e.g., date format, gender affecting formula, yearBoundary differences). The description adds context on the date parameter by explaining why only the Chinese year matters and highlighting the boundary edge case, which is helpful. However, it doesn't add semantics for 'lang', 'compact', or 'yearBoundary' beyond what the schema already states. The description focuses on the date parameter's significance, providing slight added value, but generally the schema handles most of the load, so a 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 verb 'Calculate' and the resource 'Kua number' (also known as Ming Gua or life gua). It lists specific outputs (number, life group, trigram, compass sectors) and elaborates on the Chinese year resolution (Li Chun boundary), which distinguishes it from any calendar-year-based tool. This differentiates it from siblings like get_feng_shui_kua_number (which is likely a getter for a list or a different endpoint) and other calculation tools.
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 conveys clear use cases: 'Built for room and desk placement features, personalised feng shui reports, and any product that needs a favourable direction per person.' While it doesn't explicitly mention when NOT to use it or reference sibling alternatives, the distinct purpose and mention of Li Chun default (contrasting with lunar-new-year) give context for typical usage. It lacks explicit exclusion of scenarios like when only a zodiac year is needed.
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.
1 tool update
- Changed
get_feng_shui_periods1 field changed- changed
Input schema / properties / date / descriptionPrevious value: -"Date to resolve the current period for, in YYYY-MM-DD format. Defaults to today in UTC. Useful for asking which period a building was completed in."New value: +"Date to resolve the current period for, in YYYY-MM-DD format. Defaults to today in UTC. Useful for asking which period a building was completed in. A date landing exactly on the Li Chun day a period opens is placed in the outgoing period."
2 tool updates
- Changed
get_feng_shui_bagua2 fields changed- added
Input schema / properties / offset / defaultAdded value: +0 - added
Input schema / properties / offset / minimumAdded value: +0
- Changed
get_feng_shui_flying_stars2 fields changed- added
Input schema / properties / offset / defaultAdded value: +0 - added
Input schema / properties / offset / minimumAdded value: +0
2 tool updates
- Changed
get_feng_shui_bagua3 fields changed- removed
Input schema / properties / offset / defaultRemoved value: -0 - removed
Input schema / properties / offset / minimumRemoved value: -0 - changed
Input schema / properties / offset / typePrevious value: -[ - "integer", - "null" -]New value: +"integer"
- Changed
get_feng_shui_flying_stars3 fields changed- removed
Input schema / properties / offset / defaultRemoved value: -0 - removed
Input schema / properties / offset / minimumRemoved value: -0 - changed
Input schema / properties / offset / typePrevious value: -[ - "integer", - "null" -]New value: +"integer"
11 tool updates
- Changed
get_feng_shui_afflictions_year1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "changeoverDate": { + "type": "string" + }, + "fiveYellow": { + "properties": { + "chinese": { + "type": "string" + }, + "id": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "name": { + "type": "string" + }, + "palace": { + "type": "string" + }, + "pinyin": { + "type": "string" + }, + "remedy": { + "type": "string" + }, + "star": { + "type": "number" + } + }, + "required": [ + "id", + "name", + "chinese", + "pinyin", + "meaning", + "palace", + "star", + "remedy" + ], + "type": "object" + }, + "sanSha": { + "properties": { + "chinese": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "endDegree": { + "type": "number" + }, + "frameDirection": { + "type": "string" + }, + "frameElement": { + "type": "string" + }, + "id": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "chinese": { + "type": "string" + }, + "id": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "mountain": { + "properties": { + "chinese": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "endDegree": { + "type": "number" + }, + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "pinyin": { + "type": "string" + }, + "polarity": { + "type": "string" + }, + "startDegree": { + "type": "number" + }, + "yuan": { + "type": "string" + } + }, + "required": [ + "id", + "label", + "chinese", + "pinyin", + "direction", + "yuan", + "polarity", + "startDegree", + "endDegree" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "pinyin": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "chinese", + "pinyin", + "meaning", + "mountain" + ], + "type": "object" + }, + "type": "array" + }, + "pinyin": { + "type": "string" + }, + "startDegree": { + "type": "number" + } + }, + "required": [ + "id", + "name", + "chinese", + "pinyin", + "meaning", + "direction", + "frameElement", + "frameDirection", + "startDegree", + "endDegree", + "parts" + ], + "type": "object" + }, + "suiPo": { + "properties": { + "chinese": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "id": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "mountain": { + "properties": { + "chinese": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "endDegree": { + "type": "number" + }, + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "pinyin": { + "type": "string" + }, + "polarity": { + "type": "string" + }, + "startDegree": { + "type": "number" + }, + "yuan": { + "type": "string" + } + }, + "required": [ + "id", + "label", + "chinese", + "pinyin", + "direction", + "yuan", + "polarity", + "startDegree", + "endDegree" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "pinyin": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "chinese", + "pinyin", + "meaning", + "mountain", + "direction" + ], + "type": "object" + }, + "taiSui": { + "properties": { + "animal": { + "type": "string" + }, + "chinese": { + "type": "string" + }, + "clashingAnimal": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "id": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "mountain": { + "properties": { + "chinese": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "endDegree": { + "type": "number" + }, + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "pinyin": { + "type": "string" + }, + "polarity": { + "type": "string" + }, + "startDegree": { + "type": "number" + }, + "yuan": { + "type": "string" + } + }, + "required": [ + "id", + "label", + "chinese", + "pinyin", + "direction", + "yuan", + "polarity", + "startDegree", + "endDegree" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "pinyin": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "chinese", + "pinyin", + "meaning", + "mountain", + "direction", + "animal", + "clashingAnimal" + ], + "type": "object" + }, + "year": { + "type": "number" + }, + "yearBranch": { + "type": "string" + } + }, + "required": [ + "year", + "yearBranch", + "changeoverDate", + "taiSui", + "suiPo", + "sanSha", + "fiveYellow" + ], + "type": "object" +}
- Changed
get_feng_shui_bagua1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "limit": { + "type": "number" + }, + "offset": { + "type": "number" + }, + "sectors": { + "items": { + "properties": { + "colors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "direction": { + "type": "string" + }, + "earlierHeavenTrigram": { + "properties": { + "binary": { + "type": "string" + }, + "chinese": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "directionLocalized": { + "type": "string" + }, + "element": { + "type": "string" + }, + "elementLocalized": { + "type": "string" + }, + "english": { + "type": "string" + }, + "familyMember": { + "type": "string" + }, + "nameLocalized": { + "type": "string" + }, + "number": { + "type": "number" + }, + "pinyin": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "number", + "chinese", + "english", + "pinyin", + "symbol", + "binary", + "element", + "direction", + "familyMember" + ], + "type": "object" + }, + "element": { + "type": "string" + }, + "focus": { + "type": "string" + }, + "id": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "name": { + "type": "string" + }, + "nameLocalized": { + "type": "string" + }, + "number": { + "type": "number" + }, + "palace": { + "type": "string" + }, + "trigram": { + "properties": { + "binary": { + "type": "string" + }, + "chinese": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "directionLocalized": { + "type": "string" + }, + "element": { + "type": "string" + }, + "elementLocalized": { + "type": "string" + }, + "english": { + "type": "string" + }, + "familyMember": { + "type": "string" + }, + "nameLocalized": { + "type": "string" + }, + "number": { + "type": "number" + }, + "pinyin": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "number", + "chinese", + "english", + "pinyin", + "symbol", + "binary", + "element", + "direction", + "familyMember" + ], + "type": "object" + } + }, + "required": [ + "id", + "name", + "number", + "palace", + "element", + "colors", + "focus", + "meaning" + ], + "type": "object" + }, + "type": "array" + }, + "total": { + "type": "number" + } + }, + "required": [ + "total", + "limit", + "offset", + "sectors" + ], + "type": "object" +}
- Changed
get_feng_shui_bagua_id1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "colors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "direction": { + "type": "string" + }, + "earlierHeavenTrigram": { + "properties": { + "binary": { + "type": "string" + }, + "chinese": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "directionLocalized": { + "type": "string" + }, + "element": { + "type": "string" + }, + "elementLocalized": { + "type": "string" + }, + "english": { + "type": "string" + }, + "familyMember": { + "type": "string" + }, + "nameLocalized": { + "type": "string" + }, + "number": { + "type": "number" + }, + "pinyin": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "number", + "chinese", + "english", + "pinyin", + "symbol", + "binary", + "element", + "direction", + "familyMember" + ], + "type": "object" + }, + "element": { + "type": "string" + }, + "focus": { + "type": "string" + }, + "id": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "name": { + "type": "string" + }, + "nameLocalized": { + "type": "string" + }, + "number": { + "type": "number" + }, + "palace": { + "type": "string" + }, + "trigram": { + "properties": { + "binary": { + "type": "string" + }, + "chinese": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "directionLocalized": { + "type": "string" + }, + "element": { + "type": "string" + }, + "elementLocalized": { + "type": "string" + }, + "english": { + "type": "string" + }, + "familyMember": { + "type": "string" + }, + "nameLocalized": { + "type": "string" + }, + "number": { + "type": "number" + }, + "pinyin": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "number", + "chinese", + "english", + "pinyin", + "symbol", + "binary", + "element", + "direction", + "familyMember" + ], + "type": "object" + } + }, + "required": [ + "id", + "name", + "number", + "palace", + "element", + "colors", + "focus", + "meaning" + ], + "type": "object" +}
- Changed
get_feng_shui_flying_stars1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "limit": { + "type": "number" + }, + "offset": { + "type": "number" + }, + "stars": { + "items": { + "properties": { + "base": { + "type": "number" + }, + "chinese": { + "type": "string" + }, + "element": { + "type": "string" + }, + "enhancer": { + "type": "string" + }, + "keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "meaning": { + "type": "string" + }, + "name": { + "type": "string" + }, + "nameLocalized": { + "type": "string" + }, + "nature": { + "type": "string" + }, + "number": { + "type": "number" + }, + "palace": { + "type": "string" + }, + "period": { + "type": "number" + }, + "pinyin": { + "type": "string" + }, + "remedy": { + "type": "string" + }, + "trigram": { + "properties": { + "chinese": { + "type": "string" + }, + "english": { + "type": "string" + }, + "number": { + "type": "number" + } + }, + "required": [ + "number", + "english", + "chinese" + ], + "type": "object" + } + }, + "required": [ + "number", + "name", + "chinese", + "pinyin", + "element", + "nature", + "keywords", + "meaning", + "enhancer", + "remedy", + "palace", + "period", + "base" + ], + "type": "object" + }, + "type": "array" + }, + "total": { + "type": "number" + } + }, + "required": [ + "total", + "limit", + "offset", + "stars" + ], + "type": "object" +}
- Changed
get_feng_shui_flying_stars_annual_year1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "centerStar": { + "type": "number" + }, + "changeoverDate": { + "type": "string" + }, + "palaces": { + "items": { + "properties": { + "element": { + "type": "string" + }, + "enhancer": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "name": { + "type": "string" + }, + "nameLocalized": { + "type": "string" + }, + "nature": { + "type": "string" + }, + "palace": { + "type": "string" + }, + "remedy": { + "type": "string" + }, + "star": { + "type": "number" + } + }, + "required": [ + "palace", + "star", + "name", + "element", + "nature", + "enhancer", + "remedy", + "meaning" + ], + "type": "object" + }, + "type": "array" + }, + "year": { + "type": "number" + } + }, + "required": [ + "year", + "centerStar", + "changeoverDate", + "palaces" + ], + "type": "object" +}
- Changed
get_feng_shui_flying_stars_monthly1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "centerStar": { + "type": "number" + }, + "month": { + "type": "number" + }, + "palaces": { + "items": { + "properties": { + "element": { + "type": "string" + }, + "enhancer": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "name": { + "type": "string" + }, + "nameLocalized": { + "type": "string" + }, + "nature": { + "type": "string" + }, + "palace": { + "type": "string" + }, + "remedy": { + "type": "string" + }, + "star": { + "type": "number" + } + }, + "required": [ + "palace", + "star", + "name", + "element", + "nature", + "enhancer", + "remedy", + "meaning" + ], + "type": "object" + }, + "type": "array" + }, + "year": { + "type": "number" + }, + "yearBranch": { + "type": "string" + } + }, + "required": [ + "year", + "month", + "centerStar", + "yearBranch", + "palaces" + ], + "type": "object" +}
- Changed
get_feng_shui_kua_number1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "group": { + "type": "string" + }, + "number": { + "type": "number" + }, + "sectors": { + "items": { + "properties": { + "direction": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "nature": { + "type": "string" + }, + "rank": { + "type": "number" + }, + "star": { + "type": "string" + }, + "starName": { + "type": "string" + }, + "starNameLocalized": { + "type": "string" + } + }, + "required": [ + "direction", + "star", + "starName", + "nature", + "rank", + "domain" + ], + "type": "object" + }, + "type": "array" + }, + "trigram": { + "properties": { + "binary": { + "type": "string" + }, + "chinese": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "directionLocalized": { + "type": "string" + }, + "element": { + "type": "string" + }, + "elementLocalized": { + "type": "string" + }, + "english": { + "type": "string" + }, + "familyMember": { + "type": "string" + }, + "nameLocalized": { + "type": "string" + }, + "number": { + "type": "number" + }, + "pinyin": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "number", + "chinese", + "english", + "pinyin", + "symbol", + "binary", + "element", + "direction", + "familyMember" + ], + "type": "object" + } + }, + "required": [ + "number", + "group", + "trigram", + "sectors" + ], + "type": "object" +}
- Changed
get_feng_shui_periods1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "currentPeriod": { + "type": "number" + }, + "cycleEndYear": { + "type": "number" + }, + "cycleStartYear": { + "type": "number" + }, + "date": { + "type": "string" + }, + "periods": { + "items": { + "properties": { + "base": { + "type": "number" + }, + "element": { + "type": "string" + }, + "endYear": { + "type": "number" + }, + "era": { + "type": "string" + }, + "eraName": { + "type": "string" + }, + "number": { + "type": "number" + }, + "palace": { + "type": "string" + }, + "rulingStar": { + "type": "number" + }, + "rulingStarName": { + "type": "string" + }, + "rulingStarNameLocalized": { + "type": "string" + }, + "startDate": { + "type": "string" + }, + "startYear": { + "type": "number" + }, + "trigram": { + "properties": { + "chinese": { + "type": "string" + }, + "english": { + "type": "string" + }, + "number": { + "type": "number" + } + }, + "required": [ + "number", + "english", + "chinese" + ], + "type": "object" + } + }, + "required": [ + "number", + "startYear", + "endYear", + "startDate", + "era", + "eraName", + "rulingStar", + "rulingStarName", + "element", + "palace", + "base" + ], + "type": "object" + }, + "type": "array" + }, + "total": { + "type": "number" + } + }, + "required": [ + "total", + "cycleStartYear", + "cycleEndYear", + "date", + "currentPeriod", + "periods" + ], + "type": "object" +}
- Changed
post_feng_shui_eight_mansions1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "bestSector": { + "type": "string" + }, + "conventions": { + "properties": { + "yearBoundary": { + "type": "string" + } + }, + "required": [ + "yearBoundary" + ], + "type": "object" + }, + "facingSector": { + "properties": { + "direction": { + "type": "string" + }, + "nature": { + "type": "string" + }, + "star": { + "type": "string" + } + }, + "required": [ + "direction", + "star", + "nature" + ], + "type": "object" + }, + "group": { + "type": "string" + }, + "kua": { + "type": "number" + }, + "sectors": { + "items": { + "properties": { + "chinese": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "nature": { + "type": "string" + }, + "pinyin": { + "type": "string" + }, + "rank": { + "type": "number" + }, + "reading": { + "type": "string" + }, + "star": { + "type": "string" + }, + "starName": { + "type": "string" + }, + "starNameLocalized": { + "type": "string" + }, + "trigram": { + "properties": { + "binary": { + "type": "string" + }, + "chinese": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "directionLocalized": { + "type": "string" + }, + "element": { + "type": "string" + }, + "elementLocalized": { + "type": "string" + }, + "english": { + "type": "string" + }, + "familyMember": { + "type": "string" + }, + "nameLocalized": { + "type": "string" + }, + "number": { + "type": "number" + }, + "pinyin": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "number", + "chinese", + "english", + "pinyin", + "symbol", + "binary", + "element", + "direction", + "familyMember" + ], + "type": "object" + } + }, + "required": [ + "direction", + "star", + "starName", + "chinese", + "pinyin", + "nature", + "rank", + "domain", + "trigram", + "reading" + ], + "type": "object" + }, + "type": "array" + }, + "trigram": { + "properties": { + "binary": { + "type": "string" + }, + "chinese": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "directionLocalized": { + "type": "string" + }, + "element": { + "type": "string" + }, + "elementLocalized": { + "type": "string" + }, + "english": { + "type": "string" + }, + "familyMember": { + "type": "string" + }, + "nameLocalized": { + "type": "string" + }, + "number": { + "type": "number" + }, + "pinyin": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "number", + "chinese", + "english", + "pinyin", + "symbol", + "binary", + "element", + "direction", + "familyMember" + ], + "type": "object" + }, + "worstSector": { + "type": "string" + } + }, + "required": [ + "kua", + "group", + "trigram", + "sectors", + "bestSector", + "worstSector", + "conventions" + ], + "type": "object" +}
- Changed
post_feng_shui_flying_stars_natal1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "facing": { + "properties": { + "chinese": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "endDegree": { + "type": "number" + }, + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "pinyin": { + "type": "string" + }, + "polarity": { + "type": "string" + }, + "startDegree": { + "type": "number" + }, + "yuan": { + "type": "string" + } + }, + "required": [ + "id", + "label", + "chinese", + "pinyin", + "direction", + "yuan", + "polarity", + "startDegree", + "endDegree" + ], + "type": "object" + }, + "facingDegrees": { + "type": "number" + }, + "mountainCenterStar": { + "type": "number" + }, + "mountainFlight": { + "type": "string" + }, + "palaces": { + "items": { + "properties": { + "base": { + "type": "number" + }, + "combination": { + "properties": { + "chinese": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "nameLocalized": { + "type": "string" + }, + "nature": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "nature" + ], + "type": "object" + }, + "mountain": { + "type": "number" + }, + "palace": { + "type": "string" + }, + "period": { + "type": "number" + }, + "reading": { + "type": "string" + }, + "water": { + "type": "number" + } + }, + "required": [ + "palace", + "base", + "period", + "mountain", + "water", + "reading" + ], + "type": "object" + }, + "type": "array" + }, + "period": { + "type": "number" + }, + "sitting": { + "properties": { + "chinese": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "endDegree": { + "type": "number" + }, + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "pinyin": { + "type": "string" + }, + "polarity": { + "type": "string" + }, + "startDegree": { + "type": "number" + }, + "yuan": { + "type": "string" + } + }, + "required": [ + "id", + "label", + "chinese", + "pinyin", + "direction", + "yuan", + "polarity", + "startDegree", + "endDegree" + ], + "type": "object" + }, + "straddling": { + "type": "boolean" + }, + "structure": { + "properties": { + "chinese": { + "type": "string" + }, + "id": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "chinese", + "meaning" + ], + "type": "object" + }, + "waterCenterStar": { + "type": "number" + }, + "waterFlight": { + "type": "string" + } + }, + "required": [ + "period", + "facing", + "sitting", + "straddling", + "mountainCenterStar", + "waterCenterStar", + "mountainFlight", + "waterFlight", + "structure", + "palaces" + ], + "type": "object" +}
- Changed
post_feng_shui_kua1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "boundaryDate": { + "type": "string" + }, + "conventions": { + "properties": { + "yearBoundary": { + "type": "string" + } + }, + "required": [ + "yearBoundary" + ], + "type": "object" + }, + "gender": { + "type": "string" + }, + "group": { + "type": "string" + }, + "kua": { + "type": "number" + }, + "rawKua": { + "type": "number" + }, + "reassigned": { + "type": "boolean" + }, + "sectors": { + "items": { + "properties": { + "direction": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "nature": { + "type": "string" + }, + "rank": { + "type": "number" + }, + "star": { + "type": "string" + }, + "starName": { + "type": "string" + }, + "starNameLocalized": { + "type": "string" + } + }, + "required": [ + "direction", + "star", + "starName", + "nature", + "rank", + "domain" + ], + "type": "object" + }, + "type": "array" + }, + "solarYear": { + "type": "number" + }, + "trigram": { + "properties": { + "binary": { + "type": "string" + }, + "chinese": { + "type": "string" + }, + "direction": { + "type": "string" + }, + "directionLocalized": { + "type": "string" + }, + "element": { + "type": "string" + }, + "elementLocalized": { + "type": "string" + }, + "english": { + "type": "string" + }, + "familyMember": { + "type": "string" + }, + "nameLocalized": { + "type": "string" + }, + "number": { + "type": "number" + }, + "pinyin": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "number", + "chinese", + "english", + "pinyin", + "symbol", + "binary", + "element", + "direction", + "familyMember" + ], + "type": "object" + } + }, + "required": [ + "kua", + "rawKua", + "reassigned", + "gender", + "group", + "solarYear", + "boundaryDate", + "trigram", + "sectors", + "conventions" + ], + "type": "object" +}
1 tool update
- Changed
get_feng_shui_kua_number1 field changed- changed
Input schema / properties / number / typePrevious value: -"number"New value: +"integer"
2 tool updates
- Changed
get_feng_shui_bagua4 fields changed- changed
Input schema / properties / limit / defaultPrevious value: -20New value: +9 - changed
Input schema / properties / limit / descriptionPrevious value: -"Maximum sectors to return per page. Range 1 to 9, default 20."New value: +"Maximum items to return per page. Range: 1-9, default 9." - changed
Input schema / properties / limit / examplePrevious value: -20New value: +9 - changed
Input schema / properties / offset / descriptionPrevious value: -"Number of sectors to skip for pagination. Default 0."New value: +"Number of items to skip for pagination. Default 0."
- Changed
get_feng_shui_flying_stars4 fields changed- changed
Input schema / properties / limit / defaultPrevious value: -20New value: +9 - changed
Input schema / properties / limit / descriptionPrevious value: -"Maximum stars to return per page. Range 1 to 9, default 20."New value: +"Maximum items to return per page. Range: 1-9, default 9." - changed
Input schema / properties / limit / examplePrevious value: -20New value: +9 - changed
Input schema / properties / offset / descriptionPrevious value: -"Number of stars to skip for pagination. Default 0."New value: +"Number of items to skip for pagination. Default 0."
11 tool updates
- First observed
get_feng_shui_afflictions_year - First observed
get_feng_shui_bagua - First observed
get_feng_shui_bagua_id - First observed
get_feng_shui_flying_stars - First observed
get_feng_shui_flying_stars_annual_year - First observed
get_feng_shui_flying_stars_monthly - First observed
get_feng_shui_kua_number - First observed
get_feng_shui_periods - First observed
post_feng_shui_eight_mansions - First observed
post_feng_shui_flying_stars_natal - First observed
post_feng_shui_kua
Related MCP Connectors
Chinese metaphysics (bazi, qimen, 5-element) as decision-support tools for AI agents.
BaZi four pillars, Chinese zodiac, lunisolar calendar and almanac days for AI agents.
Zi Wei Dou Shu for AI agents: free natal charts, six transit levels, and optional readings.
I Ching hexagram casts, 64 hexagram meanings and changing lines for AI agents.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides Chinese metaphysical tools (bazi, qimen, five elements) as MCP tools for AI agents to give personalized advice on timing, compatibility, and daily energy.590 npm1MIT

OpenFate Bazi MCPofficial
AlicenseAqualityAmaintenanceEnables AI agents to calculate deterministic Bazi (Four Pillars) charts with True Solar Time and Earthly Branch interactions, avoiding LLM hallucination of calendrical math.6157 npm156MIT
fatenava-mcpofficial
AlicenseAqualityBmaintenanceEnables AI agents to cast deterministic BaZi, Zi Wei Dou Shu, and Western astrology natal charts from birth details, with no setup or API key.155 npmMIT- FlicenseNot gradedqualityDmaintenanceProvides AI agents with personalized timing intelligence by scoring decisions (0-100) against a user's energy profile and the Five Elements framework, enabling optimal scheduling for actions like trip planning, product launches, and meetings.1-
Glama MCP Gateway
Add one secure layer between your agents and this server.