Skip to main content
Glama

Feng Shui MCP Server by RoxyAPI

List the nine periods - San Yuan period table API

get_feng_shui_periods
Read-only

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNoDate 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.
langNoResponse 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
compactNoSet 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

TableJSON Schema
NameRequiredDescriptionDefault
dateYes
totalYes
periodsYes
cycleEndYearYes
currentPeriodYes
cycleStartYearYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / date / description
      Previous 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. Changed1 schema field changed
    • changedOutput 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"
      +}
  3. First observed

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources