Skip to content

Chinese Astrology MCP Server by RoxyAPI

by roxyapi.com · remote · no sign-in to list tools · v1.0.1 · published by com.roxyapi

BaZi four pillars, Chinese zodiac, lunisolar calendar and almanac days for AI agents.

Changes · 8

16 tools: 8 change things and 8 only read.

Scanned Oct 21, 2026

8 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http chinese-astrology https://roxyapi.com/mcp/chinese-astrology --header 'X-API-Key: <your-x-api-key>'

Findings

Matches of fixed checks, with the text they matched.

8 warn
  • The server marks "post_chinese_astrology_bazi_chart" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "post_chinese_astrology_bazi_chart" says "post": a word for a change.

    What this check looks for
  • The server marks "post_chinese_astrology_bazi_luck_pillars" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "post_chinese_astrology_bazi_luck_pillars" says "post": a word for a change.

    What this check looks for
  • The server marks "post_chinese_astrology_bazi_day_master" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "post_chinese_astrology_bazi_day_master" says "post": a word for a change.

    What this check looks for
  • The server marks "post_chinese_astrology_bazi_compatibility" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "post_chinese_astrology_bazi_compatibility" says "post": a word for a change.

    What this check looks for
  • The server marks "post_chinese_astrology_bazi_annual_forecast" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "post_chinese_astrology_bazi_annual_forecast" says "post": a word for a change.

    What this check looks for
  • The server marks "post_chinese_astrology_zodiac_sign" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "post_chinese_astrology_zodiac_sign" says "post": a word for a change.

    What this check looks for
Show 2 more findings
  • The server marks "post_chinese_astrology_calendar_lunar_date" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "post_chinese_astrology_calendar_lunar_date" says "post": a word for a change.

    What this check looks for
  • The server marks "post_chinese_astrology_calendar_auspicious_days" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "post_chinese_astrology_calendar_auspicious_days" says "post": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

16 tools

Changes things 8Claude Code: ask
  • post_chinese_astrology_bazi_annual_forecastRead one Gregorian year against a natal BaZi chart.1 finding

    Why it is in this group

    • The name "post_chinese_astrology_bazi_annual_forecast" says "post": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "post_chinese_astrology_bazi_annual_forecast" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "post_chinese_astrology_bazi_annual_forecast" says "post": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Read one Gregorian year against a natal BaZi chart. Returns the annual pillar for that year, the Ten God relation its stem holds to the natal Day Master, the same reading for the hidden stem of its branch, how the annual branch stands to the natal year branch including the ben ming nian return of the birth animal, and every combination, clash, harm and punishment the annual pillar forms with each of the four natal pillars. Built for yearly horoscope features, timing tools, and agents that need a year read against a specific chart rather than against an animal sign.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • post_chinese_astrology_bazi_chartCalculate a complete BaZi chart, the Four Pillars of Destiny, from a birth moment.1 finding

    Why it is in this group

    • The name "post_chinese_astrology_bazi_chart" says "post": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "post_chinese_astrology_bazi_chart" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "post_chinese_astrology_bazi_chart" says "post": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Calculate a complete BaZi chart, the Four Pillars of Destiny, from a birth moment. Returns the year, month, day and hour pillars with every Heavenly Stem and Earthly Branch, the stems hidden inside each branch, the Ten God relation each one holds to the Day Master, the Na Yin sound element of each pair, the five-element balance across the chart, and the combinations and clashes running between the pillars. The day boundary, year boundary and hour clock are all selectable and the applied conventions come back on every response, so a chart is self-describing. Built for astrology apps, matchmaking services, and agents that need a Four Pillars reading they can reproduce.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • post_chinese_astrology_bazi_compatibilityCompare two BaZi charts pillar by pillar, the Chinese astrology reading of how two people match.1 finding

    Why it is in this group

    • The name "post_chinese_astrology_bazi_compatibility" says "post": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "post_chinese_astrology_bazi_compatibility" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "post_chinese_astrology_bazi_compatibility" says "post": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Compare two BaZi charts pillar by pillar, the Chinese astrology reading of how two people match. Returns both resolved charts, how the two Day Masters stand to each other on the five-phase cycle, and every combination, clash, harm and punishment that crosses between them, each naming the two positions it joins. A tallied score summarises the balance and the interaction list behind it is returned in full, so a caller that disagrees with the weighting can recompute its own. Built for matchmaking products, relationship features, and agents that need a defensible two-chart reading.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • post_chinese_astrology_bazi_day_masterAssess how well the Day Master is supported by the rest of a BaZi chart, and which of the five elements help it.1 finding

    Why it is in this group

    • The name "post_chinese_astrology_bazi_day_master" says "post": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "post_chinese_astrology_bazi_day_master" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "post_chinese_astrology_bazi_day_master" says "post": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Assess how well the Day Master is supported by the rest of a BaZi chart, and which of the five elements help it. Uses the classical three-factor method: whether the birth month season backs the Day Master element, whether any branch stores a root for it, and whether the other stems and the branches outside the month help or spend it. Returns the verdict, an auditable score with each factor contribution, the seasonal state, the root count, the element headcount, and the favorable and unfavorable element lists that follow from the verdict. Built for chart readers, remedy features, and agents that need the usable half of a Four Pillars reading.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • post_chinese_astrology_bazi_luck_pillarsCalculate the da yun luck pillars, the ten-year periods a BaZi chart walks through after birth.1 finding

    Why it is in this group

    • The name "post_chinese_astrology_bazi_luck_pillars" says "post": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "post_chinese_astrology_bazi_luck_pillars" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "post_chinese_astrology_bazi_luck_pillars" says "post": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Calculate the da yun luck pillars, the ten-year periods a BaZi chart walks through after birth. Returns the direction the sequence runs, the age it begins at with the day count behind that age, each ten-year pillar with the Ten God relation its stem holds to the natal Day Master, and an optional year-by-year annual overlay. Direction follows the classical rule: a male born in a yang-stem year and a female born in a yin-stem year run forward through the sexagenary cycle, the other two combinations run backward. Built for astrology apps, life-timing features, and agents that need a reproducible forecast spine.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • post_chinese_astrology_calendar_auspicious_daysSearch a date range for the days a chosen activity is favoured on, ranked by the jian chu day officer and filtered against a zodiac animal to protect.1 finding

    Why it is in this group

    • The name "post_chinese_astrology_calendar_auspicious_days" says "post": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "post_chinese_astrology_calendar_auspicious_days" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "post_chinese_astrology_calendar_auspicious_days" says "post": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Search a date range for the days a chosen activity is favoured on, ranked by the jian chu day officer and filtered against a zodiac animal to protect. Every candidate day comes back with its officer, its pillars, its lunar date and the animal it clashes with, so a caller can show the reasoning rather than a bare verdict. The range is capped at 93 days, which is a quarter, because date selection is done inside a planning window rather than across a lifetime. Built for wedding planners, business opening tools, and moving and travel date pickers.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • post_chinese_astrology_calendar_lunar_dateConvert a Gregorian date to the Chinese lunisolar calendar or convert a lunar date back, in one endpoint.1 finding

    Why it is in this group

    • The name "post_chinese_astrology_calendar_lunar_date" says "post": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "post_chinese_astrology_calendar_lunar_date" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "post_chinese_astrology_calendar_lunar_date" says "post": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Convert a Gregorian date to the Chinese lunisolar calendar or convert a lunar date back, in one endpoint. The calendar is computed at the UTC+8 reference meridian with the month containing the winter solstice fixed as month 11 and the leap month placed as the first month of the cycle carrying no major solar term, so a lunar date is the same worldwide rather than shifting with the caller timezone. The response reports the length of the lunar month, whether the date sits in a leap month, and which month the year doubles if any. Built for festival calendars, birthday features that follow the lunar date, and any app that has to survive a leap month without shifting every date after it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • post_chinese_astrology_zodiac_signResolve a birth date to its Chinese zodiac animal, the sexagenary year pillar behind it, and the Five Element phase of that year, so a 1990 birth returns Horse as a Metal Horse rat…1 finding

    Why it is in this group

    • The name "post_chinese_astrology_zodiac_sign" says "post": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "post_chinese_astrology_zodiac_sign" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "post_chinese_astrology_zodiac_sign" says "post": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Resolve a birth date to its Chinese zodiac animal, the sexagenary year pillar behind it, and the Five Element phase of that year, so a 1990 birth returns Horse as a Metal Horse rather than merely a Horse. The year boundary is a request parameter because the two schools genuinely disagree for dates in January and early February, and the resolved convention is echoed back so the answer is self-describing. Built for sign lookups, onboarding forms and birthday features.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
Only reads 8Claude Code: allow
  • get_chinese_astrology_calendar_day_dateReturn the full almanac reading of one day: its lunisolar date, the year, month and day pillars with their Na Yin, the day officer from the twelve jian chu sequence, the lunar mans…No findings

    Why it is in this group

    • The name "get_chinese_astrology_calendar_day_date" says "get": a word for reading.
    Description, as the server wrote it
    Return the full almanac reading of one day: its lunisolar date, the year, month and day pillars with their Na Yin, the day officer from the twelve jian chu sequence, the lunar mansion on duty, the zodiac animal the day clashes with, and the activities the officer favours or opposes. The day officer is the layer a printed almanac reaches its verdict from first, and the response says exactly what it rules on rather than reducing the day to a single score. The year and month pillars here are attributed by whole days, which is what an almanac prints: the day a solar term falls on belongs to the new period for its whole length, however late in the day the term arrives. Built for date pickers, daily calendar widgets, and wedding or opening date tools.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • get_chinese_astrology_calendar_monthlyReturn every day of one Gregorian month of the Chinese almanac with its lunisolar date, its three pillars, its day officer, its lunar mansion and its clash animal, plus the solar t…No findings

    Why it is in this group

    • The name "get_chinese_astrology_calendar_monthly" says "get": a word for reading.
    Description, as the server wrote it
    Return every day of one Gregorian month of the Chinese almanac with its lunisolar date, its three pillars, its day officer, its lunar mansion and its clash animal, plus the solar terms that fall inside the month. This is the month view a calendar widget renders in one call rather than thirty one. Omit the year and month to get the month in progress. Built for calendar UIs, almanac pages, and planning tools that show a whole month at a glance.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • get_chinese_astrology_calendar_solar_terms_yearReturn all 24 solar terms of a year as astronomical instants rather than dates, each computed from the moment the sun reaches its exact apparent longitude at 15 degree steps.No findings

    Why it is in this group

    • The name "get_chinese_astrology_calendar_solar_terms_year" says "get": a word for reading.
    Description, as the server wrote it
    Return all 24 solar terms of a year as astronomical instants rather than dates, each computed from the moment the sun reaches its exact apparent longitude at 15 degree steps. The year is the SOLAR year, which opens at Li Chun in early February, so Minor Cold and Major Cold, the last two terms, are dated in the January of the following Gregorian year. Every instant is returned twice, once in UTC and once at the UTC+8 reference meridian the Chinese calendar is defined on. Built for calendar apps, festival scheduling, and any BaZi feature that has to place a birth on the correct side of a term boundary.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • get_chinese_astrology_elementsReturn the five phases of Wu Xing with the Chinese character, the season and direction each governs, the Heavenly Stems and Earthly Branches that carry it, and both of the cycles t…No findings

    Why it is in this group

    • The name "get_chinese_astrology_elements" says "get": a word for reading.
    Description, as the server wrote it
    Return the five phases of Wu Xing with the Chinese character, the season and direction each governs, the Heavenly Stems and Earthly Branches that carry it, and both of the cycles that connect them. The generating cycle and the controlling cycle are returned as ordered rings as well as on each phase, so a caller can render either without deriving it. This is the one place the five phase vocabulary is defined: BaZi charts, Na Yin, zodiac element variants and every feng shui star reuse these identifiers rather than restating them.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • get_chinese_astrology_zodiac_animalsRetrieve all twelve Chinese zodiac animals in cycle order, from Rat through Pig.No findings

    Why it is in this group

    • The name "get_chinese_astrology_zodiac_animals" says "get": a word for reading.
    Description, as the server wrote it
    Retrieve all twelve Chinese zodiac animals in cycle order, from Rat through Pig. Each entry returns the machine id, the Chinese character and tone-marked pinyin for the animal, its Earthly Branch, the fixed Five Element phase and yin or yang polarity of that branch, and a set of trait keywords. Built for sign pickers, zodiac cards and compatibility widgets that need the whole set in one call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • get_chinese_astrology_zodiac_animals_idRetrieve the complete profile of one Chinese zodiac animal: character summary, strengths, weaknesses, trait keywords, the double-hour its Earthly Branch governs, and its five eleme…No findings

    Why it is in this group

    • The name "get_chinese_astrology_zodiac_animals_id" says "get": a word for reading.
    Description, as the server wrote it
    Retrieve the complete profile of one Chinese zodiac animal: character summary, strengths, weaknesses, trait keywords, the double-hour its Earthly Branch governs, and its five element variants with the Gregorian years that carry each one. Also returns the four classical branch relationships, the three-harmony trine it belongs to, its six-harmony secret friend, its clashing opposite and its harming partner. Built for sign detail pages and compatibility features.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • get_chinese_astrology_zodiac_compatibility_sign1_sign2Score and explain the relationship between two Chinese zodiac animals from the classical branch relations rather than from a lookup table of opinions.No findings

    Why it is in this group

    • The name "get_chinese_astrology_zodiac_compatibility_sign1_sign2" says "get": a word for reading.
    Description, as the server wrote it
    Score and explain the relationship between two Chinese zodiac animals from the classical branch relations rather than from a lookup table of opinions. Returns which of the six relations the pair stands in, a score out of 100, the phase the two branches combine into where they combine at all, and a composed reading with strengths, frictions and advice. The six relations are mutually exclusive by construction, so exactly one applies to any pair. Built for matchmaking features, relationship reports and compatibility widgets.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • get_chinese_astrology_zodiac_id_dailyGet the daily reading for one Chinese zodiac animal, built from the sexagenary day pillar rather than from a rotation of stock text.No findings

    Why it is in this group

    • The name "get_chinese_astrology_zodiac_id_daily" says "get": a word for reading.
    Description, as the server wrote it
    Get the daily reading for one Chinese zodiac animal, built from the sexagenary day pillar rather than from a rotation of stock text. The day carries its own Earthly Branch, that branch stands in exactly one of six classical relations to the requested sign, and the reading is that relation applied to the sign temperament. Returns the day pillar, the relation, an energy rating, overview, love and career guidance, advice, and the sexagenary year in force with its Ben Ming Nian flag. Content is fixed for a given date and rolls over at midnight, by default UTC.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http chinese-astrology https://roxyapi.com/mcp/chinese-astrology --header 'X-API-Key: <your-x-api-key>'

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__chinese-astrology__get_chinese_astrology_zodiac_animals",
      "mcp__chinese-astrology__get_chinese_astrology_zodiac_animals_id",
      "mcp__chinese-astrology__get_chinese_astrology_zodiac_compatibility_sign1_sign2",
      "mcp__chinese-astrology__get_chinese_astrology_zodiac_id_daily",
      "mcp__chinese-astrology__get_chinese_astrology_calendar_solar_terms_year",
      "mcp__chinese-astrology__get_chinese_astrology_calendar_day_date",
      "mcp__chinese-astrology__get_chinese_astrology_calendar_monthly",
      "mcp__chinese-astrology__get_chinese_astrology_elements"
    ],
    "ask": [
      "mcp__chinese-astrology__post_chinese_astrology_bazi_chart",
      "mcp__chinese-astrology__post_chinese_astrology_bazi_luck_pillars",
      "mcp__chinese-astrology__post_chinese_astrology_bazi_day_master",
      "mcp__chinese-astrology__post_chinese_astrology_bazi_compatibility",
      "mcp__chinese-astrology__post_chinese_astrology_bazi_annual_forecast",
      "mcp__chinese-astrology__post_chinese_astrology_zodiac_sign",
      "mcp__chinese-astrology__post_chinese_astrology_calendar_lunar_date",
      "mcp__chinese-astrology__post_chinese_astrology_calendar_auspicious_days"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as chinese-astrology. Review it before you use it.