Skip to main content
Glama

小道 Xiaodao

真太阳时换算 · True solar time

true_solar_time
Read-onlyIdempotent

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. 农历输入先换成公历再查。

Input Schema

NameRequiredDescriptionDefault
dateYesBirth date, YYYY-MM-DD, in the selected calendar.
timeYesLocal wall-clock time, HH:MM.
placeIdYesBirth place ID returned by search_birth_place.
calendarNoGregorian (SOLAR) or Chinese lunar (LUNAR) input. Lunar input requires an explicit isLeapMonth.SOLAR
languageNoen
earlyLateZiNoOptional Zi-hour convention. Default false: the day changes at 23:00 true solar time (same as the Xiaodao website default). true keeps the same day until 00:00.
isLeapMonthNoRequired for LUNAR input: whether the supplied lunar month is a leap month.
daylightSavingNoOnly supply a user-selected DST choice when the local time occurs twice.
boundaryChoicesNoUser choices for returned time boundaries: SAME uses this time; OTHER uses the other side.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover the read-only/idempotent safety profile, and the description adds substantial behavior beyond that: the exact conversion algorithm, hemisphere handling of the equation of time, defaults for earlyLateZi, rejection of nonexistent local times, the needs_input fallback, and the supported date window. That is exactly the kind of context annotations cannot carry.

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-loaded with the primary action and the correction pipeline, and most sentences carry distinct constraints (ambiguity, defaults, date range, return contents). The bilingual restatement of the date range and the slightly cryptic 'Longitude and birth date are unchanged' sentence are minor waste.

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?

With 9 parameters, a nested object and no output schema, the description does its job by summarizing returns (minute-resolution solar time, historical zone/offset, DST and Zi-hour policy) and the needs_input path. The gap is that boundaryChoices (DAY/HOUR/TERM) and when a boundary situation arises are never explained, so an agent facing that response has little to act on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 89%, so the baseline is 3; the description still adds meaning by tying repeated clock times to an explicit occurrence (daylightSaving), explaining that earlyLateZi defaults to false with a 23:00 day change, and noting that missing boundary choices produce needs_input. It leaves the DAY/HOUR/TERM boundary concepts themselves unexplained, which keeps it below 5.

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 and resource: convert historical local wall-clock time to true solar time, and enumerates the correction chain (DST removal, longitude correction, equation of time). It also carves out its own scope against siblings by declaring 'No pillars or lunar date are returned', which separates it from bazi_chart/qimen_chart.

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 operational context: repeated clock times need an explicit occurrence, nonexistent times are rejected, missing boundary choices return needs_input, and the Gregorian range is 1801-2099. It does not explicitly name an alternative tool or say 'use bazi_chart instead when you also need pillars', 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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources