Skip to content

小道 Xiaodao

com.xiaodaox/xiaodaoxiaodaox.comstreamable-httpv1.0.0Scanned

Bazi (Four Pillars) and Qimen Dunjia charts with true solar time and historical time zones.

4 tools: 1 do something that can't be undone, 2 change things and 1 only read.

Tools: 0 delete, 1 irreversible, 2 write, 1 read.
  • Reads private data · 0
  • Reads text others write · 0
  • Can send data out · 1
  • 2 findings

Anlyon alternative

3 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

4 tools

Can't be undone 1Claude Code: ask
  • bazi_chartCalculate a full Bazi chart using the Xiaodao engine: four pillars and details, lunar date, auxiliary palaces, month command, luck start and direction, all twelve ten-year cycles w…Can send data out1 finding

    Why it is in this group

    • The input addresses people (input.detailYears.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • outboundThe input takes a destination (input.detailYears.to): what the tool writes goes there.

    Findings

    • Warn

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

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input addresses people (input.detailYears.to): what it sends cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Calculate a full Bazi chart using the Xiaodao engine: four pillars and details, lunar date, auxiliary palaces, month command, luck start and direction, all twelve ten-year cycles with yearly lists, and focused annual/monthly/daily/hourly facts. The default focus is the chart page current instant at the birth place, using its historical time zone and true-solar day boundaries. focusDate selects a local civil date at noon; detailYears {from,to} adds up to ten inclusive years; allDaysOfMonth adds every day of the focused solar-term month. Ranges must fit the pre-luck and twelve-cycle timeline. Months run from Lichun (Yin) through the following Xiaohan (Chou). Year/month pillars compare the actual instant with solar terms; day/hour pillars use true solar time. earlyLateZi defaults to false (23:00 day change); true uses midnight and separates early/late Zi hours. Luck starts from the birth-to-term interval (3 days per year), forward for yang-year males/yin-year females, reverse otherwise. Input is historical wall-clock time, Gregorian or explicit lunar/leap-month date. Repeated times require a user-selected occurrence; nonexistent times are not calculated. Missing birth boundary choices return needs_input. Chart text stays Chinese; English adds a field glossary. This returns chart facts, not an interpretation. Gregorian date range: 1801-01-01 through 2099-12-31. 公历日期范围:1801-01-01 至 2099-12-31。 Lunar input is checked after conversion to Gregorian. 农历输入先换成公历再查。

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Changes things 2Claude Code: ask
  • qimen_chartCalculate an hour-based Qimen chart using the chai bu method and rotating plate only.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Calculate an hour-based Qimen chart using the chai bu method and rotating plate only. date and time are local Gregorian wall-clock time at placeId (from search_birth_place); omitting placeId uses the same configured reference place as Xiaodao Daily Fortune, named in the result. Historical time zone and DST, longitude and equation of time produce local true solar time, then expressed in Beijing time. All four pillars, solar term and ju use that corrected moment; year/month pillars can differ from Bazi for the same instant. The day changes at 23:00, not selectable. Repeated wall-clock times need an explicit daylightSaving choice; nonexistent times are not calculated. Optional birthYearPillar is a full valid sexagenary pillar, not a numeric year or a single stem; obtain it from bazi_chart first because the year changes at Lichun. Jia uses its hidden Liu Yi stem. Returns nine-palace chart facts and optional birth-year stem locations, without interpretation rules. Chart text stays Chinese; language en adds English conventions and a field glossary. Gregorian date range: 1801-01-01 through 2099-12-31. 公历日期范围:1801-01-01 至 2099-12-31。

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • true_solar_timeConvert historical local wall-clock time (Gregorian or explicit lunar/leap-month input) using the selected place: remove daylight saving, apply longitude correction (4 minutes per …1 finding

    Why it is in this group

    • The description's first verb is "convert": 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 "true_solar_time" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Convert historical local wall-clock time (Gregorian or explicit lunar/leap-month input) using the selected place: remove daylight saving, apply longitude correction (4 minutes per degree relative to the standard meridian), then equation of time. The Xiaodao engine uses the actual instant for equation of time in both hemispheres, with no half-year shift. Longitude and birth date are unchanged. Returns minute-resolution true solar time, historical zone/offset, DST and Zi-hour policy. Repeated clock times require an explicit occurrence; nonexistent times are rejected. earlyLateZi is optional and defaults to false (day changes at 23:00, same as the Xiaodao website default). Missing boundary choices return needs_input. No pillars or lunar date are returned; the Zi-hour policy does not change the displayed solar date. Gregorian date range: 1801-01-01 through 2099-12-31. 公历日期范围:1801-01-01 至 2099-12-31。 Lunar input is checked after conversion to Gregorian. 农历输入先换成公历再查。

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 1Show 1 read-only tool
  • search_birth_placeSearch Xiaodao’s place catalogue for birth place IDs, Chinese and English names, countries and first-level administrative areas.No findings

    Why it is in this group

    • The name "search_birth_place" says "search": a word for reading.
    Description, as the server wrote it
    Search Xiaodao’s place catalogue for birth place IDs, Chinese and English names, countries and first-level administrative areas. Select the intended place; its stored coordinates and historical time zone rules are used by the calculation tools, not today’s UTC offset.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: 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.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or untrusted-input.

Reads private data0
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write0
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out1
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

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

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input addresses people (input.detailYears.to): what it sends cannot be taken back.

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

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

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

claude mcp add --transport http xiaodao https://xiaodaox.com/mcp
claude mcp add --transport http xiaodao https://xiaodaox.com/mcp

Run in a terminal.

Claude Code permissions

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

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__xiaodao__search_birth_place"
    ],
    "ask": [
      "mcp__xiaodao__bazi_chart",
      "mcp__xiaodao__qimen_chart",
      "mcp__xiaodao__true_solar_time"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as xiaodao. Review it before you use it.

Capability tags behind 1 rule
  • mcp__xiaodao__bazi_chart outbound

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/com.xiaodaox/xiaodao/verify?hash=1eb3714645d06ca9eba495a1ac99e13418e67a1f1d26ab11eda009596eb04065" | jq -e '.changed == false'

Pinned hash 1eb3714645d0, from Oct 25, 2026, 07:17 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/com.xiaodaox/xiaodao/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for com.xiaodaox/xiaodao
[![anlyon.dev](https://anlyon.dev/badge/com.xiaodaox/xiaodao.svg)](https://anlyon.dev/servers/com.xiaodaox/xiaodao)

Source: MCP Registry. Synced Oct 25, 2026, 07:17 UTC.