Skip to main content
Glama

AstroWay Chinese metaphysics

Server Details

BaZi four pillars, Zi Wei Dou Shu, the Chinese calendar and feng shui.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
97.2% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

C2.8/5.0

Scored across 62 tools

Disambiguation2/5

Many tools overlap heavily: astroway_bazi_chart bundles all four pillars and more, yet separate year/month/day/hour pillar and element-balance tools exist, making selection ambiguous. Zi Wei has similar redundancy with palace-specific tools versus chart tools. MCP/AI tools like agent_tools, tools_list, streaming, and tool_call_stream also have unclear boundaries.

Naming Consistency4/5

Tool names consistently use the astroway_ prefix followed by domain and resource snake_case, which is predictable across most groups. Minor deviations appear in names like astroway_agent_tools and astroway_mcp_tools_list, but the overall convention is clear.

Tool Count1/5

62 tools is far beyond a well-scoped set for a Chinese metaphysics API and includes many granular, overlapping, and deprecated endpoints. The count suggests a thinly wrapped API surface rather than a carefully curated toolset.

Completeness4/5

The surface covers BaZi, Zi Wei, Feng Shui, lunar calendar, almanac, zodiac, and AI interpretation, which is broad for the domain. Some gaps remain around consolidated workflows and the presence of deprecated endpoints weakens an otherwise complete-looking set.

Available Tools

62 tools
astroway_account_statusAccount StatusA
Read-onlyIdempotent
Inspect

Check current API key status: tier, credit balance, rate limits, monthly cycle reset. Run this BEFORE invoking expensive endpoints (Tier 4+ at 100+ credits, Tier 6/7 at 500-5000 credits) to confirm the user has budget. Returns plain-text human-readable summary.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint. Description adds that it returns a 'plain-text human-readable summary' and clarifies the budget-checking purpose, providing useful context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three efficient sentences: purpose, usage guidance, and return format. Front-loaded with key information, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description specifies the return format (plain-text human-readable summary). For a simple status check tool, this is complete and sufficient.

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?

Tool has zero parameters, so schema coverage is 100%. Description does not need to explain parameters, and it adds value by hinting at the output format.

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?

Description clearly states the verb 'Check' and the resource 'API key status' with specific attributes (tier, credit balance, rate limits, monthly cycle reset). It distinguishes itself from the many sibling astrology calculation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to run this tool BEFORE invoking expensive endpoints, providing credit thresholds (Tier 4+ at 100+ credits, Tier 6/7 at 500-5000 credits) to confirm budget.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_agent_toolsAgent tool definitionsA
Read-onlyIdempotent
Inspect

Tool definitions for an agent framework, generated from the live OpenAPI document, so the schema a model fills is the schema the endpoint validates. format=openai (default) returns { type, function } objects you can spread straight into a chat completion; format=anthropic returns { name, description, input_schema }. The objects carry nothing of ours: how to call each tool lives in a separate executors map keyed by tool name, because an unexpected key inside a vendor tool object is a 400 at their end.

[Group: Agent Platform] [Endpoint: GET /v1/agent/tools] [Cost: see your plan — endpoint not in the public credit manifest]

NameRequiredDescriptionDefault
qNoFree-text filter applied within the selection, matched against path, summary, description and group.
limitNoHow many tools to return. The ceiling is the OpenAI limit of 128 functions per request; models degrade well before it. Anything left out is counted in `totalMatched`.
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
formatNoWhich vendor contract the tool objects follow. `openai` returns `{ type, function }`, `anthropic` returns `{ name, description, input_schema }`.openai
selectNoWhat to hand over: `starter` (the curated set, the default), `all`, `group:<tag>` such as `group:Vedic`, or `paths:/chart,/synastry` for an explicit list. An unknown path is named in `notes` rather than dropped.starter
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

Output Schema

NameRequiredDescription
countNo
notesNo
toolsNo
formatNo
selectNo
executorsNo
truncatedNo
totalMatchedNo
totalAvailableNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description adds genuine behavioral context beyond them: executors are kept out of the vendor objects because an unexpected key causes a 400 on the vendor side, and cost is flagged as not in the public credit manifest. That is real operational value.

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?

Roughly three sentences, front-loaded with the purpose before the format and executor caveats. It is dense but each sentence carries information, though the format explanation partially duplicates the schema's own enum description.

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 an output schema present and full annotation coverage, the description need not explain return values, and it appropriately focuses on the vendor-shape contract and the executors/400 gotcha. It is nearly complete, with the only gap being sibling disambiguation rather than missing operational detail.

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 the schema already documents every parameter in depth (limit ceiling rationale, select values, precision semantics). The description only restates format and its default, adding no parameter meaning the schema lacks. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states what the tool returns: tool definitions for an agent framework, generated from the live OpenAPI document. It is specific about the resource and the vendor-shape variants (openai vs anthropic objects). However, it never distinguishes this from the near-identical sibling astroway_mcp_tools_list, which an agent would plausibly confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use, when-not-to-use, or alternative-naming guidance. The mention that openai objects 'spread straight into a chat completion' implies a use case, but the agent is left to infer when this endpoint is preferable to astroway_mcp_tools_list or the MCP tool-call streaming siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_chartFull BaZi chartA
Read-onlyIdempotent
Inspect

The four pillars with everything the classical apparatus reads off them in one call: hidden stems, na yin, the twelve stages of the day master, element balance over all eight characters, the strength verdict, symbolic stars from both reference pillars, and the branch and stem interactions. Localised by language. Pass longitude with trueSolarTime true to cut the double-hour from the sun over the birth place; the correction reaches the day and hour only, never the year and month, which turn on world instants.

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/chart] [Required: date] [Cost: 20 credits (Tier 2)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
genderNo
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
longitudeNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
dayBoundaryNo
includeLuckNo
stageSchoolNo
trueSolarTimeNo
timezoneOffsetNoIgnored when timezone is sent.
includeFullTableNo

Output Schema

NameRequiredDescription
notesNo
sourceNo
pillarsNo
languageNo
strengthNo
dayMasterNo
solarYearNo
disclaimerNo
methodologyNo
stageSchoolNo
interactionsNo
symbolicStarsNo
elementBalanceNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description correctly focuses elsewhere: it discloses that the true-solar-time correction reaches only day and hour, never year or month, and that output is localised by language, plus a cost of 20 credits (Tier 2). These are non-obvious traits not present in the structured fields.

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 payload contents, then gives the one operational caveat; every sentence adds information and the metadata block is compact. The first sentence is an admittedly long enumeration, but it is dense rather than redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need no explanation, and the annotations carry the safety profile. Still, for a 14-parameter tool at 29% schema coverage, the description omits the meaning of several behavioural flags and any explicit routing versus the many bazi_* siblings, so an agent cannot call it optimally without more.

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 only 29%, so the description must carry weight, and it does explain the longitude/trueSolarTime interaction and language localisation. However, most parameters (gender, dayBoundary, stageSchool, includeLuck, includeFullTable, time, date) remain undocumented in both schema and description, leaving substantive gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (the full BaZi four-pillar chart) and enumerates exactly what it computes: hidden stems, na yin, twelve stages, element balance, strength verdict, symbolic stars, and stem/branch interactions. The phrase 'in one call' signals it is the aggregate superset, which subtly separates it from the sibling subset tools (bazi_hidden_stems, bazi_na_yin, bazi_strength, etc.), though it never names an alternative outright.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives real when-to guidance for one decision – pass longitude with trueSolarTime true to derive the double-hour from the sun – but offers no routing between this aggregate and the individual bazi_* subset tools that return the same components. Usage is implied by 'everything ... in one call' rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_day_masterDay MasterB
Read-onlyIdempotent
Inspect

Day stem element + yin/yang polarity + canonical archetype description. The "self" character in BaZi from which all other pillars are interpreted.

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/day-master] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
longitudeNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
dayBoundaryNo
trueSolarTimeNo
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
notesNo
dayMasterNo
dayPillarNo
disclaimerNo
interpretationNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful non-annotation context - the endpoint, the required input, and the 10-credit Tier 1 cost - but says nothing about accuracy caveats (e.g. how dayBoundary or trueSolarTime affect the derived day master), which matters for a BaZi computation.

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?

Two front-loaded sentences that state the returned content first, followed by a compact metadata block. Little waste; the structure is efficient for scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need no elaboration, and the description adequately frames the payload. However, for a 10-parameter astrological computation it leaves key gaps: no guidance on sibling selection and no explanation of the parameters that alter the day master calculation.

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

Parameters2/5

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

Schema description coverage is only 40%, and the description contributes nothing beyond restating that 'date' is required. Parameters that materially change a BaZi day master - dayBoundary, trueSolarTime, timezone, and the undocumented 'time' and 'language' - get no explanation here, so the description fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the concrete output (day stem element, yin/yang polarity, canonical archetype) and frames it as 'the self character in BaZi from which all other pillars are interpreted,' which lets an agent distinguish it from broader outputs like bazi_four_pillars. It lacks an explicit action verb, but the resource and returned payload are unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Beyond the metadata line '[Required: date]', there is no guidance on when this tool is preferable to siblings such as bazi_four_pillars, bazi_chart, or bazi_strength. The 'self character' framing implies a use case but names no alternatives or exclusion conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_element_balance5-Element BalanceB
Read-onlyIdempotent
Inspect

Element balance across the whole chart. The balance object opens the branches and counts all eight characters three ways: visible, with every hidden stem, and weighted so the total stays at eight. The top-level elementCounts, dominantElement and missingElements are DEPRECATED (year and month only, four characters, branches unopened) and keep answering unchanged until 2027-09-08; the response carries RFC 8594 Deprecation and Sunset headers.

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/element-balance] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
genderNo
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
longitudeNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
dayBoundaryNo
includeLuckNo
stageSchoolNo
trueSolarTimeNo
timezoneOffsetNoIgnored when timezone is sent.
includeFullTableNo

Output Schema

NameRequiredDescription
notesNo
sourceNo
balanceNo
pillarsNo
solarYearNo
disclaimerNo
methodologyNo
deprecationsNo
elementCountsNo
dominantElementNo
missingElementsNo

TDQS

B3.2/5.0
Behavior4/5

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

With readOnly/idempotent annotations already covering safety, the description adds genuine behavioral context: the three counting methods (visible, hidden stems, weighted), the RFC 8594 Deprecation and Sunset headers, and the exact date the deprecated fields stop answering. That is real value beyond structured fields, though rate/cost behavior is only in the meta block.

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?

Two dense but front-loaded sentences carry the substantive information, followed by a compact structured meta block with endpoint, required param, and cost. Nothing is padding, though the second sentence is long and mixes several ideas.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need not be explained, and the deprecation and counting semantics are well covered. The remaining gap is input-side: for a 14-parameter tool at 29% schema coverage, the definition supplies almost nothing about the non-required inputs an agent might need to set.

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

Parameters2/5

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

Schema description coverage is only 29% across 14 parameters, so the description must compensate and largely does not. It notes only that `date` is required; it says nothing about time, timezone, gender, dayBoundary, trueSolarTime, stageSchool, or the compact-mode fields, leaving most parameters undocumented in either place.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource ('Element balance across the whole chart') and is scoped to the BaZi group tag. It distinguishes itself from siblings like hidden_stems and day_master by describing exactly what it counts. It does not explicitly contrast itself against the closest siblings, keeping it short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus the many BaZi siblings (chart, four_pillars, strength, hidden_stems). The group tag and '[Required: date]' imply context, but no condition or alternative is ever spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_four_pillarsFour Pillars (full)A
Read-onlyIdempotent
Inspect

All four pillars: year, month, day, hour. Day pillar uses the canonical 60-jiazi cycle (anchor 1990-01-01 = Bing-Yin). Pass time to compute the hour pillar; day and hour roll at 23:00 local, year and month at the exact Lichun and 節 instants.

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/four-pillars] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
notesNo
dayPillarNo
solarYearNo
disclaimerNo
hourPillarNo
yearPillarNo
monthPillarNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/finite-world, so the safety profile is covered. The description adds real behavioral depth beyond that: the 60-jiazi anchor (1990-01-01 = Bing-Yin) and the exact boundary rules — day/hour rolling at 23:00 local, year/month at Lichun and 節 instants — which are the edge cases that actually change results. It does not contradict the annotations.

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?

Two dense sentences that front-load output scope, then methodology, then boundary behavior; the metadata footer is compact. No filler, though the astronomical caveats make the second sentence long.

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 values need not be described, and annotations cover safety. For a single-date computation tool the description supplies the key semantics (input shape, pillar scope, boundary rules). The one residual gap is that '23:00 local' is not tied explicitly to the timezone/timezoneOffset parameters.

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 coverage is 57% (time, date, and language have no schema descriptions), so the description carries part of the load: it clarifies that `time` drives the hour pillar and that day/hour boundaries are 23:00 local. It adds nothing for `language` and only partially ties the 23:00 boundary to the timezone/timezoneOffset parameters.

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 concrete output ('All four pillars: year, month, day, hour') for a named resource, and the phrase 'All four pillars' implicitly contrasts with the sibling single-pillar tools (bazi_year_pillar, bazi_month_pillar, bazi_hour_pillar). An agent can distinguish it from the per-pillar siblings without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Pass `time` to compute the hour pillar' is a genuine conditional usage hint. However there is no explicit when-to-use statement versus alternatives such as astroway_bazi_chart or the individual pillar endpoints, and no stated exclusions. Usage is implied rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_hidden_stemsHidden stems (Cang Gan)B
Read-onlyIdempotent
Inspect

The one to three stems each branch shelters, with role and weight. This is where most of a chart's elements live: a chart with no visible Water can still be soaked in it. On the four storage branches the middle role belongs to the stored element, not to the second in the list.

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/hidden-stems] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
genderNo
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
longitudeNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
dayBoundaryNo
includeLuckNo
stageSchoolNo
trueSolarTimeNo
timezoneOffsetNoIgnored when timezone is sent.
includeFullTableNo

Output Schema

NameRequiredDescription
notesNo
sourceNo
pillarsNo
solarYearNo
weightingNo
disclaimerNo
methodologyNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds real behavioral context beyond that: it discloses the storage-branch quirk where the middle role belongs to the stored element rather than the second list entry, which warns the agent about a non-obvious output layout. It stops short of describing permissions, cost, or caching, but the metadata block supplies the cost.

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?

Three front-loaded sentences, each carrying content: what is returned, why it matters, and one edge-case caveat. The vivid 'soaked in Water' line earns its place by motivating use. The structured metadata footer is compact and does not pad the text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Return values need not be explained because an output schema exists, and the output semantics are described well. However, for a 14-parameter computation tool, the description gives no guidance on which optional BaZi switches to set or what the required input is beyond the footer, leaving the input side thin.

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

Parameters2/5

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

Schema description coverage is only 29% across 14 parameters, and the prose mentions no parameter at all — the reader learns only from the metadata footer that `date` is required. Domain-specific inputs such as dayBoundary, stageSchool, trueSolarTime, and includeFullTable are left entirely to the sparse schema, so the description fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific resource — the one-to-three hidden stems sheltered in each BaZi branch, with role and weight — and the description makes clear this is the elementally meaningful layer of the chart. It is more specific than the title alone, but it never distinguishes itself from the many BaZi siblings (bazi_chart, bazi_four_pillars, bazi_element_balance), so an agent must infer which computes the same layer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The remark that 'this is where most of a chart's elements live' implies the tool is the right one when hidden element counts matter, but no explicit when-to-use, when-not, or alternative tool is named. With ~20 BaZi siblings, routing guidance is the missing piece.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_hour_pillarHour PillarB
Read-onlyIdempotent
Inspect

Hour pillar via 五鼠遁 (Five-Rats-Escape) day-stem → hour-stem table. The Zi hour opens the day at 23:00 local time.

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/hour-pillar] [Required: date, time] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeYes
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
dateNo
timeNo
cstHourNo
dayPillarNo
localHourNo
disclaimerNo
hourPillarNo
methodologyNo
timezoneOffsetNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description still adds genuinely behavioral content beyond that: the explicit day-boundary convention that the Zi hour opens the day at 23:00 local time, which changes computed results at the day edge. It stops short of error behavior or what happens with ambiguous/skipped local times.

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?

Two tight sentences front-loading the method and the boundary rule, followed by a compact bracketed metadata block. The 'Required: date, time' line duplicates the schema's required array, which is the only real waste; group, endpoint and credit cost are non-redundant and useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, an output schema and full annotations, the main remaining gap is orienting the agent on time input: an hour pillar is only well defined once the local-hour convention and the timezone/timezoneOffset choice are resolved, and the description only alludes to 'local time' without saying which parameter governs it. Return values need not be explained since an output schema exists. Adequate but not complete for a time-sensitive calculation tool.

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 57%, in the middle band. The description only echoes the required list ('Required: date, time'), which the schema already encodes, and adds nothing about how timezone or timezoneOffset interact with the hour boundary — arguably the most consequential semantic for an hour-pillar tool. The richer timezone, timezoneOffset, fields and precision semantics are all carried by the schema, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific computation and its algorithm: the hour pillar derived via the 五鼠遁 (Five-Rats-Escape) day-stem → hour-stem table, plus the Zi-hour day boundary rule. That is far more specific than the bare name 'Hour Pillar'. It never names or contrasts the obvious siblings (astroway_bazi_year_pillar, astroway_bazi_month_pillar, astroway_bazi_four_pillars), so sibling differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance at all. The description does not say to prefer this over astroway_bazi_four_pillars when all four pillars are wanted, nor when a standalone hour pillar is appropriate, nor what date/time combination is meaningful. The only procedural hints are the metadata lines (endpoint, required params, cost), which are call mechanics rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_interactionsBranch and stem interactionsB
Read-onlyIdempotent
Inspect

Stem combinations, six harmonies, full and half trines, clashes, harms, punishments and self-punishments present in the chart, with the pillars involved and the element a combination produces.

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/interactions] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
genderNo
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
longitudeNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
dayBoundaryNo
includeLuckNo
stageSchoolNo
trueSolarTimeNo
timezoneOffsetNoIgnored when timezone is sent.
includeFullTableNo

Output Schema

NameRequiredDescription
notesNo
sourceNo
pillarsNo
solarYearNo
disclaimerNo
methodologyNo
interactionsNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered without the description. The description adds useful output-shape context (pillars involved, resulting element) and the metadata block discloses a 10-credit cost, but it says nothing about authentication, whether a full birth time/location is needed for meaningful results, or any limits on the interaction set.

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?

A single dense sentence front-loads the enumerated interaction types, and the bracketed metadata (group, endpoint, required param, credit cost) is compact and scannable. No filler, though the metadata lines are boilerplate shared across the whole BaZi family.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need not be explained, and the description correctly sketches what comes back. However, for a 14-parameter tool with 29% schema coverage and a single required parameter, the description leaves the agent without enough to know which optional inputs change the result or how this relates to its many BaZi siblings.

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

Parameters2/5

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

Schema description coverage is only 29% across 14 parameters, so the description should carry the burden — and it explains none of them. It never clarifies why time, timezone, longitude, gender, dayBoundary, stageSchool, trueSolarTime, includeLuck or includeFullTable matter for an interactions lookup, nor does it reconcile 'present in the chart' with a schema whose only required input is a date.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific content the tool computes — stem combinations, six harmonies, full and half trines, clashes, harms, punishments, self-punishments — plus the pillars involved and the element a combination produces. That is far more informative than the title 'Branch and stem interactions'. It stops short of differentiating itself from sibling BaZi tools (bazi_chart, bazi_four_pillars, bazi_hidden_stems), so it does not reach a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance. An agent cannot tell from the description whether this should be called alongside astroway_bazi_chart or astroway_bazi_four_pillars, or whether the chart is derived internally from the single required date. The credit-cost note is metadata, not routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_life_stagesTwelve life stagesC
Read-onlyIdempotent
Inspect

A stem read against each branch as a life cycle, from Chang Sheng through Di Wang to Jue. The day master through the chart; pass includeFullTable for the ten-by-twelve reference table. stageSchool picks the classical yin-reverse rule or the unified one.

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/life-stages] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
genderNo
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
longitudeNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
dayBoundaryNo
includeLuckNo
stageSchoolNo
trueSolarTimeNo
timezoneOffsetNoIgnored when timezone is sent.
includeFullTableNo

Output Schema

NameRequiredDescription
notesNo
schoolNo
sourceNo
dayMasterNo
solarYearNo
disclaimerNo
schoolNoteNo
methodologyNo
dayMasterThroughChartNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds only that a full ten-by-twelve reference table can be requested and that stageSchool selects a calculation rule; it says nothing about output shape, cost implications beyond the context tag, or limitations. Adequate but thin on behavior beyond the annotations.

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?

Three compact sentences, front-loaded with the concept and then the two tool-specific options. No filler, though the jargon-heavy phrasing ('Chang Sheng ... Di Wang ... Jue') is dense for an agent that may not know the terms.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and annotations cover the safety profile. What remains missing is how this tool relates to the dense cluster of BaZi siblings and what the single required date parameter actually drives — enough gaps to fall short of complete.

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 only 29% across 14 parameters, so the description must compensate. It does supply real meaning for the two most tool-specific parameters (includeFullTable returns the reference table; stageSchool chooses classical yin-reverse vs unified), but the other twelve parameters, including date and dayBoundary, get no added interpretation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gestures at the concept — 'a stem read against each branch as a life cycle' — and names the day master, but it never states plainly that the tool returns the twelve life stages of the day master through the chart. It leans on domain jargon that overlaps heavily with siblings like astroway_bazi_strength and astroway_bazi_day_master without distinguishing itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains two options (includeFullTable, stageSchool) but gives no guidance on when to choose this tool over the many other BaZi endpoints. There is no when-to-use or when-not-to-use framing and no mention of the required date or that the result is chart-wide rather than per-pillar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_luck_pillarsLuck Pillars (Da Yun)B
Read-onlyIdempotent
Inspect

10-year luck pillars sequence. Direction by gender + year-stem polarity per Ziping canon.

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/luck-pillars] [Required: date, gender] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
countNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
genderYes
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
longitudeNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
dayBoundaryNo
trueSolarTimeNo
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
dateNo
countNo
genderNo
sourceNo
startAgeNo
directionNo
disclaimerNo
luckPillarsNo
methodologyNo
startReferenceNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive, closed-world), so the bar is lower. The description adds genuinely non-structured operational context: the POST endpoint, a 10-credit Tier 1 cost, and the deterministic rule ('direction by gender + year-stem polarity per Ziping canon'), which tells the agent the result is computable rather than interpretive.

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 core purpose in the first sentence, followed by compact bracketed metadata lines. No filler, though for a 12-parameter tool the space saved is partly paid for by missing parameter guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need not be explained, and required inputs plus cost are stated. However, with 12 parameters, low schema description coverage, and a dense field of near-named BaZi siblings, the definition leaves an agent unable to distinguish intent or set pragmatic options like count or dayBoundary.

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

Parameters2/5

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

Schema description coverage is 33%, below the 50% threshold, so the description is expected to compensate and does not. It names only date and gender, both already required and documented in the schema, and says nothing about count, dayBoundary, trueSolarTime, longitude, or language, all of which materially change the pillars produced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete resource and scope: a '10-year luck pillars sequence' (Da Yun), which is a specific BaZi artefact rather than a generic chart. It does not, however, disambiguate against closely named siblings such as astroway_bazi_year_pillar_decade or astroway_bazi_yearly, which an agent could easily confuse with a decade-length sequence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage information is '[Required: date, gender]', which merely restates the schema's required list. There is no statement of when to reach for this tool versus the other 20+ astroway_bazi_* tools, no exclusions, and no prerequisites such as needing an existing chart.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_monthlyMonthly ForecastA
Read-onlyIdempotent
Inspect

Same Sheng-Ke + branch-clash analysis as yearly, but applied to a specific calendar month. Month branch resolved via mid-month jieqi.

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/monthly] [Required: natalDate, targetYear, targetMonth] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
longitudeNo
natalDateYes
natalTimeNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
targetYearYes
dayBoundaryNo
targetMonthYes
natalTzOffsetNoIgnored when timezone is sent.
trueSolarTimeNo

Output Schema

NameRequiredDescription
notesNo
disclaimerNo
targetYearNo
elementFlowNo
targetMonthNo
targetPillarNo
natalDayMasterNo
branchInteractionsNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and non-destructive safety. Beyond that the description adds a non-obvious methodological fact (month branch resolved via mid-month jieqi) and the cost of 10 credits at Tier 1, which materially affects invocation. It does not cover auth or response shape, but the output schema exists so that is less critical.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence is front-loaded, followed by compact bracketed metadata for group, endpoint, required params and cost. Every element earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter tool the definition gives purpose, endpoint, required inputs and cost, and an output schema exists to cover return values. However, the low parameter coverage means an agent is left without guidance on timezone, dayBoundary, trueSolarTime or natalTzOffset, which are the semantically tricky inputs here.

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

Parameters2/5

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

Schema description coverage is only 33% (four of twelve params documented), so the description carries the burden of compensating for the undocumented parameters, but it does not. It merely restates the three required parameters already declared in the schema's required list, adding no syntax, format, or interaction semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the analytical technique (Sheng-Ke + branch-clash) and the scope that differentiates it (a specific calendar month, resolved via mid-month jieqi). It anchors itself to astroway_bazi_yearly, so an agent can tell it apart from the year-scoped sibling. The only weakness is that it is defined relatively to the yearly tool rather than standing on its own.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The month scope implies when this tool is appropriate versus a yearly or daily forecast, but usage is only implicit. There are no explicit when/when-not statements and no routing to alternative BaZi forecasting siblings. Adequate but leaves the agent to infer selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_month_pillarMonth PillarA
Read-onlyIdempotent
Inspect

Month stem + branch from solar-term boundaries.

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/month-pillar] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
monthPillarNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare a safe read (readOnlyHint, idempotentHint, non-destructive), so the bar is lower. The description still adds real behavioral context: the value is derived from solar-term boundaries rather than calendar months, and it discloses the endpoint and a 10-credit cost. It does not disclose how time/timezone affect boundary resolution.

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 core behavior, then a compact bracketed metadata block covering group, endpoint, requirement, and cost. Every line carries a distinct fact; nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need no explanation, and the cost/endpoint metadata is present. For a solar-term-boundary calculation, though, the description never explains that the result depends on exact local time and timezone, nor does it distinguish itself from astroway_bazi_monthly — a meaningful gap for correct invocation.

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 57%, mid-range, and the description only repeats the required flag for 'date' — information already in the schema's required array. It adds no syntax, format, or defaulting guidance for time, language, or the boundary-critical timezone parameters, so it does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource ('Month stem + branch') and a distinguishing mechanism ('from solar-term boundaries'), which sets it apart from astroway_bazi_year_pillar and astroway_bazi_hour_pillar by name. It does not, however, clarify its relationship to the confusingly similar sibling astroway_bazi_monthly or to astroway_bazi_four_pillars.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the name and by '[Required: date]' and the credit cost line, so an agent knows the minimum to invoke it. There is no explicit when-to-use vs. when-not guidance, and no routing between this tool, astroway_bazi_monthly, astroway_bazi_chart, and astroway_bazi_four_pillars, which overlap heavily here.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_na_yinNa Yin sound-elementB
Read-onlyIdempotent
Inspect

The sound-element of each pillar. The sixty jiazi collapse into thirty names, two consecutive pillars to a name; the year pillar na yin is what popular readings mean by "your element", and it is not the day master.

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/na-yin] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
genderNo
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
longitudeNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
dayBoundaryNo
includeLuckNo
stageSchoolNo
trueSolarTimeNo
timezoneOffsetNoIgnored when timezone is sent.
includeFullTableNo

Output Schema

NameRequiredDescription
notesNo
sourceNo
pillarsNo
solarYearNo
disclaimerNo
methodologyNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds domain content (how the 60 jiazi map to 30 na yin names) but says nothing about defaults, required inputs beyond the footer metadata, or response shape, so it neither undercuts nor richly extends the annotations.

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?

Two tight sentences, front-loaded with the core concept and followed by the disambiguating clarification. No filler, though the definition of the jiazi collapse is arguably more domain color than operational guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter BaZi endpoint the description supplies no routing context against ~30 bazi siblings and no parameter guidance, leaving the agent dependent on a mostly unannotated schema. The output schema existing means return values need not be described, but the usage and input gaps remain large.

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

Parameters2/5

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

Fourteen parameters at 29% schema description coverage, and the description never mentions any of them (date, time, timezone, precision, dayBoundary, stageSchool, etc.). The footer's '[Required: date]' only restates schema data, so the description does not compensate for the large uncovered parameter surface.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states what is computed (the na yin sound-element of each pillar) and explains the underlying domain rule (60 jiazi collapse into 30 names, two consecutive pillars per name). It also explicitly disambiguates from the common confusion with the day master, which differentiates it from the many other bazi sibling tools that return pillars.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the note that na yin 'is not the day master' indirectly tells an agent not to reach for this when the user wants their day master, but there is no explicit when-to-use, when-not-to-use, or named alternative among the dense bazi sibling set (year_pillar, four_pillars, day_master).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_strengthDay-master strengthB
Read-onlyIdempotent
Inspect

The support-and-suppress reading over the weighted hidden-stem count, with the three classical criteria (season, root, allies) reported unweighted and the favourable elements that follow. The caveat names both limits: the month is counted like any other branch, and the cut points are this API's convention.

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/strength] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
genderNo
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
longitudeNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
dayBoundaryNo
includeLuckNo
stageSchoolNo
trueSolarTimeNo
timezoneOffsetNoIgnored when timezone is sent.
includeFullTableNo

Output Schema

NameRequiredDescription
notesNo
sourceNo
pillarsNo
strengthNo
dayMasterNo
solarYearNo
disclaimerNo
methodologyNo

TDQS

B3.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the bar is lowered. The description adds real value beyond that: it discloses that the weighting applies to hidden stems, that the three classical criteria are reported unweighted, and two explicit caveats (month treated like any other branch, cut points being an API convention). That is meaningful methodological transparency.

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?

Two densely packed sentences that front-load the core computation before the caveats, followed by terse bracketed metadata. Nothing is wasted, though the technical jargon makes it harder to scan than it could be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter tool with 29% schema coverage, the description should orient the agent on the key options that change the result, but it is silent on all of them. It correctly omits return-value explanation since an output schema exists, and it does not guide tool selection against the many BaZi siblings, leaving substantial gaps.

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

Parameters2/5

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

Schema description coverage is only 29%, so the description must carry weight but does not. None of the 14 options (dayBoundary, stageSchool, trueSolarTime, includeLuck, includeFullTable, gender, timezone, etc.) are explained or even alluded to; the only hint is the passing remark about how the month is counted. It does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete computation: a support-and-suppress reading over the weighted hidden-stem count, plus three classical criteria (season, root, allies) reported unweighted. An agent can tell what is produced. It stops short of differentiating from obvious siblings such as astroway_bazi_day_master or astroway_bazi_element_balance, which overlap thematically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites beyond the bracketed 'Required: date', and no mention of any alternative tool. The methodology caveat explains limits of the calculation but does not help an agent decide whether this tool or a sibling is the right call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_symbolic_starsSymbolic stars (Shen Sha)B
Read-onlyIdempotent
Inspect

Peach Blossom, Travelling Horse, Canopy, Heavenly Nobleman, Blade and Void, computed from BOTH the year and the day reference pillar because the transmissions disagree about which one the rules read from. Where two transmissions place a star differently, both placements ship and each names the other.

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/symbolic-stars] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
genderNo
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
longitudeNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
dayBoundaryNo
includeLuckNo
stageSchoolNo
trueSolarTimeNo
timezoneOffsetNoIgnored when timezone is sent.
includeFullTableNo

Output Schema

NameRequiredDescription
notesNo
sourceNo
pillarsNo
solarYearNo
disclaimerNo
byDayPillarNo
methodologyNo
byYearPillarNo
referenceNoteNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already establish the safe read-only/idempotent profile, so the bar is lower, and the description adds real behavioral detail: stars are computed from both year and day pillars, and when transmissions disagree both placements are returned with cross-references. That tells the agent to expect duplicate/paired placements, which is non-obvious output behavior.

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?

The star list is front-loaded, the rationale follows, and the trailing metadata block (Group, Endpoint, Required, Cost) is compact and scannable. The disagreement sentence is slightly convoluted but each part earns its place; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need not be explained, and the description covers what is computed and how ambiguity is handled. However, for a 14-parameter endpoint with low schema coverage, the absence of any parameter or usage context leaves meaningful gaps.

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

Parameters2/5

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

With 14 parameters and only 29% schema description coverage, the description carries a heavy compensation burden, yet it says nothing about any parameter (date, time, timezone, gender, school options). The structured schema describes a handful (fields, precision, timezone, timezoneOffset), but the description contributes zero parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the concrete resource (Peach Blossom, Travelling Horse, Canopy, Heavenly Nobleman, Blade and Void) and states exactly what it computes (Shen Sha from the year AND day reference pillars). An agent can distinguish this from sibling BaZi tools like ten_gods or na_yin. It stops short of a crisp verb-first statement of purpose, but the resource and computation are unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance or routing to alternatives. The description explains internal computation logic (why both pillars are read) but never tells the agent the conditions under which this tool should be selected over bazi_chart, bazi_four_pillars, or other Shen Sha-adjacent endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_ten_godsTen Gods (Shi Shen)B
Read-onlyIdempotent
Inspect

Ten Gods classification per day master. Bi Jian/Jie Cai (peer), Shi Shen/Shang Guan (output), Pian Cai/Zheng Cai (wealth), Qi Sha/Zheng Guan (officer), Pian Yin/Zheng Yin (resource).

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/ten-gods] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
longitudeNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
dayBoundaryNo
trueSolarTimeNo
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
dateNo
sourceNo
tenGodsNo
dayMasterNo
disclaimerNo
methodologyNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description usefully adds operational context the annotations do not carry: it is a POST endpoint and costs 10 credits (Tier 1). It says nothing about output shape or how sensitive the result is to the time/timezone inputs.

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 purpose and the five god pairs in two tight lines, then a compact metadata block. The pinyin glossary is dense but on-topic and earns its space; nothing redundant is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need not be explained, and the annotations cover the safety profile. However, given a 10-param chart tool whose accuracy hinges on time/timezone/day-boundary choices, the description supplies no guidance on which inputs matter and no contextual framing beyond cost and endpoint.

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

Parameters2/5

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

With 10 parameters and only 40% schema description coverage, the description is expected to compensate and does not. It merely restates that date is required (already in the schema) and never explains BaZi-critical inputs such as dayBoundary (23:00 vs midnight) or trueSolarTime, which materially change the classification.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific analysis (Ten Gods / Shi Shen classification relative to the day master) and enumerates the actual categories computed, so an agent knows precisely what is returned. It does not, however, name or contrast itself with the many adjacent BaZi siblings (chart, day_master, hidden_stems, element_balance), leaving differentiation to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance at all: no statement of prerequisites (e.g. that day master/date must be known), no conditions for preferring this over astroway_bazi_day_master or astroway_bazi_element_balance, and no exclusions. The metadata block gives endpoint/cost but nothing about workflow context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_yearlyYearly ForecastB
Read-onlyIdempotent
Inspect

Compares target year pillar against natal day master + natal year branch. Returns element-flow relation (companion / mother / output / control / wealth) per Sheng-Ke cycle, branch clashes (六冲), and trine support (三合).

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/yearly] [Required: natalDate, targetYear] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
genderNo
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
longitudeNo
natalDateYes
natalTimeNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
targetYearYes
dayBoundaryNo
includeMonthsNo
natalTzOffsetNoIgnored when timezone is sent.
trueSolarTimeNo

Output Schema

NameRequiredDescription
notesNo
disclaimerNo
targetYearNo
elementFlowNo
targetPillarNo
natalDayMasterNo
branchInteractionsNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description usefully adds the 10-credit Tier 1 cost and the analytical nature of the output, but says nothing about determinism, auth requirements, or rate behavior beyond what annotations imply.

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?

The core computation is front-loaded in one dense sentence and the metadata block is compact and scannable. The bracketed lines are slightly repetitive of schema-level facts but earn their place by surfacing cost and endpoint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter analytical tool, purpose and cost are well covered and an output schema exists so return values need not be re-explained. However, usage context versus siblings and the semantics of the many optional BaZi parameters remain unaddressed.

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

Parameters2/5

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

Schema coverage is only 31% across 13 parameters, so the description must compensate, yet it only names the two required fields (natalDate, targetYear). Meaningful parameters such as dayBoundary, trueSolarTime, includeMonths, gender, and natalTime receive no explanation here or in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific operation: comparing the target year pillar against the natal day master and natal year branch, and names the exact outputs (element-flow relation, branch clashes, trine support). It is clear what the tool computes, but it never distinguishes itself from close siblings like astroway_bazi_year_pillar, astroway_bazi_year_pillar_decade, or astroway_bazi_monthly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is given. The bracketed metadata supplies required params, endpoint and credit cost, but nothing tells an agent when to reach for this over the year_pillar or monthly siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_year_pillarYear PillarC
Read-onlyIdempotent
Inspect

Year stem + branch + animal + element with yin/yang.

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/year-pillar] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
yearPillarNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered by structured data. The description contributes the cost tier (10 credits, Tier 1) and the endpoint, which are useful operational facts not present in the annotations, but says nothing about whether the result is deterministic across timezone settings or how time/timezone affect the pillar.

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?

The output summary is front-loaded in one line and the bracketed metadata block is compact and scannable. Nothing is padded, though the boilerplate labels (Group/Endpoint/Required/Cost) consume most of the description's real estate relative to actual explanation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/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 detail is fairly excused, but the central ambiguity remains unresolved: whether `date` is the subject's birth date or the calendar year being inspected, and how `time`/`timezone` interact with that. For a 7-parameter tool with partial schema coverage and several confusable siblings, the definition leaves too much to inference.

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

Parameters2/5

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

Schema description coverage is only 57%, and the three undocumented parameters are the semantically critical ones: date (no description at all — birth date vs. target year is ambiguous), time, and language. The only param-related text, 'Required: date', merely restates the schema's required array and adds no meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first line names a specific output bundle — year stem, branch, animal, element, yin/yang — for the BaZi year pillar, which is a concrete verb+resource an agent can recognize. It does not, however, contrast itself with near-identical siblings like astroway_bazi_month_pillar, astroway_bazi_hour_pillar, or astroway_bazi_year_pillar_decade, so the agent must infer the distinction from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The definition never says when to pick this tool over astroway_bazi_four_pillars or astroway_bazi_chart, nor what question it answers. The only routing-style hints are boilerplate ('Required: date', 'Cost: 10 credits'), which tell the agent nothing about appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_bazi_year_pillar_decadeYear Pillars × 10B
Read-onlyIdempotent
Inspect

10 consecutive year pillars from a given starting year.

[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/year-pillar-decade] [Required: startYear] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
startYearYes

Output Schema

NameRequiredDescription
decadeNo
startYearNo
disclaimerNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint/idempotentHint/non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context in the form of a cost (10 credits, Tier 1) and the backing endpoint, but says nothing about rate limits, auth requirements, or how the 10-year window behaves at the schema's 2100 upper bound.

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 core behavior in one sentence, followed by compact bracketed metadata (group, endpoint, required, cost). Nothing is padded, though the bracket block is closer to boilerplate than prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 explanation is not required, and annotations cover safety. What's missing is routing context among the many BaZi siblings (year vs decade vs luck pillars) and any note on the `language` parameter, leaving the definition merely adequate for a 4-parameter, credit-consuming call.

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

Parameters2/5

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

Schema description coverage is 50%: `fields` and `precision` are documented in the schema, while `language` and `startYear` are not. The description only repeats '[Required: startYear]' (already in the schema's required array) and adds no semantics for `language` or the decade windowing, so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names a concrete output (10 consecutive year pillars) and the input that drives it (a starting year), so an agent knows exactly what it gets. It does not, however, distinguish itself from the close sibling astroway_bazi_year_pillar (single year) or explain why one would want the decade form over repeated single calls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of the single-year sibling, and no stated prerequisites or exclusions. The bracketed '[Required: startYear]' restates the schema rather than advising usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_chinese_feng_shui_annual_starsAnnual flying stars and afflictionsB
Read-onlyIdempotent
Inspect

The nine annual stars for a solar year, plus Tai Sui, Sui Po, San Sha, the five yellow and the two black with the sectors they occupy. Optionally the monthly layer. The year turns at Li Chun, computed from the exact solar term.

[Group: Chinese: Zodiac & Feng Shui] [Endpoint: POST /v1/chinese/feng-shui/annual-stars] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateNo
timeNo
yearNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
includeMonthlyNo
timezoneOffsetNoHours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent.

Output Schema

NameRequiredDescription
animalNo
palacesNo
solarYearNo
centreStarNo
yearBranchNo
afflictionsNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description still adds real behavioral context beyond them: the year boundary is Li Chun computed from the exact solar term, and the cost/endpoint metadata is stated. It does not discuss how inputs are resolved (date vs year, timezone vs offset).

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?

Three tight sentences with the core output list front-loaded, then the optional monthly layer, then the year-boundary rule. Nothing is padded, though the trailing group/endpoint/cost block is boilerplate rather than description content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need no explanation, and annotations carry the safety profile. What is missing is input-side guidance: with zero required parameters and 44% schema coverage, an agent gets no help deciding whether to send date, year, or both, or whether to prefer timezone over timezoneOffset.

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

Parameters2/5

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

Schema description coverage is only 44% with nine parameters. The description explains only two loosely (the solar year -> year, and the monthly layer -> includeMonthly); it says nothing about how date/time interact, and nothing about fields, precision, language, timezone or timezoneOffset, so it does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (the nine annual stars for a solar year) and enumerates the outputs (Tai Sui, Sui Po, San Sha, five yellow, two black with their sectors), which clearly separates it from the adjacent flying-star, bagua and kua tools. It stops short of naming any sibling explicitly, so an agent must still infer the boundary from the field list rather than from a direct contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage signal is 'Optionally the monthly layer,' which implicitly maps to includeMonthly. There is no when-to-use statement, no mention of when this is preferable to astroway_chinese_feng_shui_flying_star or the tong-shu tools, and no prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_chinese_feng_shui_baguaBagua Life AreasB
Read-onlyIdempotent
Inspect

Eastern-school Bagua mapping of 9 life areas (career, knowledge, family, wealth, fame, relationships, children, helpful-people, health) onto compass sectors.

[Group: Chinese: Zodiac & Feng Shui] [Endpoint: POST /v1/chinese/feng-shui/bagua] [Required: date, gender] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
genderYes
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
solarYearNo
timezoneOffsetNoHours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent.

Output Schema

NameRequiredDescription
baguaNo
groupNo
notesNo
kuaNumberNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is fully covered. The description block adds genuinely useful non-annotation context in the cost (10 credits, Tier 1) and required-input line, but says nothing about how the mapping is computed or what a 'sector' assignment implies.

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?

One front-loaded sentence that delivers the core meaning with no filler. The parenthetical enumeration of all nine life areas is long but is the substance of the tool rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need no explanation, and the description adequately frames what is produced. What is missing for a nine-parameter, paid computation tool is any pointer on when this reading is the right one versus the sibling feng-shui tools, leaving the agent to guess from names alone.

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

Parameters2/5

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

Schema description coverage is only 44% across nine parameters, and the description does not compensate: it restates the two required inputs already declared in the schema's required array and adds no meaning for time, language, precision, solarYear, timezone or timezoneOffset. A low-coverage schema needed help here and did not get it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (Bagua mapping of nine named life areas onto compass sectors) and pins the school ('Eastern-school'), which separates it from the kua and flying-star siblings. It never names a sibling it should not be confused with, and the verb is implicit ('mapping') rather than an action, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance and no routing against the four closest siblings (feng_shui_kua, lucky_directions, flying_star, annual_stars). The only contextual facts, required date/gender and 10-credit cost, come from the metadata lines rather than usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_chinese_feng_shui_flying_starFlying Star natal chart (Xuan Kong Fei Xing)A
Read-onlyIdempotent
Inspect

The nine-palace natal chart of a building: mountain star, period star and facing star per sector, the named arrangement (旺山旺水 and the other three), and the special patterns. Send the facing in degrees or as one of the 24 mountains, and the period directly or as the date the building was occupied. Neither is defaulted.

[Group: Chinese: Zodiac & Feng Shui] [Endpoint: POST /v1/chinese/feng-shui/flying-star] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
yearNo
facingNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
periodNo
languageNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
occupiedDateNo
occupiedTimeNo
facingMountainNo
timezoneOffsetNoHours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC.

Output Schema

NameRequiredDescription
notesNo
facingNo
flightNo
periodNo
palacesNo
sittingNo
patternsNo
warningsNo
chartTypeNo
annualYearNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's job is lighter. It usefully adds the behavioral fact that both key inputs must be supplied explicitly ("Neither is defaulted") and states the chart contents, which is genuine context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first front-loads the output contents, the second the input requirements. No filler, no restating the title, and the most decision-relevant constraint ('Neither is defaulted') lands last for emphasis.

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 10 params, an existing output schema, and annotations carrying the safety profile, the description only needs to cover essential inputs, which it does for facing and period. Minor gaps remain for the auxiliary fields (fields, precision, language, timezoneOffset), but none of these are decision-critical for selecting or calling the tool.

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 description coverage is only 30% across 10 params, so the description must compensate, and it does for the critical fields: it explains that facing can be degrees or one of the 24 mountains (mapping the facing/facingMountain duality) and that period can be given directly or derived from the occupation date (period/occupiedDate). This resolves the main input ambiguity not documented in the schema, though language/precision/fields/timezoneOffset remain unaddressed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific artifact (nine-palace Flying Star natal chart of a building) and enumerates its distinctive contents (mountain/period/facing star per sector, the named arrangement, special patterns), which clearly separates it from feng-shui siblings like annual_stars, bagua, kua, and lucky_directions. It is explicit about what it produces, though it never directly contrasts itself with those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: it tells you to supply the facing as degrees or a named mountain and the period directly or via the occupation date, and warns that neither is defaulted. There is no explicit 'when to use this vs. alternatives' or prerequisite guidance, so an agent must infer the scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_chinese_feng_shui_kuaKua NumberB
Read-onlyIdempotent
Inspect

Personal Kua number from solar-year digit sum + gender. Maps to East/West group for direction work.

[Group: Chinese: Zodiac & Feng Shui] [Endpoint: POST /v1/chinese/feng-shui/kua] [Required: date, gender] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
genderYes
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
solarYearNo
timezoneOffsetNoHours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent.

Output Schema

NameRequiredDescription
groupNo
genderNo
kuaNumberNo
solarYearNo
descriptionNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely useful context in billing (10 credits, Tier 1) and endpoint/grouping, but says nothing about whether results are cached, what happens with time/timezone inputs, or any other runtime trait.

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?

Two dense sentences front-load the purpose, followed by a structured metadata block with group, endpoint, required params, and cost. Every element earns its place; nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need not be described, and annotations cover safety. For a 9-parameter billing tool the description is sufficient to select and invoke, but the absent usage routing and undocumented optional parameters leave it only minimally complete.

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 only 44%, so the description must compensate. It does clarify the two required inputs meaningfully: date is interpreted as a solar year (digit sum) and gender drives the calculation. But seven optional parameters (time, fields, precision, language, timezone, timezoneOffset, solarYear) get no explanation anywhere, leaving a real gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: computes a Personal Kua number from solar-year digit sum plus gender and maps it to East/West group. An agent knows exactly what it produces. It doesn't explicitly differentiate itself from close siblings like bagua or lucky_directions, though the 'Kua' term and 'for direction work' hint at the relationship.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not, or alternative guidance is given. The phrase 'for direction work' implies the output feeds feng shui direction analysis but never names lucky_directions or bagua as the downstream/follow-up tool. Required params and cost are listed as metadata, not usage reasoning.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_chinese_feng_shui_lucky_directionsLucky / Unlucky DirectionsB
Read-onlyIdempotent
Inspect

Personal 4 lucky + 4 unlucky compass directions from Kua. Standard Pa Kua mapping.

[Group: Chinese: Zodiac & Feng Shui] [Endpoint: POST /v1/chinese/feng-shui/lucky-directions] [Required: date, gender] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
genderYes
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
solarYearNo
timezoneOffsetNoHours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent.

Output Schema

NameRequiredDescription
groupNo
luckyNo
unluckyNo
kuaNumberNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds genuinely useful operational context beyond that: the credit cost (10 credits, Tier 1), the HTTP endpoint, and the required inputs. It does not describe output shape, but an output schema exists so that burden is carried elsewhere.

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?

The core sentence is front-loaded and tight, with metadata neatly bracketed below. Nothing is wasted, though the bracket block is mostly transport/bookkeeping rather than agent-facing guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter tool with an output schema and full safety annotations, the description covers the essentials but leaves the optional parameters and the Kua derivation dependency unexplained. An agent can call it correctly with the two required fields, but would not know how to use or omit the rest.

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

Parameters2/5

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

Schema description coverage is only 44% and the description compensates poorly: it merely restates the two required params (date, gender) already enforced by the schema's required array, and mentions 'from Kua' without explaining how the Kua number is derived. The five-plus optional params (time, timezone, fields, precision, solarYear, timezoneOffset) get no semantic help.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: it returns four lucky and four unlucky compass directions derived from the Kua number via standard Pa Kua mapping. This is clear enough to distinguish from generic chart tools, though it never names or contrasts with the close siblings like astroway_chinese_feng_shui_kua or astroway_chinese_feng_shui_bagua.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no statement of when to prefer this over the Kua or Bagua tools, and no prerequisite explanation (e.g. that a Kua number must first be derived). The agent is left to infer usage entirely from the group label and endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_chinese_lunar_dateGregorian to Lunar DateB
Read-onlyIdempotent
Inspect

Chinese lunar month and day for a Gregorian date, including leap-month detection, plus the Chinese New Year of that year.

[Group: Chinese: Zodiac & Feng Shui] [Endpoint: POST /v1/chinese/lunar-date] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoHours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent.

Output Schema

NameRequiredDescription
lunarNo
gregorianDateNo
chineseNewYearNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful context not in annotations: the exact output scope (lunar month/day, leap-month flag, Chinese New Year) and the cost line (10 credits, Tier 1), which informs budgeting. It does not discuss edge cases such as what happens near a day boundary or in a non-China timezone.

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?

One front-loaded sentence that names the conversion and the two value-adds, followed by compact bracketed metadata. No filler sentences; the metadata block is boilerplate but terse and useful for cost/endpoint discovery.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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, and the description does sketch its scope. What is missing is how the optional temporal parameters affect the answer — whether the lunar day is derived from the supplied `time`/`timezone`/`timezoneOffset` — which is the one thing an agent cannot get from the schema alone.

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

Parameters2/5

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

Schema description coverage is a middling 57%, and the description contributes nothing beyond the schema: it repeats only that `date` is required. The six optional parameters (time, timezone, timezoneOffset, precision, fields, language) get no mention, and for a calendar-conversion tool the timezone assumption materially changes the result, so that silence is a real gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: converts a Gregorian date to its Chinese lunar month and day, plus leap-month detection and that year's Chinese New Year. This is clearly distinct from most siblings (e.g. bazi chart builders, tong shu). However it never names the closest relatives (astroway_calendar_lunar_calendar, astroway_chinese_solar_terms), so the agent must infer the boundary itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no alternative tool is named. The only usage signal is the bracketed [Required: date], which is a schema restatement rather than routing advice. An agent could easily confuse this with astroway_calendar_lunar_calendar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_chinese_solar_terms24 Solar Terms (節氣)A
Read-onlyIdempotent
Inspect

The 24 solar terms of a Chinese solar year as exact instants, in UTC and Beijing time. Twelve of them open a BaZi pillar month; the other twelve decide where a leap month falls.

[Group: Chinese: Zodiac & Feng Shui] [Endpoint: POST /v1/chinese/solar-terms] [Required: year] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
yearYes
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

Output Schema

NameRequiredDescription
yearNo
notesNo
termsNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare this a read-only, idempotent, non-destructive, closed-world call, so the safety burden is lifted. The description earns credit by adding context the annotations don't carry: the output is exact instants expressed in both UTC and Beijing time, and it explains the astrological role of the two groups of twelve terms. It says nothing about pagination or volume, but with an output schema present that is largely redundant.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences lead with the resource and scope, followed by compact bracketed metadata for endpoint, required input, and cost. Every line carries signal — no filler, no restated name/title padding.

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?

For a read-only list endpoint with one required parameter, an output schema, and full annotation coverage, the description supplies what an agent needs: what is returned, in which time representations, and why the two halves of the list differ. The remaining gap is the undocumented `language` parameter, which is left to inference.

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 coverage is only 50%: `fields` and `precision` are documented in the schema, while `year` and `language` have no schema descriptions. The description confirms `year` is required and that the scope is one solar year, but never clarifies the accepted year range (2–2899) or what `language` controls. It compensates only partially for the coverage gap, so the 3 baseline is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource — the 24 solar terms of a Chinese solar year — and specifies the return form (exact instants in UTC and Beijing time). This is distinctly more than a restatement of the title. It stops short of naming any sibling tool (e.g. astroway_chinese_lunar_date or astroway_calendar_ingresses) to draw the boundary, so it lands at clear-but-undifferentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence implies the domain of use — solar terms matter because twelve open a BaZi pillar month and twelve decide leap months — which hints at when an agent would want this. But it gives no explicit when-to-use, no contrast with alternatives, and no stated preconditions. Usage is inferred, not prescribed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_chinese_tong_shuTong Shu day: officer and mansionB
Read-onlyIdempotent
Inspect

The almanac reading of one day: day pillar, the day officer (建除十二神) with what the register endorses and forbids, the 28 mansion with its quadrant and planet, and the animal the day clashes.

[Group: Chinese: Zodiac & Feng Shui] [Endpoint: POST /v1/chinese/tong-shu] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoHours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent.

Output Schema

NameRequiredDescription
dateNo
clashNo
notesNo
mansionNo
officerNo
dayPillarNo
solarYearNo
monthBranchNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare the full safety profile (readOnlyHint, idempotentHint, non-destructive, closed-world), so the bar for the description is lower. It adds the cost tier ('10 credits (Tier 1)') and the endpoint, which are genuinely useful behavioral facts, but says nothing about determinism, rate limits, auth, or what happens when optional time/timezone inputs are omitted.

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?

The payload is a single front-loaded sentence that leads with the tool's identity before listing returned fields, and the bracketed metadata block is compact. The enumerative sentence is dense but every clause names a distinct output, so little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values needn't be re-explained, and the annotations cover the safety profile. However, for a 7-parameter day-reading tool sitting next to a near-namesake 'tong_shu_select', the description omits the one thing an agent most needs: which of the two to call and in what situation.

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

Parameters2/5

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

Schema description coverage is only 57%, and four parameters (fields, timezone, precision, timezoneOffset) carry rich descriptions while date, time, and language carry none. The description adds zero parameter semantics to close that gap — it never explains the expected date format, what 'time' does for a day-level reading, or which language values are accepted — so the undocumented parameters remain ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific resource (the almanac reading of one day) and enumerates its contents precisely: day pillar, day officer (建除十二神) with endorsements and prohibitions, the 28 mansion with quadrant and planet, and the clash animal. That is far more specific than the title. It does not, however, distinguish this from the sibling astroway_chinese_tong_shu_select, so an agent cannot tell which of the two to pick from the text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool, no contrast with astroway_chinese_tong_shu_select or astroway_chinese_lunar_date, and no exclusions or prerequisites. The only usage-adjacent facts are the metadata lines 'Required: date' and the credit cost, which are structural rather than guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_chinese_tong_shu_selectTong Shu date selectionB
Read-onlyIdempotent
Inspect

Walk a date range and return the days the almanac endorses for one activity, each with the officer that decided it. Optionally drop the days that clash a person's animal. Range capped at 366 days and a longer one is refused, not truncated.

[Group: Chinese: Zodiac & Feng Shui] [Endpoint: POST /v1/chinese/tong-shu/select] [Required: from, to, activity] [Cost: 20 credits (Tier 2)]

NameRequiredDescriptionDefault
toYes
fromYes
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
activityYes
languageNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
avoidClashWithNo
includeNeutralNo

Output Schema

NameRequiredDescription
daysNo
droppedNo
matchedNo
scannedNo
activityNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds genuinely new behavior: a 366-day hard cap that is refused rather than truncated (explicit error semantics) and a 20-credit Tier 2 cost. It stops short of documenting other failure modes, but the refusal-vs-truncation disclosure is exactly the kind of non-obvious trait that matters.

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?

Two tight sentences with the purpose front-loaded, followed by a compact bracketed metadata block for endpoint, required params, and cost. Nothing in the prose is wasted; the metadata block is largely contextual scaffolding rather than description, which slightly dilutes an otherwise exemplary structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex (8 params, an enum activity, output schema present), so return values correctly need no explanation. Still, with 25% schema coverage the definition leaves includeNeutral's semantics and the avoidClashWith value format ambiguous, and it doesn't say how this differs from the sibling single-date Tong Shu tool. Adequate but with clear gaps.

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 coverage is only 25%, so the description has to carry weight and it partially does: it explains both from/to ("walk a date range," cap of 366) and avoidClashWith ("drop the days that clash a person's animal"). However includeNeutral, language, and the accepted value format for avoidClashWith (a 2-12 char animal string?) are undocumented in both places, leaving real gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Walk a date range and return the days the almanac endorses for one activity, each with the officer that decided it" gives a specific verb (walk/return), resource (Tong Shu almanac days) and unit of output. It is far clearer than a tautology, but it never names its nearest sibling astroway_chinese_tong_shu (single-date almanac) or the many astroway_vedic_muhurat_* alternatives, so the agent must infer the split.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does but not when to reach for it over the single-date astroway_chinese_tong_shu or the Vedic muhurat family. The only conditional statements are param mechanics ("optionally drop days that clash") and a hard range cap, which are constraints rather than usage guidance. No exclusions or alternatives are offered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_chinese_true_solar_timeTrue solar timeB
Read-onlyIdempotent
Inspect

The clock corrected to the sun over the birth longitude, split into the meridian term and the equation of time. China runs one zone across sixty degrees, so a Kashgar birth reads nearly three hours from solar noon on a Beijing clock, which moves the hour pillar.

[Group: Chinese: Zodiac & Feng Shui] [Endpoint: POST /v1/chinese/true-solar-time] [Required: date, time, timezoneOffset, longitude] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeYes
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
longitudeYes
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetYesIgnored when timezone is sent.

Output Schema

NameRequiredDescription
dateNo
noteNo
inputNo
sourceNo
dayShiftNo
clockTimeNo
methodologyNo
trueSolarTimeNo
hourBranchNoteNo
equationOfTimeMinutesNo
totalCorrectionMinutesNo
longitudeCorrectionMinutesNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds the useful fact that the result is split into two named components (meridian term, equation of time) and, via the appended metadata, the endpoint and credit cost — but says nothing about latency, auth, or precision behavior.

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?

The core is two front-loaded sentences: the definition first, then a concrete motivating example. The Kashgar anecdote is illustrative rather than wasteful, and the bracketed metadata is compact, though the prose is slightly evocative for a technical tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need not be explained, and annotations cover the safety profile. Still, for an 8-parameter computation tool the description does not explain how the two output components are meant to be used or when the tool is the right choice, leaving gaps an agent must fill by inference.

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 50%: the complex parameters (timezone, precision, fields) are already documented in the schema, while date, time, longitude and language rely on regex/range only. The description adds only that the longitude is the birth longitude, and its 'Required' line merely restates schema-required fields, so it does not meaningfully compensate for the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific output — a clock corrected to the sun over the birth longitude, decomposed into the meridian term and the equation of time — and ties it to a concrete consequence (the hour pillar moving). It is clear about what the tool produces, though it never states an explicit action verb and does not distinguish itself from sibling tools such as bazi_hour_pillar or chinese_solar_terms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied via the Kashgar illustration: it signals that the tool matters for births far from a zone's standard meridian, particularly where the hour pillar is at stake. There is no explicit 'use this when X' or 'prefer Y instead' guidance and no stated prerequisites or ordering relative to bazi tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_chinese_zodiac_animalChinese Zodiac AnimalA
Read-onlyIdempotent
Inspect

Animal sign of the birth year, bounded by the exact Lichun instant, plus the full pillar (stem + branch + element). yearStart and yearEnd are the two Lichun instants that bound the solar year, in UTC and Beijing time. Pass time + timezoneOffset for births on the boundary day.

[Group: Chinese: Zodiac & Feng Shui] [Endpoint: POST /v1/chinese/zodiac/animal] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
solarYearNo
timezoneOffsetNoHours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent.

Output Schema

NameRequiredDescription
stemNo
glyphNo
animalNo
branchNo
pillarNo
elementNo
yearEndNo
solarYearNo
yearStartNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description still adds real domain behavior: the Lichun instant governs the year boundary, yearStart/yearEnd are reported in both UTC and Beijing time, and boundary-day births need finer inputs. That is more than the annotations provide.

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?

Three front-loaded sentences that lead with the core output and then the boundary semantics, with no filler. Slightly dense in the second clause, and the yearStart/yearEnd mention sits before the agent has been told those are return fields.

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 values need no exposition, yet the description still explains the Lichun boundary and the UTC/Beijing dual reporting, which is the main source of ambiguity for this calculation. Cost tier and required parameter are also carried in the metadata block. Missing only sibling differentiation.

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 50%: timezone, timezoneOffset, fields and precision are documented in the schema, while date, time, language and solarYear are not. The description compensates only for time/timezoneOffset via the boundary-day rule; it adds nothing about solarYear or language, and its yearStart/yearEnd references describe outputs rather than inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and scope: the animal sign of the birth year, explicitly bounded by the Lichun instant, plus the full pillar (stem + branch + element). This clearly separates it from a generic zodiac lookup. It does not, however, differentiate itself from the close siblings astroway_chinese_zodiac_inner_animal, _secret_animal, or _element, which an agent will likely confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a conditional usage rule for one edge case ('Pass time + timezoneOffset for births on the boundary day'), which is genuine invocation context. But it never states when to choose this tool over the zodiac siblings (inner animal, secret animal, element, compatibility), leaving the main routing decision to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_chinese_zodiac_compatibilityAnimal CompatibilityB
Read-onlyIdempotent
Inspect

Pair compatibility score (0-100) using San He trine + Liu Chong conflict-pair canon.

[Group: Chinese: Zodiac & Feng Shui] [Endpoint: POST /v1/chinese/zodiac/compatibility] [Required: person1, person2] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
person1Yes
person2Yes
languageNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

Output Schema

NameRequiredDescription
person1No
person2No
compatibilityNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so safety is covered. The description contributes the deterministic scoring canon and the 0-100 range, which is genuine added context, but says nothing about what the response contains, rate limits, or determinism caveats beyond idempotence.

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?

The core sentence is front-loaded and wastes no words; the bracketed metadata block is terse and scannable. Slightly redundant in that Required/Cost duplicate structured data, but the overall package is compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and annotations cover the safety profile, so the essentials are present. However, for a 5-parameter tool with nested person objects and 40% schema coverage, the description leaves input construction and any guidance on interpreting the score to inference, making it only minimally adequate.

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

Parameters2/5

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

Schema description coverage is only 40% and the description adds almost nothing: it merely repeats that person1 and person2 are required (already in the schema's required array). It does not explain the nested person shape (date/time/timezone/timezoneOffset), nor the compact-mode 'fields' and 'precision' parameters, so the low-coverage gap is not compensated for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource (compute a pair compatibility score on the 0-100 scale) and even names the underlying method (San He trine + Liu Chong canon). This distinguishes it from single-person siblings like astroway_chinese_zodiac_animal or astroway_chinese_zodiac_element, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage signals are the metadata tags '[Required: person1, person2]' and '[Cost: 10 credits (Tier 1)]', which restate the schema's required array and pricing rather than telling the agent when to pick this over e.g. astroway_mayan_compatibility or a relational synastry score. No when-to-use or when-not-to-use guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_chinese_zodiac_elementChinese ElementC
Read-onlyIdempotent
Inspect

Fixed-branch element + cycling-stem element + yin/yang for given solar year.

[Group: Chinese: Zodiac & Feng Shui] [Endpoint: POST /v1/chinese/zodiac/element] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
solarYearNo
timezoneOffsetNoHours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent.

Output Schema

NameRequiredDescription
yinNo
solarYearNo
descriptionNo
fixedElementNo
cyclingElementNo

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds the endpoint and a cost tier (10 credits, Tier 1), which is operationally useful, but it says nothing about auth needs, rate limits, or output shape beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core sentence is front-loaded and terse; the bracketed metadata block adds endpoint, group, and cost in a scannable format. However, the metadata is boilerplate that largely restates structured information rather than adding value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/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 values need not be described, but for an 8-parameter tool with 50% schema coverage and no usage guidance, the description omits the date/solarYear interaction, the role of time/timezone for a year-based computation, and when to prefer it over sibling Zodiac tools.

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

Parameters2/5

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

Schema description coverage is only 50%, and the description does not compensate. It asserts a 'given solar year' while the schema makes `date` required and `solarYear` an optional bounded integer (1800–2200); that date-vs-solarYear relationship — arguably the central input decision — is left unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific computed output — fixed-branch element, cycling-stem element, and yin/yang for a solar year — which is concrete and distinguishes it from neighboring Zodiac tools (animal, compatibility, inner/secret animal). Missing sibling differentiation explicitly but the resource and returned attributes are clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no conditions, and no mention of alternative tools such as astroway_chinese_zodiac_animal or bazi element tools. Only boilerplate requirement/cost metadata is given, which does not tell an agent when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_chinese_zodiac_inner_animalInner Animal (month branch)B
Read-onlyIdempotent
Inspect

Month-branch animal: represents inner motivations and private self.

[Group: Chinese: Zodiac & Feng Shui] [Endpoint: POST /v1/chinese/zodiac/inner-animal] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
solarYearNo
timezoneOffsetNoHours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent.

Output Schema

NameRequiredDescription
glyphNo
descriptionNo
innerAnimalNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is fully covered. The description adds genuinely useful operational context — the endpoint, the required input, and a 10-credit Tier 1 cost — but says nothing about output shape or failure modes beyond that.

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?

The semantic sentence is front-loaded and the metadata block is compact and scannable. Nothing is redundant, though the whole thing is on the terse side for an 8-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need not be explained, and the cost/endpoint/required-input metadata is present. The gap is conceptual routing: with four Chinese-zodiac siblings, the agent gets no help choosing among them, which is the main completeness shortfall for a simple read tool.

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 coverage is 50% with 8 parameters, and the description only echoes the single required one ('date'), adding no syntax or interpretation beyond the schema. The schema itself carries the substantive param docs (timezone, timezoneOffset, fields, precision), so a baseline 3 is appropriate rather than a penalty.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource — the month-branch animal — and defines its meaning ('inner motivations and private self'), so an agent knows this computes the Inner Animal rather than the year animal. However, it never distinguishes itself from close siblings like astroway_chinese_zodiac_animal, astroway_chinese_zodiac_secret_animal, or astroway_chinese_zodiac_element, all of which sit in the same group.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no named alternative. The '[Required: date]' line is a schema restatement, not a usage condition, and nothing tells the agent when Inner Animal is the right call versus Secret Animal or Element.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_chinese_zodiac_secret_animalSecret Animal (hour branch)B
Read-onlyIdempotent
Inspect

Hour-of-birth branch animal: represents the deepest self. Requires birth time.

[Group: Chinese: Zodiac & Feng Shui] [Endpoint: POST /v1/chinese/zodiac/secret-animal] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
solarYearNo
timezoneOffsetNoHours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent.

Output Schema

NameRequiredDescription
glyphNo
descriptionNo
secretAnimalNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's added value is the 10-credit cost and the birth-time precondition. Note a mild inconsistency: the schema marks 'time' as optional while the prose says birth time is required. The description adds some billing/input context, but nothing about pagination or error behavior.

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?

Two front-loaded sentences followed by a compact metadata block (group, endpoint, required, cost). No filler, and the key constraint and price are immediately visible; only the bracketed metadata formatting is slightly noisy.

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 annotations covering safety and an output schema present, the description need not explain return values. It supplies group, endpoint, required input, and cost, leaving only sibling differentiation and the time/timezone handling implicit.

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

Parameters2/5

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

Eight parameters with only 50% schema description coverage, so the description should compensate more than it does. It only signals that date is required and time is needed, while language, solarYear, and the compact/fields behavior go unaddressed; 'Requires birth time' also conflicts with the schema where time is not required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names a specific resource and scope: 'Hour-of-birth branch animal' tied to 'the deepest self'. That is concrete enough to distinguish it from generic zodiac lookups, but it never contrasts itself with the very close sibling astroway_chinese_zodiac_inner_animal, which an agent could easily confuse with it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Requires birth time' states a precondition that narrows when this tool is applicable, which is genuine usage guidance. However there is no explicit when-to-use/when-not-to-use statement and no routing to siblings such as astroway_chinese_zodiac_animal or astroway_chinese_zodiac_inner_animal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_cost_estimateCost EstimateA
Read-onlyIdempotent
Inspect

Estimate the credit cost of one or more endpoints WITHOUT invoking them. Returns total + per-endpoint breakdown with tier annotations. Useful when planning multi-step workflows: estimate first, ask user confirmation, then invoke. Cache TTL 5 min.

NameRequiredDescriptionDefault
endpointsYesEndpoint paths to estimate, e.g. ["/chart", "/synastry", "/reports/natal"]. Leading slash optional.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety bar is low; the description still adds real value by clarifying that endpoints are NOT invoked and that results are cached with a 5-minute TTL. It also discloses the return shape (total + per-endpoint breakdown with tier annotations), which is meaningful since no output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core capability and the non-invocation guarantee, followed by workflow guidance and the cache note. Nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema, the description explains the return value, and the invocation-free and cache behaviors are covered. For a one-parameter, read-only estimator this is fully sufficient.

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% and the single 'endpoints' parameter is fully documented with examples and the leading-slash rule in the schema. The description only restates 'one or more endpoints' without adding format or constraint detail beyond the schema, so 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 and resource ('Estimate the credit cost of one or more endpoints') and immediately pins the scope with 'WITHOUT invoking them', which no sibling tool does. An agent can distinguish this from the many invocation/report siblings at a glance.

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 explicit workflow guidance: 'estimate first, ask user confirmation, then invoke' for multi-step planning. This is clear when-to-use context, though it names no alternative tool or when-not-to-use condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_mcp_agent_debateMCP Agent DebateC
Read-onlyIdempotent
Inspect

2 personas debate a topic, multi-round transcript.

[Group: MCP Advanced] [Endpoint: POST /v1/mcp/agent-debate] [Required: topic, agentA, agentB] [Cost: 100 credits (Tier 4)]

NameRequiredDescriptionDefault
chartNoBirth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems.
topicYes
agentAYes
agentBYes
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
roundsNo
languageNoen
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

Output Schema

NameRequiredDescription
transcriptNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds genuinely useful operational context — cost (100 credits, Tier 4), the required-parameter set, and the endpoint. It stays silent on runtime behavior an agent might care about, such as whether the multi-round debate is long-running, streamed, or bounded in output size. The POST endpoint is not a contradiction of readOnlyHint, but it is worth noting.

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?

Tight and well front-loaded: the core operation comes first, then compact bracketed metadata. Every line carries information (endpoint, required fields, cost) rather than filler. Its brevity is a virtue, though it edges into under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/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 values need not be described. But for an 8-parameter tool with a nested chart object, aless-than-40% coverage, and a cost of 100 credits, the description leaves critical gaps — most importantly the semantics of agentA/agentB and the effect of rounds/language.

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

Parameters2/5

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

Schema description coverage is only 38%, so the description carries a heavier burden, and it does not meet it. It restates the three required parameters that the schema already marks as required, but never explains what agentA/agentB actually are (persona strings? model IDs?) or what topic expects. Optional params like rounds, language, and fields get no mention.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Uses a specific verb-and-resource phrasing: '2 personas debate a topic, multi-round transcript.' An agent can grasp the operation immediately. However it does not differentiate itself from close siblings such as astroway_mcp_multi_agent_coordinate, astroway_mcp_ai_chat, or astroway_mcp_ai_comparison_coach, which plausibly overlap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no named alternative. The bracketed metadata lists required fields and cost but never says when this debate tool is preferable to multi-agent coordination or AI chat. The [Group: MCP Advanced] tag is organizational, not decision-supporting.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_mcp_agent_pool_statusMCP Agent Pool StatusC
Read-onlyIdempotent
Inspect

8 personas with specialties.

[Group: MCP Advanced] [Endpoint: GET /v1/mcp/agent-pool-status] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

Output Schema

NameRequiredDescription
noteNo
countNo
personasNo

TDQS

C2.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint false, and openWorldHint false. The description adds useful behavioral context in the form of the cost (10 credits, Tier 1) and HTTP method (GET), but does not describe what the status output contains or any auth/rate-limit details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but poorly structured: a vague fragment followed by bracketed metadata lines. It is under-specified rather than concise, and the opening line does not front-load a clear purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists and annotations cover the safety profile, the description still leaves the agent without a clear statement of what the tool does or when to call it. For a status endpoint in a large sibling set, this is a significant omission.

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 the two optional parameters (fields, precision) are fully documented in the schema itself. The description adds no parameter meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives only a fragment, '8 personas with specialties,' which hints at pool composition but never states that this tool returns agent pool status or what that status contains. It lacks a clear verb and resource, and does not distinguish itself from siblings like astroway_mcp_multi_agent_coordinate or astroway_agent_tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool, when not to use it, or which sibling tool is the alternative. The description contains only metadata tags, not usage instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_mcp_ai_chatChart-grounded AI chatA
Read-only
Inspect

Chat answered from the positions we computed for this birth moment, not from the model's memory of a sun sign. Carries up to 10 turns of history, replies in 21 languages, and takes four voices through persona. Send your own provider key and the turn costs 5 credits instead of the endpoint price.

[Group: AI & MCP] [Endpoint: POST /v1/ai/chat] [Required: message] [Cost: 100 credits (Tier 4)]

NameRequiredDescriptionDefault
chartNoBirth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems.
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
historyNo
messageYes
personaNoastrologer
languageNouk
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

Output Schema

NameRequiredDescription
modelNo
replyNo
tokensNo
personaNo
languageNo
disclaimerNo
duration_msNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only, non-destructive, open-world behavior, so the bar is lower; the description still adds real behavioral facts beyond them — a 10-turn history ceiling, 21 output languages, four selectable voices via persona, and a concrete pricing rule (5 credits with your own provider key vs. the endpoint price). It stops short of stating auth requirements or what happens when the history limit is exceeded. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: the differentiator first, capabilities second, pricing last, followed by a compact metadata block (group, endpoint, required param, tier cost). Every clause carries new information and nothing is repeated from the schema.

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 an output schema present the description needn't explain return values, and annotations cover the safety profile, so what remains — what the tool is for, its capability envelope, and its cost model — is covered. The main gap is that nothing tells an agent when this endpoint should be picked over the other AI/agent siblings.

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?

Top-level schema description coverage is only 43% (chart, fields and precision documented; message, persona, language and history not), so the description must compensate and partially does — it explains persona (four voices), history (~10 turns) and language (21 options). It says nothing about chart, fields compact-mode paths, or precision, though the nested chart schema does carry unusually rich self-documentation for those.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — an AI chat answered from computed natal-chart positions rather than the model's prior knowledge of a sun sign — and quantifies scope (10 turns, 21 languages, 4 personas). It clearly implies a different product from sibling AI utilities such as astroway_mcp_ai_explain_aspect or astroway_mcp_ai_comparison_coach, but never names them, so the differentiation is by tone rather than explicit contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied rather than stated: the credit-price note ('send your own provider key and the turn costs 5 credits instead of the endpoint price') hints this is a paid, higher-tier call, and 'chart-grounded' hints the input needs birth data. There is no explicit when-to-use-it, when-not-to, or routing rule against the other chat/agent endpoints in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_mcp_ai_comparison_coachComparison CoachB
Read-only
Inspect

Coach two charts on relationship dynamics.

[Group: AI & MCP] [Endpoint: POST /v1/ai/comparison-coach] [Required: chart1, chart2, question] [Cost: 100 credits (Tier 4)]

NameRequiredDescriptionDefault
chart1YesBirth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems.
chart2YesBirth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems.
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNouk
questionYes
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

Output Schema

NameRequiredDescription
coachingNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true and idempotentHint=false, so the safety profile is covered. The description adds genuinely useful operational context (the 100-credit Tier 4 cost and the POST endpoint), but says nothing about the fact that an LLM-backed coach may return non-deterministic prose, what latency to expect, or what deprecates the idempotentHint=false signal.

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?

The four lines are tight and the purpose sentence is front-loaded ahead of the bracketed metadata block. Nothing is padded, though the metadata lines are boilerplate rather than definitional content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need not be explained, and the cost/endpoint block is present. But for a six-parameter AI tool embedded among dozens of similar compatibility siblings, the description lacks any hint of what the coaching output contains or what makes a good 'question', leaving the agent to guess at scope.

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 67% and the nested chart objects carry extensive inline documentation (formats, rejected short names, timezone semantics, houseSystem letters), so the schema does the heavy lifting. The description only restates the required parameters (chart1, chart2, question), adding no meaning for question, language, fields or precision. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (coach), the resources (two charts) and the domain (relationship dynamics), so the agent knows this produces interpretive guidance rather than raw chart data. It does not, however, distinguish itself from the many sibling compatibility tools (ashtakoot, dashakoota, compatibility_full) or from astroway_mcp_ai_chat, so sibling differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance, and no alternative is named. A reader cannot tell whether to reach for this AI coach versus the deterministic Vedic compatibility endpoints or multi_chart_context. The only constraints given are required parameters and cost, which are not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_mcp_ai_explain_aspectExplain AspectB
Read-only
Inspect

Detailed explanation of an aspect between two planets.

[Group: AI & MCP] [Endpoint: POST /v1/ai/explain-aspect] [Required: planet1, planet2, aspectType] [Cost: 100 credits (Tier 4)]

NameRequiredDescriptionDefault
chartNoBirth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems.
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
planet1Yes
planet2Yes
languageNouk
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
aspectTypeYes

Output Schema

NameRequiredDescription
explanationNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true and idempotentHint=false, so the safety profile is covered without the description. The description does add genuinely useful operational context not present in the annotations: the credit cost (100 credits, Tier 4) and the endpoint. However it never explains why a read-only operation is flagged non-idempotent (repeated calls likely yield differently worded narrative), which is the one behavioral trait an agent would most want here.

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?

The purpose sentence is front-loaded and the payload is small. The '[Required: planet1, planet2, aspectType]' line duplicates the schema's required array, but the cost and endpoint lines justify their space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/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 values need not be described. But for a 7-parameter tool with a nested chart object and LLM-backed generation, the description omits the valid domain for planet1/planet2, any usage guidance versus explain_transit, and any hint about generation latency or variable output.

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?

The description lists the three required parameters, but schema coverage is only 43% and planet1/planet2 carry no description, no enum and no example anywhere in the schema, so the agent must guess the accepted form (planet names such as 'Mars'?). The description does not compensate for that gap, which is the weakest part of the definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource: 'explanation of an aspect between two planets.' An agent can tell it apart from the sibling astroway_mcp_ai_explain_transit by the resource alone, but the description never makes that contrast explicit nor states what kind of explanation is produced.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of the sibling explain_transit as an alternative. The only contextual cues are bracketed metadata (endpoint, required fields, credit cost), which tell the agent what it costs but not when it should be chosen.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_mcp_ai_explain_transitExplain TransitB
Read-only
Inspect

Explain a current transit hitting your natal chart.

[Group: AI & MCP] [Endpoint: POST /v1/ai/explain-transit] [Required: chart, transitDate, transitPlanet, natalPlanet, aspectType] [Cost: 100 credits (Tier 4)]

NameRequiredDescriptionDefault
chartYesBirth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems.
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNouk
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
aspectTypeYes
natalPlanetYes
transitDateYes
transitPlanetYes

Output Schema

NameRequiredDescription
explanationNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description usefully adds the cost (100 credits, Tier 4) and the endpoint, which annotations do not provide. It does not explain why idempotentHint is false for a read-only call, nor what the AI explanation entails.

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?

The description is short and front-loads the purpose before the bracketed metadata. The bracketed group/endpoint/required/cost lines are slightly noisy but each carries compact information, so there is little waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need not be described. But for a 5-required-parameter tool with a near-twin sibling, the description omits the disambiguation, parameter usage, and cost implications an agent needs before committing. It is minimally adequate rather than complete.

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

Parameters2/5

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

Schema description coverage is only 38%, so the description should compensate, but it merely restates the five required parameter names that the schema already marks required and says nothing about what transitPlanet, natalPlanet, aspectType accept or how the optional fields/precision/language parameters behave. It adds no meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Explain a current transit hitting your natal chart.' An agent can grasp the purpose immediately. However, it never distinguishes itself from the close sibling astroway_mcp_ai_explain_aspect, leaving the borderline case ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no comparison to the near-identical sibling astroway_mcp_ai_explain_aspect. The '[Required: ...]' and '[Cost: ...]' lines are metadata, not routing guidance. The agent gets no help deciding between this and other AI tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_mcp_multi_agent_coordinateMCP Multi-Agent CoordinateC
Read-onlyIdempotent
Inspect

Run N personas in parallel + LLM synthesis.

[Group: MCP Advanced] [Endpoint: POST /v1/mcp/multi-agent-coordinate] [Required: question, agents] [Cost: 100 credits (Tier 4)]

NameRequiredDescriptionDefault
chartNoBirth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems.
agentsYes
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNoen
questionYes
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

Output Schema

NameRequiredDescription
synthesisNo
individualNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered structurally. The description usefully adds the cost (100 credits, Tier 4) and the endpoint/group, but says nothing about latency, response shape of the synthesis, or how many personas are permitted (schema caps at 4).

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 operative sentence, followed by compact bracketed metadata; there is no filler prose. The brevity is close to under-specification rather than pure conciseness, keeping it out of the top band.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/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 values need not be described, and cost is disclosed. However, for a tool whose whole contract is choosing personas and a question, the description never explains what the agents array should contain, leaving the most decision-relevant input undocumented across both description and schema.

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

Parameters2/5

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

Schema coverage is only 50% and the description adds no meaning beyond listing the two required names. Critically, the 'agents' array is the defining parameter and neither the schema nor the description explains what identifiers it accepts, and 'question' semantics are equally unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Run), resource (N personas) and mechanism (parallel + LLM synthesis), which is more informative than a tautology. It does not name or distinguish itself from the obvious sibling astroway_mcp_agent_debate, so the agent must infer the difference between coordinated parallel personas and a debate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no alternatives are named despite several closely related siblings (agent_debate, multi_chart_context, ai_chat). The '[Required: question, agents]' line just restates the schema's required array rather than telling the agent when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_mcp_multi_chart_contextMCP Multi-Chart ContextC
Read-only
Inspect

Compact context for MCP agents working across multiple charts.

[Group: AI & MCP] [Endpoint: POST /v1/mcp/multi-chart-context] [Required: charts] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
chartsYes
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
intentNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

Output Schema

NameRequiredDescription
notesNo
intentNo
summariesNo
chartCountNo
contextHashNo
summaryStringNo

TDQS

C2.3/5.0
Behavior3/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 genuinely useful non-annotation behavior: a 10-credit (Tier 1) cost and the POST endpoint. It says nothing about what the operation returns or how it behaves across the 1-6 chart array, so it earns only partial credit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loads the one-sentence purpose, with well-organized bracketed metadata. But that metadata is machine-oriented boilerplate (group/endpoint/required) and the prose line is largely redundant with the title, so the brevity reflects under-specification as much as discipline.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/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 values need not be explained, but for a tool taking up to six nested chart objects with four intent modes and compact-mode fields/precision, the description is far too thin. It gives an agent no way to know what a "compatibility" vs "forecast" run produces or why to pick it over the many neighbouring multi-chart tools.

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

Parameters2/5

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

The only parameter content is "[Required: charts]", which merely repeats the schema's required array, adding zero meaning. The description says nothing about `fields`, `precision`, or the four `intent` modes — the latter has no schema description at all despite being the main selector. At 50% schema coverage this is a real gap it fails to fill.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Compact context for MCP agents working across multiple charts" largely restates the name/title (multi-chart context) without naming an action or an output. The word "context" is undefined — it never says whether this computes cross-chart aspects, comparison summaries, or group forecasts. Only the bare notion "multiple charts" distinguishes it from the many single-chart siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance at all: no trigger conditions, no prerequisites, and no routing against the large sibling set (e.g. astroway_mcp_multi_agent_coordinate or astroway_mcp_ai_comparison_coach). The `intent` enum (compatibility/family/group/forecast) suggests several distinct use cases, but the description never explains when to choose which.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_mcp_streamingMCP Streaming ChatB
Read-only
Inspect

Server-Sent Events streaming chat completion with optional chart context.

[Group: AI & MCP] [Endpoint: POST /v1/mcp/streaming] [Required: message] [Cost: 100 credits (Tier 4)]

NameRequiredDescriptionDefault
chartNoBirth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems.
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
messageYes
languageNouk
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description adds genuinely non-derivable behavior: the response is delivered as an SSE stream rather than one payload, crediting at 100 credits (Tier 4), and the concrete endpoint. It omits auth requirements and why idempotentHint=false, which keeps it out of 5 territory.

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?

Short and front-loaded: the core capability leads, with bracketed metadata (group, endpoint, required param, cost) following compactly. Every line carries information, though the template-style [Group:]/[Endpoint:] format is more machine header than prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a streaming tool with no output schema and a nested chart parameter, the definition covers the essential facts (SSE transport, required message, optional chart, cost). It does not describe what the stream emits or how chart context influences the completion, leaving gaps an agent would notice mid-invocation.

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 60%, with the nested chart object heavily documented in the schema itself (timezone, houseSystem letters, lat/lon full names, ayanamsa). The description adds only 'optional chart context', which restates the schema's required list. Baseline 3 is appropriate when the schema does most of the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+mechanism: 'Server-Sent Events streaming chat completion with optional chart context.' An agent can tell this is a streaming chat tool rather than a static computation. It does not explicitly name or contrast with the closest sibling astroway_mcp_ai_chat, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance. Nothing tells the agent to prefer this over astroway_mcp_ai_chat (non-streaming chat) or astroway_mcp_tool_call_stream; the streaming qualifier implies a context but the choice is left entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_mcp_tool_call_streamMCP Tool-Call StreamC
Read-onlyIdempotent
Inspect

SSE-stream of a tool call envelope.

[Group: MCP Advanced] [Endpoint: POST /v1/mcp/tool-call-stream] [Required: tool] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
argsNo
toolYes
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
languageNoen
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds two genuinely useful behavioral facts annotations cannot express: delivery is server-sent events rather than a single response, and the call costs 10 credits (Tier 1). It still omits stream termination, error-over-stream behavior, and whether partial results can be replayed.

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?

Very short and front-loaded: one sentence of purpose followed by structured metadata brackets. Nothing is wasted, though the single sentence is so compressed that the core mechanics of the tool are never actually spelled out.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with a nested free-form args object, a free-text tool selector, compact-mode options, and no output schema, this is under-specified. An agent cannot tell what the stream emits, how to consume it, or what valid values for tool are (presumably must match astroway_mcp_tools_list entries), all of which are load-bearing here.

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

Parameters2/5

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

Schema description coverage is only 40% across 5 parameters, and the description adds nothing beyond confirming that tool is required. args (arbitrary nested object forwarded to the target tool), language, and the compact-mode interplay of fields/precision are left entirely to the schema; the description should explain that args are passed through verbatim to the named tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"SSE-stream of a tool call envelope" names a delivery mechanism and an artifact, so the agent knows this is a streaming wrapper that executes a named tool. However, "tool call envelope" is opaque jargon and the definition never states the key fact that this proxies/executes another MCP tool by name, nor how it differs from the sibling astroway_mcp_streaming or astroway_mcp_tools_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage cue is the bracketed "[Required: tool]" — there is no when-to-use, no when-not-to-use, and no routing to an alternative despite multiple plausible siblings (astroway_mcp_streaming, astroway_mcp_tools_list, astroway_agent_tools). The agent must guess whether streaming is preferred over a plain call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_mcp_tools_listMCP Tools ListC
Read-only
Inspect

Auto-generated tool manifest for MCP clients (modelcontextprotocol/2025-03 spec).

[Group: AI & MCP] [Endpoint: GET /v1/mcp/tools-list] [Cost: see your plan — endpoint not in the public credit manifest]

NameRequiredDescriptionDefault
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

Output Schema

NameRequiredDescription
specNo
notesNo
toolsNo
serverNo
toolCountNo

TDQS

C2.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context the annotations do not: the concrete GET endpoint and a cost caveat that this scope is not in the public credit manifest. It does not explain response size or pagination for a manifest that presumably enumerates all tools.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single purpose sentence is front-loaded and the metadata tags are compact, but the bracketed group/endpoint/cost lines are boilerplate scaffolding rather than description content. Nothing is wasted, yet very little informational payload is delivered.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/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 documentation is not required, but for a meta-tool that enumerates the entire tool surface, the description never explains the scenario in which an agent would reach for it instead of directly invoking a domain tool. Given the enormous sibling set, this leaves a real gap.

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 both `fields` and `precision` are already documented in the schema with examples and constraints. The description contributes no additional parameter meaning; the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Auto-generated tool manifest for MCP clients" largely restates the name 'MCP Tools List' without a distinct verb or an explanation of what the response actually contains. It gives an endpoint and spec version but no functional description that would distinguish its purpose from any other listing endpoint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when an agent should call this tool, what problem it solves, or how it relates to the ~190 sibling tools. The only contextual cues are the bracketed [Group]/[Endpoint]/[Cost] metadata tags, which are not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_ziwei_chartFull Chart (computed)B
Read-onlyIdempotent
Inspect

Real star placement: soul and body palaces, the five-element class, all 14 main stars plus auxiliaries, the twelve stages, the 12 decade limits and the 四化 marked on the stars that carry them.

[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/chart] [Required: date, time, gender] [Cost: 20 credits (Tier 2)]

NameRequiredDescriptionDefault
ageNo
dateYes
timeYes
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
genderYes
schoolNo
fixLeapNo
languageNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
dayDivideNo
longitudeNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
yearDivideNo
tianmaSchoolNo
trueSolarTimeNo
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
lunarNo
ziweiNo
palacesNo
computedNo
soulPalaceNo
fiveElementClassNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly/idempotent/openWorld, so the description's small cost/endpoint/required-input footer adds operational context (20 credits, POST), but it says nothing about computational cost, response size, or fallback behavior when timezone is unreliable.

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?

Two compact sentences and a bracketed metadata block; the chart contents come first and the group/endpoint/cost footer is skimmable, with no obvious padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 16-parameter computed chart with an output schema, the description covers the output scope but omits any guidance on the school/timezone/dayDivide switches that materially change results, leaving a gap in complete call guidance.

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 coverage is 25%, so the description is expected to compensate, but it lists no parameters at all. The schema itself carries rich timezone/dayDivide/school/fixLeap semantic detail, so the description neither helps nor harms much beyond repeating Required: date, time, gender.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the tool's output with specific contents (soul/body palaces, five-element class, 14 main stars, twelve stages, 12 decade limits, 四化). This distinguishes it from siblings like astroway_ziwei_main_stars or astroway_ziwei_full_chart, though it never explicitly states that this is the complete chart versus those narrower siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance. The endpoint metadata supplies required inputs and credits, but nothing routes the agent between this and the many ziwei siblings (main_stars, four_transformations, twelve_palaces, palace_*).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_ziwei_four_transformationsFour Transformations (四化)A
Read-onlyIdempotent
Inspect

The four stars activated by the birth year stem: 化禄 fortune, 化权 authority, 化科 repute, 化忌 obstruction. The one part of Zi Wei computable without star placement. Seven stems are agreed across traditions; for the three that are not (戊 庚 壬) every school reading ships in schoolVariants, and school switches the headline answer.

[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/four-transformations] [Required: date] [Cost: 10 credits (Tier 1)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
schoolNo
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
notesNo
schoolNo
disputedNo
yearStemNo
solarYearNo
schoolVariantsNo
transformationsNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, non-open-world, so the safety profile is covered. The description adds genuine behavioral context beyond that: that seven stems are tradition-invariant, that three vary, that every variant ships in `schoolVariants`, and that `school` swaps the headline answer. This discloses output-shaping behavior an agent would otherwise not know.

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?

The core is two front-loaded sentences that define the tool before the caveats, with no wasted prose. The trailing metadata block (group/endpoint/required/cost) is boilerplate but compact and useful for the required param and cost.

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 values need not be spelled out. For a 7-param tool with one required field, the description supplies the conceptual model and the school-variant behavior. It is adequate, though it says nothing about the time/precision/tz params that could matter for date resolution.

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 57% across 7 params. The description gives real meaning to `school` (it switches the headline answer and co-exists with schoolVariants), which the bare enum does not. The other params (time, fields, precision, timezone, timezoneOffset) are left entirely to the schema. Baseline 3 fits.

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?

The description names a specific resource (the four transformations 四化), defines each of the four stars (化禄/化权/化科/化忌), and carves out its niche versus the star-placement siblings by stating it is 'the one part of Zi Wei computable without star placement'. An agent can tell what it returns and how it differs from ziwei_main_stars or ziwei_full_chart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the school-dependent behavior and that seven stems are agreed while three (戊 庚 壬) vary, which implies when `school` matters, but it never states when to call this versus an alternative tool or any prerequisite beyond the required `date`. Usage is inferable but not routed explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_ziwei_full_chartFull Chart (deprecated)A
Read-onlyIdempotent
Inspect

Deprecated 2026-09-08, sunset 2027-11-26. Year pillar + animal + a 12-palace overview, identical for every birth date. Use POST /ziwei/chart, which actually places the stars.

[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/full-chart] [Required: date] [Cost: 5 credits (Tier ½)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
notesNo
animalNo
palacesNo
solarYearNo
disclaimerNo
yearPillarNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description still adds decisive behavior the annotations cannot convey: the output is 'identical for every birth date', i.e. the input has no effect, plus a deprecation/sunset timeline and the 5-credit cost.

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?

The deprecation warning and sunset date are front-loaded, followed by what the tool returns and the redirect, in three short sentences. The bracketed Group/Endpoint/Required/Cost lines are compact structured metadata rather than prose bloat.

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 values need not be described, and the description supplies deprecation status, correct replacement, required parameter and credit cost. The only gap is that the non-date parameters are left entirely to the schema.

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 67%, with timezone, fields and precision documented in the schema and only date/time/timezoneOffset undocumented. The description adds one meaningful semantic point (the date does not change the result) but explains none of the compact-mode or timezone parameters, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the concrete payload (year pillar + animal + 12-palace overview) and explicitly distinguishes itself from the sibling astroway_ziwei_chart by noting that sibling 'actually places the stars'. The verb is implicit (it returns data) rather than stated, which keeps it just short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit deprecation and sunset dates and routes the agent to the replacement ('Use POST /ziwei/chart'), which is the when-not-to-use and alternative guidance an agent needs. Nothing about selection is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_ziwei_main_stars14 Main StarsA
Read-onlyIdempotent
Inspect

The 14 main stars in canonical order (Zi Wei series, then Tian Fu series) with theme/archetype. Reference table: does not vary with the date.

[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/main-stars] [Required: date] [Cost: 5 credits (Tier ½)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
disclaimerNo
fourteenMainStarsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false). The description adds genuinely non-annotation context: the output is date-independent and the call costs 5 credits (Tier ½), plus the endpoint. It does not describe return shape or auth, but the added cost/determinism context is real value.

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?

Two front-loaded sentences carry the substance, followed by a compact metadata block. No padding or repetition; the ordering is sensible.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and rich annotations exist, so the description need not explain returns, and it adequately covers the reference-table purpose. The unresolved tension between 'required: date' and 'does not vary with the date' is the one gap an agent would want clarified.

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 coverage is 67% and the description adds no syntax or meaning for 'date', 'time', 'fields', 'timezone', 'precision', or 'timezoneOffset'. It actually creates a mild tension by declaring the table does not vary with the date while the schema marks 'date' as required, leaving the agent to guess why. Baseline 3 is appropriate given the schema does most of the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (the 14 main stars) and scope (canonical order, Zi Wei then Tian Fu series, with theme/archetype). The phrase 'Reference table: does not vary with the date' differentiates it from the many date-driven ziwei siblings such as ziwei_chart or ziwei_full_chart. It is clear but never names an explicit sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage by noting it is a static reference table, which suggests lookup rather than chart computation, but it never states when to pick this over astroway_ziwei_chart, astroway_ziwei_twelve_palaces, etc. No prerequisites or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_ziwei_palace_careerCareer Palace (Guanlu)C
Read-onlyIdempotent
Inspect

Profession, status, official position.

[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-career] [Required: date] [Cost: 5 credits (Tier ½)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
animalNo
palaceNo
solarYearNo
disclaimerNo

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare this a read-only, idempotent, non-destructive, closed-world call, so the safety profile is covered. The description adds genuinely useful operational context the annotations lack: credit cost (5 credits, Tier ½) and the required 'date' input. It still says nothing about latency, range limits on dates, or what the palace output represents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The one-line meaning is front-loaded, which is good, but the bracketed metadata block (group, endpoint, cost) is template boilerplate rather than prose; the endpoint URL in particular duplicates what the agent already has. Nothing is wasted exactly, but the structure is machine-stamped rather than purposeful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/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 values need not be explained. However, for a 6-parameter computation the description never says whose chart is being computed, that 'date' should be a birth date, or how this palace relates to astroway_ziwei_full_chart or the other palace endpoints. An agent has enough to fire the call but not enough to know it is choosing the right one.

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 67%, with the four optional parameters (fields, timezone, precision, timezoneOffset) richly documented in the schema itself. The description only restates '[Required: date]' and adds no semantics for 'date' or 'time', which are the two undocumented parameters. Baseline 3 for a schema that already does most of the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a bare noun fragment, 'Profession, status, official position,' with no verb stating what the tool does or returns. The name and title ('Career Palace (Guanlu)') carry most of the meaning, and the fragment at least narrows the topic to career significations within Zi Wei Dou Shu. It does not distinguish this palace endpoint from the nine sibling palace endpoints beyond that topical hint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of when this palace is preferred over astroway_ziwei_palace_destiny or astroway_ziwei_twelve_palaces, and no prerequisites. The only actionable hints are the metadata brackets ('[Required: date]', '[Endpoint: POST /v1/ziwei/palace-career]'), which are invocation facts rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_ziwei_palace_childrenChildren Palace (Zinu)B
Read-onlyIdempotent
Inspect

Children, fertility, juniors.

[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-children] [Required: date] [Cost: 5 credits (Tier ½)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
animalNo
palaceNo
solarYearNo
disclaimerNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description usefully adds the cost (5 credits, Tier 1/2) and the raw endpoint, which an agent cannot get from structured fields, but it says nothing about auth requirements or response shape.

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 topic keywords followed by a compact metadata block; no sentence is wasted. It is terse to the point of under-specification rather than padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and annotations cover safety. Still missing is any differentiation from the broader ziwei chart tools and any statement of what the Children-palace response actually contains, which leaves selection ambiguous among many similarly named siblings.

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 67% and the description contributes no parameter meaning beyond restating that date is required. Rules for baseline 3 (>80% coverage) are not met, but most parameters (fields, precision, timezone, timezoneOffset) are self-documented in the schema and time is pattern-constrained, so the gap is modest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource domain ('Children, fertility, juniors') and the group tag identifies it as a Zi Wei Dou Shu palace computation, which lets an agent tell it apart from astroway_ziwei_palace_siblings or astroway_ziwei_palace_spouse. However there is no verb (compute/derive) and the resource is implied through a keyword list rather than stated, so clarity comes mostly from the name and title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance at all: nothing says how this differs from astroway_ziwei_chart, astroway_ziwei_twelve_palaces, or astroway_ziwei_full_chart, nor when a single-palace call is preferable to the full chart. '[Required: date]' is a prerequisite but merely restates the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_ziwei_palace_destinyDestiny Palace (Ming)B
Read-onlyIdempotent
Inspect

Life path, character, soul mission.

[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-destiny] [Required: date] [Cost: 5 credits (Tier ½)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
animalNo
palaceNo
solarYearNo
disclaimerNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered elsewhere. The description adds the required parameter and the cost (5 credits, Tier ½), which is genuine operational context. It does not explain determinism, timezone sensitivity, or what the palace output represents beyond the one-line gloss.

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?

The content is front-loaded: the thematic one-liner comes first, followed by compact bracketed metadata. There is no filler prose. The bracketed block is slightly noisy but each field (group, endpoint, required, cost) is operationally useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value explanation is not needed, and annotations cover safety. For a read-only single-parameter calculation the description is minimally adequate, but it omits what distinguishes the Ming palace from its eleven sibling palaces and does not mention timezone sensitivity for birth-time accuracy.

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 coverage is 67%, so the schema documents most parameters (date pattern, time, fields, timezone, timezoneOffset, precision). The description only repeats that 'date' is required, adding no syntax, format, or interpretation guidance beyond the schema. Baseline 3 is appropriate given the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific subject area: 'Life path, character, soul mission', which is the Ming (Destiny) palace content in Zi Wei Dou Shu. The tool name and title identify the resource clearly, and the sibling set (palace_career, palace_wealth, palace_spouse, etc.) makes the Ming palace's domain distinguishable. It stops short of a full verb+resource statement like 'Computes the Destiny palace placement', so it is clear but not maximally specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative guidance is given. The agent cannot tell from the description whether this requires a birth date versus a chart id, or when to prefer this over astroway_ziwei_full_chart or astroway_ziwei_twelve_palaces. The metadata lines (group, endpoint, required, cost) are operational, not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_ziwei_palace_healthHealth Palace (Ji'e)C
Read-onlyIdempotent
Inspect

Body, illness, weak points.

[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-health] [Required: date] [Cost: 5 credits (Tier ½)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
animalNo
palaceNo
solarYearNo
disclaimerNo

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new operational context not present in annotations: the POST endpoint, the required input, and the 5-credit consumption, which matters for an agent budgeting calls. It stops there, though — no note on whether time/timezone materially change the palace result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and the metadata lines are scannable, but brevity here comes from omission rather than economy — three noun fragments carry almost no information for an analysis endpoint. Size is fine; front-loading is fine; the content simply does not earn the space it takes.

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?

Wait — reassessed: with an output schema present, the description need not explain return values, which removes one major burden. However, for a domain-heavy Zi Wei Dou Shu palace endpoint with one undocumented required param and a very large sibling set, the description gives no interpretive context for what 'health palace' yields or how it relates to the full chart, leaving the agent under-equipped.

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

Parameters2/5

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

Schema coverage is a middling 67%, with the required 'date' and the optional 'time' carrying no schema description at all. The description's only parameter statement, '[Required: date]', merely restates the schema's required array and adds no format, semantics, or accuracy guidance (e.g. that time improves palace placement), so it does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource domain ('Body, illness, weak points') under a Health Palace, but it uses bare noun fragments with no verb, so it never says the tool computes or returns a palace analysis. The sibling namespace (ziwei_palace_career, ziwei_palace_wealth, etc.) makes the topic guessable, but the description itself does no differentiating work.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance anywhere; the agent must infer applicability from the name alone. '[Required: date]' is a schema fact, not usage guidance, and no alternative sibling (e.g. the full-chart or twelve-palaces tools) is mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_ziwei_palace_propertyProperty Palace (Tianzhai)C
Read-onlyIdempotent
Inspect

Real estate, family home, ancestry.

[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-property] [Required: date] [Cost: 5 credits (Tier ½)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
animalNo
palaceNo
solarYearNo
disclaimerNo

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare the full safety profile (readOnly, idempotent, non-destructive, closed-world). The description adds genuinely new operational context: the POST endpoint, the 5-credit / Tier ½ cost, and the required date. It does not describe what the response contains or any limits, but with annotations covering behavior, this is a reasonable addition.

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?

The definition is short and front-loads the topical keywords before the structured metadata block. Every line is compact, though the keyword fragment is terse to the point of under-specification rather than wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need not be described, and the metadata block covers endpoint, required input, and cost. Still missing is what the tool actually produces conceptually and how it relates to the rest of the Zi Wei suite, leaving it only minimally adequate for a 6-parameter chart tool.

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

Parameters2/5

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

Schema description coverage is a middling 67%, and the one parameter lacking a schema description ('date') is merely restated in the description as '[Required: date]' — which duplicates the schema's required array rather than explaining format or semantics. For timezone/precision/fields the description adds nothing beyond the schema's own text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title 'Property Palace (Tianzhai)' plus the keyword fragment 'Real estate, family home, ancestry' identifies the topical domain and differentiates it from the other Zi Wei palace siblings (career, spouse, wealth, etc.). However, it never states a verb or deliverable — an agent must infer that the tool computes/returns a Property Palace reading from a birth date. Specific but not a verb+resource statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of alternatives (e.g., astroway_ziwei_twelve_palaces or astroway_ziwei_full_chart), and no indication of what input conditions are appropriate. The bracketed metadata lists required fields and cost but does not help the agent decide between this and a sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_ziwei_palace_siblingsSiblings Palace (Xiongdi)C
Read-onlyIdempotent
Inspect

Brothers, sisters, peer relationships.

[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-siblings] [Required: date] [Cost: 5 credits (Tier ½)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
animalNo
palaceNo
solarYearNo
disclaimerNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds genuinely new context — the 5-credit cost/tier and the POST endpoint — which helps an agent gauge expense. It stops short of describing what the palace reading contains beyond the topic words, but with annotations and an output schema present, a 3 is appropriate.

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?

The semantic line is front-loaded and the bracketed metadata tags are compact and scannable, with no wasted prose. The trade-off is that the brevity is close to under-specification for a chart-producing tool, keeping it out of 5 territory.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and annotations cover the safety profile, so the description is not required to carry those burdens. Still, it leaves out any guidance on how the palace result is used or how it relates to the wider Zi Wei chart tools, which is a real gap for a 6-parameter reading endpoint.

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 coverage is 67%, with the richer prose reserved for fields, timezone and precision. The only parameter information in the description is '[Required: date]', which merely restates what the schema's required array already declares, so it adds no meaning beyond structured data. Baseline 3 fits a mid-coverage schema carrying most of the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the domain concept (brothers, sisters, peer relationships) and tags the group (Zi Wei Dou Shu) and endpoint, so the topic is identifiable. However, it states no verb+resource action — it never says it computes/returns the Siblings Palace of a Zi Wei chart — so it reads as a topic label rather than a stated purpose. It is not misleading, just under-articulated relative to its many ziwei_palace_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of when to prefer this over sibling palaces (career, spouse, children) or over the aggregate astroway_ziwei_twelve_palaces / astroway_ziwei_full_chart tools. The [Required: date] and [Cost: 5 credits] lines are operational facts, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_ziwei_palace_spouseSpouse Palace (Fuqi)C
Read-onlyIdempotent
Inspect

Marriage partner, romantic union.

[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-spouse] [Required: date] [Cost: 5 credits (Tier ½)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
animalNo
palaceNo
solarYearNo
disclaimerNo

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description contributes beyond that by disclosing the endpoint (POST /v1/ziwei/palace-spouse), the required input (date), and a per-call cost of 5 credits (Tier 1/2) — the cost and endpoint are genuinely useful operational context not present in annotations or schema. It says nothing about output shape or determinism beyond what annotations imply.

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?

Very short and front-loaded: the purpose fragment leads, followed by a compact bracketed metadata block (group, endpoint, required, cost) that is easy to scan. Nothing is redundant, though the extreme brevity borders on under-specification rather than disciplined concision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need not be described, and annotations cover the safety profile. However, for a 6-parameter, cost-bearing calculation tool belonging to a large family of Zi Wei palace endpoints, the description leaves the agent without enough to distinguish this palace from its ten siblings or to understand what the result represents beyond "romantic union".

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

Parameters2/5

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

Schema coverage is 67% and the description's only parameter content is "Required: date", which merely restates the schema's required array. No meaning is added for time, timezone, timezoneOffset, fields, or precision — the schema descriptions for timezone/fields/precision are far richer than anything in the description, so this text adds nothing over the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Marriage partner, romantic union" names the subject domain and, combined with the title "Spouse Palace (Fuqi)", an agent can infer this returns the Zi Wei Dou Shu spouse-palace reading. But it is a noun fragment, not a verb+resource statement, and it never says it produces a palace analysis, so it does not clearly separate itself from adjacent tools like astroway_ziwei_twelve_palaces or astroway_ziwei_full_chart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no statement of prerequisites, and no named alternative. An agent cannot tell from this text whether to call this or the broader astroway_ziwei_twelve_palaces / astroway_ziwei_chart tools, or how it relates to interpretation tools like astroway_ai_interpret_element.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_ziwei_palace_travelTravel Palace (Qianyi)C
Read-onlyIdempotent
Inspect

Travel, relocation, foreign opportunities.

[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-travel] [Required: date] [Cost: 5 credits (Tier ½)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
animalNo
palaceNo
solarYearNo
disclaimerNo

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false, and destructiveHint=false, covering the safety profile. The description adds the cost (5 credits) and required parameter, which is useful, but says nothing about what the palace reading contains or how it's computed. Given annotations carry the behavioral burden, a 3 reflects modest 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is extremely short and front-loaded, but the bracketed metadata lines read like internal API documentation (endpoint, tier, credits) rather than agent-facing description. It's concise without being wasteful, yet the phrasing is not structured as guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/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 explanation isn't strictly needed, but the description never says what the travel palace is or how it relates to the other ziwei palace tools. For a themed analysis tool one of many near-identical siblings, this leaves the agent without enough to select it confidently.

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 67%, with four of six parameters documented in the schema (timezone, timezoneOffset, fields, precision). The description only repeats that date is required, adding no new parameter semantics. Baseline 3 is appropriate when the schema does most of the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource ('Travel Palace') and its thematic content ('Travel, relocation, foreign opportunities'), which is clearer than the bare title. However, it does not differentiate this tool from the many other ziwei palace tools or explain what the tool actually returns — it reads more like a topic label than a verb+resource statement of function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives such as astroway_ziwei_palace_property or astroway_vedic_muhurat_travel. The bracketed metadata gives endpoint/cost facts but no usage context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_ziwei_palace_wealthWealth Palace (Caibo)C
Read-onlyIdempotent
Inspect

Income, material prosperity.

[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-wealth] [Required: date] [Cost: 5 credits (Tier ½)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
animalNo
palaceNo
solarYearNo
disclaimerNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnly=true, idempotent=true, destructive=false, so the safety profile is covered. The description adds genuinely useful non-schema context: the endpoint (POST /v1/ziwei/palace-wealth) and a cost of 5 credits (Tier ½). It does not disclose output contents, auth needs, or limitations beyond that.

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?

Extremely short and front-loaded, with clean bracketed metadata and zero wasted prose. It is efficient rather than bloated, though the brevity reflects under-specification more than disciplined concision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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 values need not be explained, and annotations cover safety. But for a tool that is one of twelve palace siblings, the description omits any usage or routing context and does not elaborate on the optional params, leaving the definition only minimally complete.

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 coverage is 67%, with time and date carrying only patterns and no descriptions. The description adds nothing beyond '[Required: date]', which duplicates the schema's required array. With mid-level coverage and no compensating param detail in the description, a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description ('Income, material prosperity') is essentially a gloss on the title 'Wealth Palace (Caibo)' and, combined with the group tag, communicates the resource domain. However, it never states a verb or what the tool actually computes/returns for the given date, and it offers no differentiation from the ten sibling palace tools (career, health, spouse, property, etc.). Purpose is inferable but vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no conditions selecting this palace over sibling palaces, and no exclusions. The '[Required: date]' tag merely restates schema requirement, not usage context. An agent gets no routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

astroway_ziwei_twelve_palaces12 PalacesC
Read-onlyIdempotent
Inspect

All 12 palaces with English/pinyin/Chinese names + theme + rules.

[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/twelve-palaces] [Required: date] [Cost: 5 credits (Tier ½)]

NameRequiredDescriptionDefault
dateYes
timeNo
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
timezoneNoIANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoIgnored when timezone is sent.

Output Schema

NameRequiredDescription
animalNo
palacesNo
solarYearNo
disclaimerNo

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already establish readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely useful operational context the annotations do not carry: the endpoint, the cost (5 credits, Tier ½), and the single required parameter. It still says nothing about whether the result is computed per-birth-data or a static catalog, which is the main behavioral question here.

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?

The content sentence is front-loaded and the bracketed metadata is scannable, with essentially no wasted prose. The cost/tier/endpoint block is boilerplate but compact and informative, so structure is good even if the payload sentence is thin.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/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 values need not be explained, but for a chart-derived list sat among a dozen near-name-identical ziwei tools the description leaves the agent without scope or routing information. It never clarifies the relationship to astroway_ziwei_chart or the palace-specific endpoints, nor whether a birth time is needed to produce meaningful results.

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

Parameters2/5

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

Six parameters at 67% schema description coverage, and the description contributes only 'Required: date'. It adds no meaning about 'time' (does the palace layout depend on hour of birth?), 'timezone', or the compact-mode 'fields'/'precision' options beyond what the schema already documents. It does not compensate for the undocumented date/time parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource and its payload ('All 12 palaces with English/pinyin/Chinese names + theme + rules'), which is more than a tautology, but it uses no verb (list/fetch/compute) and never distinguishes itself from the many overlapping ziwei siblings such as astroway_ziwei_chart, astroway_ziwei_full_chart, or the individual astroway_ziwei_palace_* tools. An agent cannot tell from this text alone why it would call this instead of the full chart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance at all: no prerequisites, no exclusions, and no named alternatives among the ~12 ziwei siblings. The bracketed '[Required: date]' and '[Cost: 5 credits]' lines are metadata about invocation cost, not about tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedastroway_ziwei_chart2 fields changed
      • addedInput schema / properties / longitude
        Added value: +{
        +  "maximum": 180,
        +  "minimum": -180,
        +  "type": "number"
        +}
      • addedInput schema / properties / trueSolarTime
        Added value: +{
        +  "type": "boolean"
        +}
  2. 1 tool update
    • Changedastroway_bazi_yearly2 fields changed
      • addedInput schema / properties / gender
        Added value: +{
        +  "enum": [
        +    "male",
        +    "female"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / includeMonths
        Added value: +{
        +  "type": "boolean"
        +}
  3. 13 tool updates
    • Changedastroway_bazi_chart3 fields changed
      • addedInput schema / properties / dayBoundary
        Added value: +{
        +  "enum": [
        +    "23:00",
        +    "midnight"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / gender
        Added value: +{
        +  "enum": [
        +    "male",
        +    "female"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / includeLuck
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedastroway_bazi_day_master3 fields changed
      • addedInput schema / properties / dayBoundary
        Added value: +{
        +  "enum": [
        +    "23:00",
        +    "midnight"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / longitude
        Added value: +{
        +  "maximum": 180,
        +  "minimum": -180,
        +  "type": "number"
        +}
      • addedInput schema / properties / trueSolarTime
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedastroway_bazi_element_balance3 fields changed
      • addedInput schema / properties / dayBoundary
        Added value: +{
        +  "enum": [
        +    "23:00",
        +    "midnight"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / gender
        Added value: +{
        +  "enum": [
        +    "male",
        +    "female"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / includeLuck
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedastroway_bazi_hidden_stems3 fields changed
      • addedInput schema / properties / dayBoundary
        Added value: +{
        +  "enum": [
        +    "23:00",
        +    "midnight"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / gender
        Added value: +{
        +  "enum": [
        +    "male",
        +    "female"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / includeLuck
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedastroway_bazi_interactions3 fields changed
      • addedInput schema / properties / dayBoundary
        Added value: +{
        +  "enum": [
        +    "23:00",
        +    "midnight"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / gender
        Added value: +{
        +  "enum": [
        +    "male",
        +    "female"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / includeLuck
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedastroway_bazi_life_stages3 fields changed
      • addedInput schema / properties / dayBoundary
        Added value: +{
        +  "enum": [
        +    "23:00",
        +    "midnight"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / gender
        Added value: +{
        +  "enum": [
        +    "male",
        +    "female"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / includeLuck
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedastroway_bazi_luck_pillars3 fields changed
      • addedInput schema / properties / dayBoundary
        Added value: +{
        +  "enum": [
        +    "23:00",
        +    "midnight"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / longitude
        Added value: +{
        +  "maximum": 180,
        +  "minimum": -180,
        +  "type": "number"
        +}
      • addedInput schema / properties / trueSolarTime
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedastroway_bazi_monthly5 fields changed
      • addedInput schema / properties / dayBoundary
        Added value: +{
        +  "enum": [
        +    "23:00",
        +    "midnight"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / longitude
        Added value: +{
        +  "maximum": 180,
        +  "minimum": -180,
        +  "type": "number"
        +}
      • addedInput schema / properties / natalTzOffset / description
        Added value: +"Ignored when timezone is sent."
      • addedInput schema / properties / timezone
        Added value: +{
        +  "description": "IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.",
        +  "type": "string"
        +}
      • addedInput schema / properties / trueSolarTime
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedastroway_bazi_na_yin3 fields changed
      • addedInput schema / properties / dayBoundary
        Added value: +{
        +  "enum": [
        +    "23:00",
        +    "midnight"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / gender
        Added value: +{
        +  "enum": [
        +    "male",
        +    "female"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / includeLuck
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedastroway_bazi_strength3 fields changed
      • addedInput schema / properties / dayBoundary
        Added value: +{
        +  "enum": [
        +    "23:00",
        +    "midnight"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / gender
        Added value: +{
        +  "enum": [
        +    "male",
        +    "female"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / includeLuck
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedastroway_bazi_symbolic_stars3 fields changed
      • addedInput schema / properties / dayBoundary
        Added value: +{
        +  "enum": [
        +    "23:00",
        +    "midnight"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / gender
        Added value: +{
        +  "enum": [
        +    "male",
        +    "female"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / includeLuck
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedastroway_bazi_ten_gods3 fields changed
      • addedInput schema / properties / dayBoundary
        Added value: +{
        +  "enum": [
        +    "23:00",
        +    "midnight"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / longitude
        Added value: +{
        +  "maximum": 180,
        +  "minimum": -180,
        +  "type": "number"
        +}
      • addedInput schema / properties / trueSolarTime
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedastroway_bazi_yearly5 fields changed
      • addedInput schema / properties / dayBoundary
        Added value: +{
        +  "enum": [
        +    "23:00",
        +    "midnight"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / longitude
        Added value: +{
        +  "maximum": 180,
        +  "minimum": -180,
        +  "type": "number"
        +}
      • addedInput schema / properties / natalTzOffset / description
        Added value: +"Ignored when timezone is sent."
      • addedInput schema / properties / timezone
        Added value: +{
        +  "description": "IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.",
        +  "type": "string"
        +}
      • addedInput schema / properties / trueSolarTime
        Added value: +{
        +  "type": "boolean"
        +}
  4. 1 tool update
    • Changedastroway_chinese_zodiac_animal2 fields changed
      • addedOutput schema / properties / yearEnd
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {
        +        "beijing": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "utc": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        }
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / yearStart
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {
        +        "beijing": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "utc": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        }
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
  5. 62 tool updates
    • First observedastroway_account_status
    • First observedastroway_agent_tools
    • First observedastroway_bazi_chart
    • First observedastroway_bazi_day_master
    • First observedastroway_bazi_element_balance
    • First observedastroway_bazi_four_pillars
    • First observedastroway_bazi_hidden_stems
    • First observedastroway_bazi_hour_pillar
    • First observedastroway_bazi_interactions
    • First observedastroway_bazi_life_stages
    • First observedastroway_bazi_luck_pillars
    • First observedastroway_bazi_month_pillar
    • First observedastroway_bazi_monthly
    • First observedastroway_bazi_na_yin
    • First observedastroway_bazi_strength
    • First observedastroway_bazi_symbolic_stars
    • First observedastroway_bazi_ten_gods
    • First observedastroway_bazi_year_pillar
    • First observedastroway_bazi_year_pillar_decade
    • First observedastroway_bazi_yearly
    • First observedastroway_chinese_feng_shui_annual_stars
    • First observedastroway_chinese_feng_shui_bagua
    • First observedastroway_chinese_feng_shui_flying_star
    • First observedastroway_chinese_feng_shui_kua
    • First observedastroway_chinese_feng_shui_lucky_directions
    • First observedastroway_chinese_lunar_date
    • First observedastroway_chinese_solar_terms
    • First observedastroway_chinese_tong_shu
    • First observedastroway_chinese_tong_shu_select
    • First observedastroway_chinese_true_solar_time
    • First observedastroway_chinese_zodiac_animal
    • First observedastroway_chinese_zodiac_compatibility
    • First observedastroway_chinese_zodiac_element
    • First observedastroway_chinese_zodiac_inner_animal
    • First observedastroway_chinese_zodiac_secret_animal
    • First observedastroway_cost_estimate
    • First observedastroway_mcp_agent_debate
    • First observedastroway_mcp_agent_pool_status
    • First observedastroway_mcp_ai_chat
    • First observedastroway_mcp_ai_comparison_coach
    • First observedastroway_mcp_ai_explain_aspect
    • First observedastroway_mcp_ai_explain_transit
    • First observedastroway_mcp_multi_agent_coordinate
    • First observedastroway_mcp_multi_chart_context
    • First observedastroway_mcp_rag_search
    • First observedastroway_mcp_streaming
    • First observedastroway_mcp_tool_call_stream
    • First observedastroway_mcp_tools_list
    • First observedastroway_ziwei_chart
    • First observedastroway_ziwei_four_transformations
    • First observedastroway_ziwei_full_chart
    • First observedastroway_ziwei_main_stars
    • First observedastroway_ziwei_palace_career
    • First observedastroway_ziwei_palace_children
    • First observedastroway_ziwei_palace_destiny
    • First observedastroway_ziwei_palace_health
    • First observedastroway_ziwei_palace_property
    • First observedastroway_ziwei_palace_siblings
    • First observedastroway_ziwei_palace_spouse
    • First observedastroway_ziwei_palace_travel
    • First observedastroway_ziwei_palace_wealth
    • First observedastroway_ziwei_twelve_palaces

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides accurate Chinese Bazi (八字) fortune-telling calculations including birth chart analysis, destiny forecasting, and Chinese calendar information. Addresses inaccuracies in existing AI fortune-telling tools by delivering precise Bazi data for personality analysis and metaphysical insights.
    283 npm
    ISC
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables traditional Chinese fortune-telling through BaZi (Four Pillars) analysis, including solar/lunar date conversion, Five Element balance calculations, Ten Gods deduction, and destiny interpretation for metaphysics applications.
    11 npm
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    紫微AI,是一个紫微斗数解盘AI应用。Ziwei AI is an AI application for Ziwei Doushu chart interpretation.紫微AIは、紫微斗数のチャート解読のためのAIアプリケーションです。
    7
    -
  • A
    license
    A
    quality
    A
    maintenance
    True solar time (longitude correction + equation of time), exact moments of the 24 Chinese solar terms for any year, and China 1986–1991 DST handling for BaZi birth-time conversion.
    3
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources