# 小道 Xiaodao

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

- name: com.xiaodaox/xiaodao
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 92/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.xiaodaox%2Fxiaodao
- tools: https://api.protogrid.dev/v1/servers/com.xiaodaox%2Fxiaodao/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "xiaodao": {
      "type": "http",
      "url": "https://xiaodaox.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-13d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 92/100 (strong)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 2 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 4 of 4 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 2,269 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: 4 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 4, about 2,269 tokens to load them all
- tool set hash: 3b6ba04ef079cd6cd5140d53adc3bea6
- tools last changed: 2026-10-26T02:15:39.486Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.xiaodaox/xiaodao.svg)](https://protogrid.dev/servers/com.xiaodaox/xiaodao)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-26 `true_solar_time` changed (annotations)
- 2026-10-26 `qimen_chart` changed (annotations)
- 2026-10-26 `bazi_chart` changed (annotations)
- 2026-10-26 `search_birth_place` changed (annotations)

Full history: https://api.protogrid.dev/v1/servers/com.xiaodaox%2Fxiaodao/changes

## Remotes

- https://xiaodaox.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (4)

- `bazi_chart`: 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. 农历输入先换成公历再查。
- `qimen_chart`: 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。
- `search_birth_place`: 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.
- `true_solar_time`: 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. 农历输入先换成公历再查。
